diff --git a/debian/patches/0680-remove-linguist.patch b/debian/patches/0680-remove-linguist.patch new file mode 100644 index 0000000000..84ad728aa0 --- /dev/null +++ b/debian/patches/0680-remove-linguist.patch @@ -0,0 +1,6181 @@ +From 399056ed783e12337a9c47b06b4aae021198f1cd Mon Sep 17 00:00:00 2001 +From: Zeger-Jan van de Weg +Date: Fri, 3 Aug 2018 15:24:26 +0200 +Subject: [PATCH] Remove dependencies on Linguist + +This saves about 128 MB of baseline RAM usage per Unicorn and +Sidekiq process (!). + +Linguist wasn't detecting languages anymore from CE/EE since +9ae8b57467ac8b38f1fa9020a466d94a93cbb9dd. However, Linguist::BlobHelper +was still being depended on by BlobLike and others. + +This removes the Linguist gem, given it isn't required anymore. +EscapeUtils were pulled in as dependency, but given Banzai depends on +it, it is now added explicitly. + +Previously, Linguist was used to detect the best ACE mode. Instead, +we rely on ACE to guess the best mode based on the file extension. +--- + Gemfile | 4 +- + Gemfile.lock | 9 +- + Gemfile.rails5.lock | 9 +- + .../javascripts/blob_edit/blob_bundle.js | 4 +- + app/assets/javascripts/blob_edit/edit_blob.js | 8 +- + app/assets/javascripts/lib/ace.js | 1 + + app/assets/javascripts/lib/utils/ace_utils.js | 6 + + .../components/diff_file_editor.js | 3 +- + app/helpers/blob_helper.rb | 2 +- + app/models/blob.rb | 2 +- + app/models/concerns/blob_like.rb | 2 +- + changelogs/unreleased/zj-remove-linguist.yml | 5 + + lib/gitlab/blob_helper.rb | 145 + + lib/gitlab/conflict/file.rb | 1 - + lib/gitlab/git/blob.rb | 8 +- + lib/gitlab/git/blob_snippet.rb | 34 - + lib/gitlab/language_data.rb | 33 + + .../conflicts_controller_spec.rb | 1 - + spec/lib/gitlab/blob_helper_spec.rb | 125 + + spec/lib/gitlab/conflict/file_spec.rb | 5 - + spec/lib/gitlab/git/blob_snippet_spec.rb | 19 - + spec/lib/gitlab/language_data_spec.rb | 22 + + vendor/languages.yml | 5488 +++++++++++++++++ + 23 files changed, 5846 insertions(+), 90 deletions(-) + create mode 100644 app/assets/javascripts/lib/utils/ace_utils.js + create mode 100644 changelogs/unreleased/zj-remove-linguist.yml + create mode 100644 lib/gitlab/blob_helper.rb + delete mode 100644 lib/gitlab/git/blob_snippet.rb + create mode 100644 lib/gitlab/language_data.rb + create mode 100644 spec/lib/gitlab/blob_helper_spec.rb + delete mode 100644 spec/lib/gitlab/git/blob_snippet_spec.rb + create mode 100644 spec/lib/gitlab/language_data_spec.rb + create mode 100755 vendor/languages.yml + +--- a/Gemfile ++++ b/Gemfile +@@ -86,9 +86,6 @@ + + gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4', require: false + +-# Language detection +-gem 'github-linguist', '~> 5.3', '>= 5.3.3', require: 'linguist' +- + # API + gem 'grape', '~> 1.0' + gem 'grape-entity', '~> 0.7.1' +@@ -149,6 +146,7 @@ + gem 'truncato', '~> 0.7.9' + gem 'bootstrap_form', '~> 2.7' + gem 'nokogiri', '~> 1.8', '>= 1.8.2' ++gem 'escape_utils', '~> 1.1' + + # Calendar rendering + gem 'icalendar' +--- a/Gemfile.lock ++++ b/Gemfile.lock +@@ -287,11 +287,6 @@ + gitaly-proto (0.113.0) + google-protobuf (~> 3.1) + grpc (~> 1.10) +- github-linguist (5.3.3) +- charlock_holmes (~> 0.7.5) +- escape_utils (~> 1.1.0) +- mime-types (>= 1.19) +- rugged (>= 0.25.1) + github-markup (1.7.0) + gitlab-flowdock-git-hook (1.0.1) + flowdock (~> 0.7) +@@ -1025,6 +1020,7 @@ + ed25519 (~> 1.2) + email_reply_trimmer (~> 0.1) + email_spec (~> 2.2.0) ++ escape_utils (~> 1.1) + factory_bot_rails (~> 4.8.2) + faraday (~> 0.12) + fast_blank +--- a/Gemfile.rails5.lock ++++ b/Gemfile.rails5.lock +@@ -290,11 +290,6 @@ + gitaly-proto (0.113.0) + google-protobuf (~> 3.1) + grpc (~> 1.10) +- github-linguist (5.3.3) +- charlock_holmes (~> 0.7.5) +- escape_utils (~> 1.1.0) +- mime-types (>= 1.19) +- rugged (>= 0.25.1) + github-markup (1.7.0) + gitlab-flowdock-git-hook (1.0.1) + flowdock (~> 0.7) +@@ -1035,6 +1030,7 @@ + ed25519 (~> 1.2) + email_reply_trimmer (~> 0.1) + email_spec (~> 2.2.0) ++ escape_utils (~> 1.1) + factory_bot_rails (~> 4.8.2) + faraday (~> 0.12) + fast_blank +--- a/app/assets/javascripts/blob_edit/edit_blob.js ++++ b/app/assets/javascripts/blob_edit/edit_blob.js +@@ -5,6 +5,7 @@ + import createFlash from '~/flash'; + import { __ } from '~/locale'; + import TemplateSelectorMediator from '../blob/file_template_mediator'; ++import getModeByFileExtension from '~/lib/utils/ace_utils'; + + export default class EditBlob { + constructor(assetsPath, aceMode, currentAction) { +@@ -14,9 +15,10 @@ + this.initFileSelectors(currentAction); + } + +- configureAceEditor(aceMode, assetsPath) { ++ configureAceEditor(filePath, assetsPath) { + ace.config.set('modePath', `${assetsPath}/ace`); + ace.config.loadModule('ace/ext/searchbox'); ++ ace.config.loadModule('ace/ext/modelist'); + + this.editor = ace.edit('editor'); + +@@ -25,8 +27,8 @@ + + this.editor.focus(); + +- if (aceMode) { +- this.editor.getSession().setMode(`ace/mode/${aceMode}`); ++ if (filePath) { ++ this.editor.getSession().setMode(getModeByFileExtension(filePath)); + } + } + +--- a/app/assets/javascripts/lib/ace.js ++++ b/app/assets/javascripts/lib/ace.js +@@ -1,3 +1,4 @@ + /*= require ace/ace */ ++/*= require ace/ext-modelist */ + /*= require ace/ext-searchbox */ + /*= require ./ace/ace_config_paths */ +--- /dev/null ++++ b/app/assets/javascripts/lib/utils/ace_utils.js +@@ -0,0 +1,6 @@ ++/* global ace */ ++ ++export default function getModeByFileExtension(path) { ++ const modelist = ace.require("ace/ext/modelist"); ++ return modelist.getModeForPath(path).mode; ++}; +--- a/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js ++++ b/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js +@@ -5,6 +5,7 @@ + import axios from '~/lib/utils/axios_utils'; + import flash from '~/flash'; + import { __ } from '~/locale'; ++import getModeByFileExtension from '~/lib/utils/ace_utils'; + + ((global) => { + global.mergeConflicts = global.mergeConflicts || {}; +@@ -71,7 +72,7 @@ + this.fileLoaded = true; + this.editor = ace.edit(content); + this.editor.$blockScrolling = Infinity; // Turn off annoying warning +- this.editor.getSession().setMode(`ace/mode/${data.blob_ace_mode}`); ++ this.editor.getSession().setMode(getModeByFileExtension(data.new_path)); + this.editor.on('change', () => { + this.saveDiffResolution(); + }); +--- a/app/models/blob.rb ++++ b/app/models/blob.rb +@@ -162,7 +162,7 @@ + if stored_externally? + if rich_viewer + rich_viewer.binary? +- elsif Linguist::Language.find_by_extension(name).any? ++ elsif known_extension? + false + elsif _mime_type + _mime_type.binary? +--- /dev/null ++++ b/changelogs/unreleased/zj-remove-linguist.yml +@@ -0,0 +1,5 @@ ++--- ++title: Remove Linguist gem, reducing Rails memory usage by 128MB per process ++merge_request: 21008 ++author: ++type: changed +--- /dev/null ++++ b/lib/gitlab/blob_helper.rb +@@ -0,0 +1,145 @@ ++# This has been extracted from https://github.com/github/linguist/blob/master/lib/linguist/blob_helper.rb ++module Gitlab ++ module BlobHelper ++ def extname ++ File.extname(name.to_s) ++ end ++ ++ def known_extension? ++ LanguageData.extensions.include?(extname) ++ end ++ ++ def viewable? ++ !large? && text? ++ end ++ ++ MEGABYTE = 1024 * 1024 ++ ++ def large? ++ size.to_i > MEGABYTE ++ end ++ ++ def binary? ++ # Large blobs aren't even loaded into memory ++ if data.nil? ++ true ++ ++ # Treat blank files as text ++ elsif data == "" ++ false ++ ++ # Charlock doesn't know what to think ++ elsif encoding.nil? ++ true ++ ++ # If Charlock says its binary ++ else ++ detect_encoding[:type] == :binary ++ end ++ end ++ ++ def text? ++ !binary? ++ end ++ ++ def image? ++ ['.png', '.jpg', '.jpeg', '.gif'].include?(extname.downcase) ++ end ++ ++ # Internal: Lookup mime type for extension. ++ # ++ # Returns a MIME::Type ++ # rubocop:disable Gitlab/ModuleWithInstanceVariables ++ def _mime_type ++ if defined? @_mime_type ++ @_mime_type ++ else ++ guesses = ::MIME::Types.type_for(extname.to_s) ++ ++ # Prefer text mime types over binary ++ @_mime_type = guesses.detect { |type| type.ascii? } || guesses.first ++ end ++ end ++ # rubocop:enable Gitlab/ModuleWithInstanceVariables ++ ++ # Public: Get the actual blob mime type ++ # ++ # Examples ++ # ++ # # => 'text/plain' ++ # # => 'text/html' ++ # ++ # Returns a mime type String. ++ def mime_type ++ _mime_type ? _mime_type.to_s : 'text/plain' ++ end ++ ++ def binary_mime_type? ++ _mime_type ? _mime_type.binary? : false ++ end ++ ++ def lines ++ @lines ||= ++ if viewable? && data ++ # `data` is usually encoded as ASCII-8BIT even when the content has ++ # been detected as a different encoding. However, we are not allowed ++ # to change the encoding of `data` because we've made the implicit ++ # guarantee that each entry in `lines` is encoded the same way as ++ # `data`. ++ # ++ # Instead, we re-encode each possible newline sequence as the ++ # detected encoding, then force them back to the encoding of `data` ++ # (usually a binary encoding like ASCII-8BIT). This means that the ++ # byte sequence will match how newlines are likely encoded in the ++ # file, but we don't have to change the encoding of `data` as far as ++ # Ruby is concerned. This allows us to correctly parse out each line ++ # without changing the encoding of `data`, and ++ # also--importantly--without having to duplicate many (potentially ++ # large) strings. ++ begin ++ data.split(encoded_newlines_re, -1) ++ rescue Encoding::ConverterNotFoundError ++ # The data is not splittable in the detected encoding. Assume it's ++ # one big line. ++ [data] ++ end ++ else ++ [] ++ end ++ end ++ ++ def content_type ++ # rubocop:disable Style/MultilineTernaryOperator ++ # rubocop:disable Style/NestedTernaryOperator ++ @content_type ||= binary_mime_type? || binary? ? mime_type : ++ (encoding ? "text/plain; charset=#{encoding.downcase}" : "text/plain") ++ # rubocop:enable Style/NestedTernaryOperator ++ # rubocop:enable Style/MultilineTernaryOperator ++ end ++ ++ def encoded_newlines_re ++ @encoded_newlines_re ||= ++ Regexp.union(["\r\n", "\r", "\n"].map { |nl| nl.encode(ruby_encoding, "ASCII-8BIT").force_encoding(data.encoding) }) ++ end ++ ++ def ruby_encoding ++ if hash = detect_encoding ++ hash[:ruby_encoding] ++ end ++ end ++ ++ def encoding ++ if hash = detect_encoding ++ hash[:encoding] ++ end ++ end ++ ++ def detect_encoding ++ @detect_encoding ||= CharlockHolmes::EncodingDetector.new.detect(data) if data # rubocop:disable Gitlab/ModuleWithInstanceVariables ++ end ++ ++ def empty? ++ data.nil? || data == "" ++ end ++ end ++end +--- a/lib/gitlab/conflict/file.rb ++++ b/lib/gitlab/conflict/file.rb +@@ -158,7 +158,6 @@ + json_hash.tap do |json_hash| + if opts[:full_content] + json_hash[:content] = content +- json_hash[:blob_ace_mode] = our_blob && our_blob.language.try(:ace_mode) + else + json_hash[:sections] = sections if type.text? + json_hash[:type] = type +--- a/lib/gitlab/git/blob.rb ++++ b/lib/gitlab/git/blob.rb +@@ -3,13 +3,13 @@ + module Gitlab + module Git + class Blob +- include Linguist::BlobHelper ++ include Gitlab::BlobHelper + include Gitlab::EncodingHelper + + # This number is the maximum amount of data that we want to display to +- # the user. We load as much as we can for encoding detection +- # (Linguist) and LFS pointer parsing. All other cases where we need full +- # blob data should use load_all_data!. ++ # the user. We load as much as we can for encoding detection and LFS ++ # pointer parsing. All other cases where we need full blob data should ++ # use load_all_data!. + MAX_DATA_DISPLAY_SIZE = 10.megabytes + + # These limits are used as a heuristic to ignore files which can't be LFS +--- a/lib/gitlab/git/blob_snippet.rb ++++ /dev/null +@@ -1,34 +0,0 @@ +-# Gitaly note: JV: no RPC's here. +- +-module Gitlab +- module Git +- class BlobSnippet +- include Linguist::BlobHelper +- +- attr_accessor :ref +- attr_accessor :lines +- attr_accessor :filename +- attr_accessor :startline +- +- def initialize(ref, lines, startline, filename) +- @ref, @lines, @startline, @filename = ref, lines, startline, filename +- end +- +- def data +- lines&.join("\n") +- end +- +- def name +- filename +- end +- +- def size +- data.length +- end +- +- def mode +- nil +- end +- end +- end +-end +--- /dev/null ++++ b/lib/gitlab/language_data.rb +@@ -0,0 +1,33 @@ ++# frozen_string_literal: true ++ ++module Gitlab ++ module LanguageData ++ EXTENSION_MUTEX = Mutex.new ++ ++ class << self ++ include Gitlab::Utils::StrongMemoize ++ ++ def extensions ++ EXTENSION_MUTEX.synchronize do ++ strong_memoize(:extensions) do ++ Set.new.tap do |set| ++ YAML.load_file(Rails.root.join('vendor', 'languages.yml')).each do |_name, details| ++ details['extensions']&.each do |ext| ++ next unless ext.start_with?('.') ++ ++ set << ext.downcase ++ end ++ end ++ end ++ end ++ end ++ end ++ ++ def clear_extensions! ++ EXTENSION_MUTEX.synchronize do ++ clear_memoization(:extensions) ++ end ++ end ++ end ++ end ++end +--- a/spec/controllers/projects/merge_requests/conflicts_controller_spec.rb ++++ b/spec/controllers/projects/merge_requests/conflicts_controller_spec.rb +@@ -150,7 +150,6 @@ + 'new_path' => path, + 'blob_icon' => 'file-text-o', + 'blob_path' => a_string_ending_with(path), +- 'blob_ace_mode' => 'ruby', + 'content' => content) + end + end +--- /dev/null ++++ b/spec/lib/gitlab/blob_helper_spec.rb +@@ -0,0 +1,125 @@ ++# frozen_string_literal: true ++ ++require 'spec_helper' ++ ++describe Gitlab::BlobHelper do ++ include FakeBlobHelpers ++ ++ let(:project) { create(:project) } ++ let(:blob) { fake_blob(path: 'file.txt') } ++ let(:large_blob) { fake_blob(path: 'test.pdf', size: 2.megabytes, binary: true) } ++ ++ describe '#extname' do ++ it 'returns the extension' do ++ expect(blob.extname).to eq('.txt') ++ end ++ end ++ ++ describe '#known_extension?' do ++ it 'returns true' do ++ expect(blob.known_extension?).to be_truthy ++ end ++ end ++ ++ describe '#viewable' do ++ it 'returns true' do ++ expect(blob.viewable?).to be_truthy ++ end ++ ++ it 'returns false' do ++ expect(large_blob.viewable?).to be_falsey ++ end ++ end ++ ++ describe '#large?' do ++ it 'returns false' do ++ expect(blob.large?).to be_falsey ++ end ++ ++ it 'returns true' do ++ expect(large_blob.large?).to be_truthy ++ end ++ end ++ ++ describe '#binary?' do ++ it 'returns true' do ++ expect(large_blob.binary?).to be_truthy ++ end ++ ++ it 'returns false' do ++ expect(blob.binary?).to be_falsey ++ end ++ end ++ ++ describe '#text?' do ++ it 'returns true' do ++ expect(blob.text?).to be_truthy ++ end ++ ++ it 'returns false' do ++ expect(large_blob.text?).to be_falsey ++ end ++ end ++ ++ describe '#image?' do ++ it 'returns false' do ++ expect(blob.image?).to be_falsey ++ end ++ end ++ ++ describe '#mime_type' do ++ it 'returns text/plain' do ++ expect(blob.mime_type).to eq('text/plain') ++ end ++ ++ it 'returns application/pdf' do ++ expect(large_blob.mime_type).to eq('application/pdf') ++ end ++ end ++ ++ describe '#binary_mime_type?' do ++ it 'returns false' do ++ expect(blob.binary_mime_type?).to be_falsey ++ end ++ end ++ ++ describe '#lines' do ++ it 'returns the payload in an Array' do ++ expect(blob.lines).to eq(['foo']) ++ end ++ end ++ ++ describe '#content_type' do ++ it 'returns text/plain' do ++ expect(blob.content_type).to eq('text/plain; charset=utf-8') ++ end ++ ++ it 'returns text/plain' do ++ expect(large_blob.content_type).to eq('application/pdf') ++ end ++ end ++ ++ describe '#encoded_newlines_re' do ++ it 'returns a regular expression' do ++ expect(blob.encoded_newlines_re).to eq(/\r\n|\r|\n/) ++ end ++ end ++ ++ describe '#ruby_encoding' do ++ it 'returns UTF-8' do ++ expect(blob.ruby_encoding).to eq('UTF-8') ++ end ++ end ++ ++ describe '#encoding' do ++ it 'returns UTF-8' do ++ expect(blob.ruby_encoding).to eq('UTF-8') ++ end ++ end ++ ++ describe '#empty?' do ++ it 'returns false' do ++ expect(blob.empty?).to be_falsey ++ end ++ end ++end +--- a/spec/lib/gitlab/conflict/file_spec.rb ++++ b/spec/lib/gitlab/conflict/file_spec.rb +@@ -265,11 +265,6 @@ + it 'includes the full content of the conflict' do + expect(conflict_file.as_json(full_content: true)).to have_key(:content) + end +- +- it 'includes the detected language of the conflict file' do +- expect(conflict_file.as_json(full_content: true)[:blob_ace_mode]) +- .to eq('ruby') +- end + end + end + end +--- a/spec/lib/gitlab/git/blob_snippet_spec.rb ++++ /dev/null +@@ -1,19 +0,0 @@ +-# encoding: UTF-8 +- +-require "spec_helper" +- +-describe Gitlab::Git::BlobSnippet, :seed_helper do +- describe '#data' do +- context 'empty lines' do +- let(:snippet) { Gitlab::Git::BlobSnippet.new('master', nil, nil, nil) } +- +- it { expect(snippet.data).to be_nil } +- end +- +- context 'present lines' do +- let(:snippet) { Gitlab::Git::BlobSnippet.new('master', %w(wow much), 1, 'wow.rb') } +- +- it { expect(snippet.data).to eq("wow\nmuch") } +- end +- end +-end +--- /dev/null ++++ b/spec/lib/gitlab/language_data_spec.rb +@@ -0,0 +1,22 @@ ++# frozen_string_literal: true ++ ++require 'spec_helper' ++ ++describe Gitlab::LanguageData do ++ describe '#extensions' do ++ before do ++ described_class.clear_extensions! ++ end ++ ++ it 'loads the extensions once' do ++ expect(YAML).to receive(:load_file).once.and_call_original ++ ++ 2.times do ++ expect(described_class.extensions).to be_a(Set) ++ expect(described_class.extensions.count).to be > 0 ++ # Sanity check for known extensions ++ expect(described_class.extensions).to include(*%w(.rb .yml .json)) ++ end ++ end ++ end ++end +--- /dev/null ++++ b/vendor/languages.yml +@@ -0,0 +1,5488 @@ ++# Extracted from https://github.com/github/linguist/blob/master/lib/linguist/languages.yml ++ ++# Defines all Languages known to GitHub. ++# ++# type - Either data, programming, markup, prose, or nil ++# aliases - An Array of additional aliases (implicitly ++# includes name.downcase) ++# ace_mode - A String name of the Ace Mode used for highlighting whenever ++# a file is edited. This must match one of the filenames in http://git.io/3XO_Cg. ++# Use "text" if a mode does not exist. ++# codemirror_mode - A String name of the CodeMirror Mode used for highlighting whenever a file is edited. ++# This must match a mode from https://git.io/vi9Fx ++# codemirror_mime_type - A String name of the file mime type used for highlighting whenever a file is edited. ++# This should match the `mime` associated with the mode from https://git.io/f4SoQ ++# wrap - Boolean wrap to enable line wrapping (default: false) ++# extensions - An Array of associated extensions (the first one is ++# considered the primary extension, the others should be ++# listed alphabetically) ++# filenames - An Array of filenames commonly associated with the language ++# interpreters - An Array of associated interpreters ++# searchable - Boolean flag to enable searching (defaults to true) ++# language_id - Integer used as a language-name-independent indexed field so that we can rename ++# languages in Linguist without reindexing all the code on GitHub. Must not be ++# changed for existing languages without the explicit permission of GitHub staff. ++# color - CSS hex color to represent the language. Only used if type is "programming" or "prose". ++# tm_scope - The TextMate scope that represents this programming ++# language. This should match one of the scopes listed in ++# the grammars.yml file. Use "none" if there is no grammar ++# for this language. ++# group - Name of the parent language. Languages in a group are counted ++# in the statistics as the parent language. ++# ++# Any additions or modifications (even trivial) should have corresponding ++# test changes in `test/test_blob.rb`. ++# ++# Please keep this list alphabetized. Capitalization comes before lowercase. ++ ++--- ++1C Enterprise: ++ type: programming ++ color: "#814CCC" ++ extensions: ++ - ".bsl" ++ - ".os" ++ tm_scope: source.bsl ++ ace_mode: text ++ language_id: 0 ++ABAP: ++ type: programming ++ color: "#E8274B" ++ extensions: ++ - ".abap" ++ ace_mode: abap ++ language_id: 1 ++ABNF: ++ type: data ++ ace_mode: text ++ extensions: ++ - ".abnf" ++ tm_scope: source.abnf ++ language_id: 429 ++AGS Script: ++ type: programming ++ color: "#B9D9FF" ++ aliases: ++ - ags ++ extensions: ++ - ".asc" ++ - ".ash" ++ tm_scope: source.c++ ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-c++src ++ language_id: 2 ++AMPL: ++ type: programming ++ color: "#E6EFBB" ++ extensions: ++ - ".ampl" ++ - ".mod" ++ tm_scope: source.ampl ++ ace_mode: text ++ language_id: 3 ++ANTLR: ++ type: programming ++ color: "#9DC3FF" ++ extensions: ++ - ".g4" ++ ace_mode: text ++ language_id: 4 ++API Blueprint: ++ type: markup ++ color: "#2ACCA8" ++ ace_mode: markdown ++ extensions: ++ - ".apib" ++ tm_scope: text.html.markdown.source.gfm.apib ++ language_id: 5 ++APL: ++ type: programming ++ color: "#5A8164" ++ extensions: ++ - ".apl" ++ - ".dyalog" ++ interpreters: ++ - apl ++ - aplx ++ - dyalog ++ tm_scope: source.apl ++ ace_mode: text ++ codemirror_mode: apl ++ codemirror_mime_type: text/apl ++ language_id: 6 ++ASN.1: ++ type: data ++ extensions: ++ - ".asn" ++ - ".asn1" ++ tm_scope: source.asn ++ ace_mode: text ++ codemirror_mode: asn.1 ++ codemirror_mime_type: text/x-ttcn-asn ++ language_id: 7 ++ASP: ++ type: programming ++ color: "#6a40fd" ++ tm_scope: text.html.asp ++ aliases: ++ - aspx ++ - aspx-vb ++ extensions: ++ - ".asp" ++ - ".asax" ++ - ".ascx" ++ - ".ashx" ++ - ".asmx" ++ - ".aspx" ++ - ".axd" ++ ace_mode: text ++ codemirror_mode: htmlembedded ++ codemirror_mime_type: application/x-aspx ++ language_id: 8 ++ATS: ++ type: programming ++ color: "#1ac620" ++ aliases: ++ - ats2 ++ extensions: ++ - ".dats" ++ - ".hats" ++ - ".sats" ++ tm_scope: source.ats ++ ace_mode: ocaml ++ language_id: 9 ++ActionScript: ++ type: programming ++ tm_scope: source.actionscript.3 ++ color: "#882B0F" ++ aliases: ++ - actionscript 3 ++ - actionscript3 ++ - as3 ++ extensions: ++ - ".as" ++ ace_mode: actionscript ++ language_id: 10 ++Ada: ++ type: programming ++ color: "#02f88c" ++ extensions: ++ - ".adb" ++ - ".ada" ++ - ".ads" ++ aliases: ++ - ada95 ++ - ada2005 ++ ace_mode: ada ++ language_id: 11 ++Adobe Font Metrics: ++ type: data ++ tm_scope: source.afm ++ extensions: ++ - ".afm" ++ aliases: ++ - acfm ++ - adobe composite font metrics ++ - adobe multiple font metrics ++ - amfm ++ ace_mode: text ++ language_id: 147198098 ++Agda: ++ type: programming ++ color: "#315665" ++ extensions: ++ - ".agda" ++ ace_mode: text ++ language_id: 12 ++Alloy: ++ type: programming ++ color: "#64C800" ++ extensions: ++ - ".als" ++ ace_mode: text ++ language_id: 13 ++Alpine Abuild: ++ type: programming ++ group: Shell ++ aliases: ++ - abuild ++ - apkbuild ++ filenames: ++ - APKBUILD ++ tm_scope: source.shell ++ ace_mode: sh ++ codemirror_mode: shell ++ codemirror_mime_type: text/x-sh ++ language_id: 14 ++AngelScript: ++ type: programming ++ color: "#C7D7DC" ++ extensions: ++ - ".as" ++ - ".angelscript" ++ tm_scope: source.angelscript ++ ace_mode: text ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-c++src ++ language_id: 389477596 ++Ant Build System: ++ type: data ++ tm_scope: text.xml.ant ++ filenames: ++ - ant.xml ++ - build.xml ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: application/xml ++ language_id: 15 ++ApacheConf: ++ type: data ++ aliases: ++ - aconf ++ - apache ++ extensions: ++ - ".apacheconf" ++ - ".vhost" ++ filenames: ++ - ".htaccess" ++ - apache2.conf ++ - httpd.conf ++ tm_scope: source.apache-config ++ ace_mode: apache_conf ++ language_id: 16 ++Apex: ++ type: programming ++ extensions: ++ - ".cls" ++ tm_scope: source.java ++ ace_mode: java ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-java ++ language_id: 17 ++Apollo Guidance Computer: ++ type: programming ++ group: Assembly ++ extensions: ++ - ".agc" ++ tm_scope: source.agc ++ ace_mode: assembly_x86 ++ language_id: 18 ++AppleScript: ++ type: programming ++ aliases: ++ - osascript ++ extensions: ++ - ".applescript" ++ - ".scpt" ++ interpreters: ++ - osascript ++ ace_mode: applescript ++ color: "#101F1F" ++ language_id: 19 ++Arc: ++ type: programming ++ color: "#aa2afe" ++ extensions: ++ - ".arc" ++ tm_scope: none ++ ace_mode: text ++ language_id: 20 ++AsciiDoc: ++ type: prose ++ ace_mode: asciidoc ++ wrap: true ++ extensions: ++ - ".asciidoc" ++ - ".adoc" ++ - ".asc" ++ tm_scope: text.html.asciidoc ++ language_id: 22 ++AspectJ: ++ type: programming ++ color: "#a957b0" ++ extensions: ++ - ".aj" ++ tm_scope: source.aspectj ++ ace_mode: text ++ language_id: 23 ++Assembly: ++ type: programming ++ color: "#6E4C13" ++ aliases: ++ - asm ++ - nasm ++ extensions: ++ - ".asm" ++ - ".a51" ++ - ".inc" ++ - ".nasm" ++ tm_scope: source.assembly ++ ace_mode: assembly_x86 ++ language_id: 24 ++Augeas: ++ type: programming ++ extensions: ++ - ".aug" ++ tm_scope: none ++ ace_mode: text ++ language_id: 25 ++AutoHotkey: ++ type: programming ++ color: "#6594b9" ++ aliases: ++ - ahk ++ extensions: ++ - ".ahk" ++ - ".ahkl" ++ tm_scope: source.ahk ++ ace_mode: autohotkey ++ language_id: 26 ++AutoIt: ++ type: programming ++ color: "#1C3552" ++ aliases: ++ - au3 ++ - AutoIt3 ++ - AutoItScript ++ extensions: ++ - ".au3" ++ tm_scope: source.autoit ++ ace_mode: autohotkey ++ language_id: 27 ++Awk: ++ type: programming ++ extensions: ++ - ".awk" ++ - ".auk" ++ - ".gawk" ++ - ".mawk" ++ - ".nawk" ++ interpreters: ++ - awk ++ - gawk ++ - mawk ++ - nawk ++ ace_mode: text ++ language_id: 28 ++Ballerina: ++ type: programming ++ extensions: ++ - ".bal" ++ tm_scope: source.ballerina ++ ace_mode: text ++ color: "#FF5000" ++ language_id: 720859680 ++Batchfile: ++ type: programming ++ aliases: ++ - bat ++ - batch ++ - dosbatch ++ - winbatch ++ extensions: ++ - ".bat" ++ - ".cmd" ++ tm_scope: source.batchfile ++ ace_mode: batchfile ++ color: "#C1F12E" ++ language_id: 29 ++Befunge: ++ type: programming ++ extensions: ++ - ".befunge" ++ ace_mode: text ++ language_id: 30 ++Bison: ++ type: programming ++ group: Yacc ++ tm_scope: source.bison ++ extensions: ++ - ".bison" ++ ace_mode: text ++ language_id: 31 ++BitBake: ++ type: programming ++ tm_scope: none ++ extensions: ++ - ".bb" ++ ace_mode: text ++ language_id: 32 ++Blade: ++ type: markup ++ group: HTML ++ extensions: ++ - ".blade" ++ - ".blade.php" ++ tm_scope: text.html.php.blade ++ ace_mode: text ++ language_id: 33 ++BlitzBasic: ++ type: programming ++ aliases: ++ - b3d ++ - blitz3d ++ - blitzplus ++ - bplus ++ extensions: ++ - ".bb" ++ - ".decls" ++ tm_scope: source.blitzmax ++ ace_mode: text ++ language_id: 34 ++BlitzMax: ++ type: programming ++ color: "#cd6400" ++ extensions: ++ - ".bmx" ++ aliases: ++ - bmax ++ ace_mode: text ++ language_id: 35 ++Bluespec: ++ type: programming ++ extensions: ++ - ".bsv" ++ tm_scope: source.bsv ++ ace_mode: verilog ++ language_id: 36 ++Boo: ++ type: programming ++ color: "#d4bec1" ++ extensions: ++ - ".boo" ++ ace_mode: text ++ tm_scope: source.boo ++ language_id: 37 ++Brainfuck: ++ type: programming ++ color: "#2F2530" ++ extensions: ++ - ".b" ++ - ".bf" ++ tm_scope: source.bf ++ ace_mode: text ++ codemirror_mode: brainfuck ++ codemirror_mime_type: text/x-brainfuck ++ language_id: 38 ++Brightscript: ++ type: programming ++ extensions: ++ - ".brs" ++ tm_scope: source.brightscript ++ ace_mode: text ++ language_id: 39 ++Bro: ++ type: programming ++ extensions: ++ - ".bro" ++ ace_mode: text ++ language_id: 40 ++C: ++ type: programming ++ color: "#555555" ++ extensions: ++ - ".c" ++ - ".cats" ++ - ".h" ++ - ".idc" ++ interpreters: ++ - tcc ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csrc ++ language_id: 41 ++C#: ++ type: programming ++ ace_mode: csharp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csharp ++ tm_scope: source.cs ++ color: "#178600" ++ aliases: ++ - csharp ++ extensions: ++ - ".cs" ++ - ".cake" ++ - ".cshtml" ++ - ".csx" ++ language_id: 42 ++C++: ++ type: programming ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-c++src ++ color: "#f34b7d" ++ aliases: ++ - cpp ++ extensions: ++ - ".cpp" ++ - ".c++" ++ - ".cc" ++ - ".cp" ++ - ".cxx" ++ - ".h" ++ - ".h++" ++ - ".hh" ++ - ".hpp" ++ - ".hxx" ++ - ".inc" ++ - ".inl" ++ - ".ino" ++ - ".ipp" ++ - ".re" ++ - ".tcc" ++ - ".tpp" ++ language_id: 43 ++C-ObjDump: ++ type: data ++ extensions: ++ - ".c-objdump" ++ tm_scope: objdump.x86asm ++ ace_mode: assembly_x86 ++ language_id: 44 ++C2hs Haskell: ++ type: programming ++ group: Haskell ++ aliases: ++ - c2hs ++ extensions: ++ - ".chs" ++ tm_scope: source.haskell ++ ace_mode: haskell ++ codemirror_mode: haskell ++ codemirror_mime_type: text/x-haskell ++ language_id: 45 ++CLIPS: ++ type: programming ++ extensions: ++ - ".clp" ++ tm_scope: source.clips ++ ace_mode: text ++ language_id: 46 ++CMake: ++ type: programming ++ extensions: ++ - ".cmake" ++ - ".cmake.in" ++ filenames: ++ - CMakeLists.txt ++ ace_mode: text ++ codemirror_mode: cmake ++ codemirror_mime_type: text/x-cmake ++ language_id: 47 ++COBOL: ++ type: programming ++ extensions: ++ - ".cob" ++ - ".cbl" ++ - ".ccp" ++ - ".cobol" ++ - ".cpy" ++ ace_mode: cobol ++ codemirror_mode: cobol ++ codemirror_mime_type: text/x-cobol ++ language_id: 48 ++COLLADA: ++ type: data ++ extensions: ++ - ".dae" ++ tm_scope: text.xml ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ language_id: 49 ++CSON: ++ type: data ++ group: CoffeeScript ++ tm_scope: source.coffee ++ ace_mode: coffee ++ codemirror_mode: coffeescript ++ codemirror_mime_type: text/x-coffeescript ++ searchable: false ++ extensions: ++ - ".cson" ++ language_id: 424 ++CSS: ++ type: markup ++ tm_scope: source.css ++ ace_mode: css ++ codemirror_mode: css ++ codemirror_mime_type: text/css ++ color: "#563d7c" ++ extensions: ++ - ".css" ++ language_id: 50 ++CSV: ++ type: data ++ ace_mode: text ++ tm_scope: none ++ extensions: ++ - ".csv" ++ language_id: 51 ++CWeb: ++ type: programming ++ extensions: ++ - ".w" ++ tm_scope: none ++ ace_mode: text ++ language_id: 657332628 ++Cap'n Proto: ++ type: programming ++ tm_scope: source.capnp ++ extensions: ++ - ".capnp" ++ ace_mode: text ++ language_id: 52 ++CartoCSS: ++ type: programming ++ aliases: ++ - Carto ++ extensions: ++ - ".mss" ++ ace_mode: text ++ tm_scope: source.css.mss ++ language_id: 53 ++Ceylon: ++ type: programming ++ color: "#dfa535" ++ extensions: ++ - ".ceylon" ++ tm_scope: source.ceylon ++ ace_mode: text ++ language_id: 54 ++Chapel: ++ type: programming ++ color: "#8dc63f" ++ aliases: ++ - chpl ++ extensions: ++ - ".chpl" ++ ace_mode: text ++ language_id: 55 ++Charity: ++ type: programming ++ extensions: ++ - ".ch" ++ tm_scope: none ++ ace_mode: text ++ language_id: 56 ++ChucK: ++ type: programming ++ extensions: ++ - ".ck" ++ tm_scope: source.java ++ ace_mode: java ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-java ++ language_id: 57 ++Cirru: ++ type: programming ++ color: "#ccccff" ++ ace_mode: cirru ++ extensions: ++ - ".cirru" ++ language_id: 58 ++Clarion: ++ type: programming ++ color: "#db901e" ++ ace_mode: text ++ extensions: ++ - ".clw" ++ tm_scope: source.clarion ++ language_id: 59 ++Clean: ++ type: programming ++ color: "#3F85AF" ++ extensions: ++ - ".icl" ++ - ".dcl" ++ tm_scope: source.clean ++ ace_mode: text ++ language_id: 60 ++Click: ++ type: programming ++ color: "#E4E6F3" ++ extensions: ++ - ".click" ++ tm_scope: source.click ++ ace_mode: text ++ language_id: 61 ++Clojure: ++ type: programming ++ ace_mode: clojure ++ codemirror_mode: clojure ++ codemirror_mime_type: text/x-clojure ++ color: "#db5855" ++ extensions: ++ - ".clj" ++ - ".boot" ++ - ".cl2" ++ - ".cljc" ++ - ".cljs" ++ - ".cljs.hl" ++ - ".cljscm" ++ - ".cljx" ++ - ".hic" ++ filenames: ++ - riemann.config ++ language_id: 62 ++Closure Templates: ++ type: markup ++ group: HTML ++ ace_mode: soy_template ++ codemirror_mode: soy ++ codemirror_mime_type: text/x-soy ++ aliases: ++ - soy ++ extensions: ++ - ".soy" ++ tm_scope: text.html.soy ++ language_id: 357046146 ++Cloud Firestore Security Rules: ++ type: data ++ ace_mode: less ++ codemirror_mode: css ++ codemirror_mime_type: text/css ++ tm_scope: source.firestore ++ filenames: ++ - firestore.rules ++ language_id: 407996372 ++CoNLL-U: ++ type: data ++ extensions: ++ - ".conllu" ++ - ".conll" ++ tm_scope: text.conllu ++ ace_mode: text ++ aliases: ++ - CoNLL ++ - CoNLL-X ++ language_id: 421026389 ++CoffeeScript: ++ type: programming ++ tm_scope: source.coffee ++ ace_mode: coffee ++ codemirror_mode: coffeescript ++ codemirror_mime_type: text/x-coffeescript ++ color: "#244776" ++ aliases: ++ - coffee ++ - coffee-script ++ extensions: ++ - ".coffee" ++ - "._coffee" ++ - ".cake" ++ - ".cjsx" ++ - ".iced" ++ filenames: ++ - Cakefile ++ interpreters: ++ - coffee ++ language_id: 63 ++ColdFusion: ++ type: programming ++ ace_mode: coldfusion ++ color: "#ed2cd6" ++ aliases: ++ - cfm ++ - cfml ++ - coldfusion html ++ extensions: ++ - ".cfm" ++ - ".cfml" ++ tm_scope: text.html.cfm ++ language_id: 64 ++ColdFusion CFC: ++ type: programming ++ group: ColdFusion ++ ace_mode: coldfusion ++ aliases: ++ - cfc ++ extensions: ++ - ".cfc" ++ tm_scope: source.cfscript ++ language_id: 65 ++Common Lisp: ++ type: programming ++ tm_scope: source.lisp ++ color: "#3fb68b" ++ aliases: ++ - lisp ++ extensions: ++ - ".lisp" ++ - ".asd" ++ - ".cl" ++ - ".l" ++ - ".lsp" ++ - ".ny" ++ - ".podsl" ++ - ".sexp" ++ interpreters: ++ - lisp ++ - sbcl ++ - ccl ++ - clisp ++ - ecl ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ language_id: 66 ++Common Workflow Language: ++ aliases: ++ - cwl ++ type: programming ++ ace_mode: yaml ++ codemirror_mode: yaml ++ codemirror_mime_type: text/x-yaml ++ extensions: ++ - ".cwl" ++ interpreters: ++ - cwl-runner ++ color: "#B5314C" ++ tm_scope: source.cwl ++ language_id: 988547172 ++Component Pascal: ++ type: programming ++ color: "#B0CE4E" ++ extensions: ++ - ".cp" ++ - ".cps" ++ tm_scope: source.pascal ++ aliases: ++ - delphi ++ - objectpascal ++ ace_mode: pascal ++ codemirror_mode: pascal ++ codemirror_mime_type: text/x-pascal ++ language_id: 67 ++Cool: ++ type: programming ++ extensions: ++ - ".cl" ++ tm_scope: source.cool ++ ace_mode: text ++ language_id: 68 ++Coq: ++ type: programming ++ extensions: ++ - ".coq" ++ - ".v" ++ ace_mode: text ++ language_id: 69 ++Cpp-ObjDump: ++ type: data ++ extensions: ++ - ".cppobjdump" ++ - ".c++-objdump" ++ - ".c++objdump" ++ - ".cpp-objdump" ++ - ".cxx-objdump" ++ tm_scope: objdump.x86asm ++ aliases: ++ - c++-objdump ++ ace_mode: assembly_x86 ++ language_id: 70 ++Creole: ++ type: prose ++ wrap: true ++ extensions: ++ - ".creole" ++ tm_scope: text.html.creole ++ ace_mode: text ++ language_id: 71 ++Crystal: ++ type: programming ++ color: "#776791" ++ extensions: ++ - ".cr" ++ ace_mode: ruby ++ codemirror_mode: crystal ++ codemirror_mime_type: text/x-crystal ++ tm_scope: source.crystal ++ interpreters: ++ - crystal ++ language_id: 72 ++Csound: ++ type: programming ++ aliases: ++ - csound-orc ++ extensions: ++ - ".orc" ++ - ".udo" ++ tm_scope: source.csound ++ ace_mode: csound_orchestra ++ language_id: 73 ++Csound Document: ++ type: programming ++ aliases: ++ - csound-csd ++ extensions: ++ - ".csd" ++ tm_scope: source.csound-document ++ ace_mode: csound_document ++ language_id: 74 ++Csound Score: ++ type: programming ++ aliases: ++ - csound-sco ++ extensions: ++ - ".sco" ++ tm_scope: source.csound-score ++ ace_mode: csound_score ++ language_id: 75 ++Cuda: ++ type: programming ++ extensions: ++ - ".cu" ++ - ".cuh" ++ tm_scope: source.cuda-c++ ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-c++src ++ color: "#3A4E3A" ++ language_id: 77 ++Cycript: ++ type: programming ++ extensions: ++ - ".cy" ++ tm_scope: source.js ++ ace_mode: javascript ++ codemirror_mode: javascript ++ codemirror_mime_type: text/javascript ++ language_id: 78 ++Cython: ++ type: programming ++ group: Python ++ extensions: ++ - ".pyx" ++ - ".pxd" ++ - ".pxi" ++ aliases: ++ - pyrex ++ ace_mode: text ++ codemirror_mode: python ++ codemirror_mime_type: text/x-cython ++ language_id: 79 ++D: ++ type: programming ++ color: "#ba595e" ++ extensions: ++ - ".d" ++ - ".di" ++ ace_mode: d ++ codemirror_mode: d ++ codemirror_mime_type: text/x-d ++ language_id: 80 ++D-ObjDump: ++ type: data ++ extensions: ++ - ".d-objdump" ++ tm_scope: objdump.x86asm ++ ace_mode: assembly_x86 ++ language_id: 81 ++DIGITAL Command Language: ++ type: programming ++ aliases: ++ - dcl ++ extensions: ++ - ".com" ++ tm_scope: none ++ ace_mode: text ++ language_id: 82 ++DM: ++ type: programming ++ color: "#447265" ++ extensions: ++ - ".dm" ++ aliases: ++ - byond ++ tm_scope: source.dm ++ ace_mode: c_cpp ++ language_id: 83 ++DNS Zone: ++ type: data ++ extensions: ++ - ".zone" ++ - ".arpa" ++ tm_scope: text.zone_file ++ ace_mode: text ++ language_id: 84 ++DTrace: ++ type: programming ++ aliases: ++ - dtrace-script ++ extensions: ++ - ".d" ++ interpreters: ++ - dtrace ++ tm_scope: source.c ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csrc ++ language_id: 85 ++Darcs Patch: ++ type: data ++ aliases: ++ - dpatch ++ extensions: ++ - ".darcspatch" ++ - ".dpatch" ++ tm_scope: none ++ ace_mode: text ++ language_id: 86 ++Dart: ++ type: programming ++ color: "#00B4AB" ++ extensions: ++ - ".dart" ++ interpreters: ++ - dart ++ ace_mode: dart ++ codemirror_mode: dart ++ codemirror_mime_type: application/dart ++ language_id: 87 ++DataWeave: ++ type: programming ++ color: "#003a52" ++ extensions: ++ - ".dwl" ++ ace_mode: text ++ tm_scope: source.data-weave ++ language_id: 974514097 ++Diff: ++ type: data ++ extensions: ++ - ".diff" ++ - ".patch" ++ aliases: ++ - udiff ++ tm_scope: source.diff ++ ace_mode: diff ++ codemirror_mode: diff ++ codemirror_mime_type: text/x-diff ++ language_id: 88 ++Dockerfile: ++ type: programming ++ color: "#0db7ed" ++ tm_scope: source.dockerfile ++ extensions: ++ - ".dockerfile" ++ filenames: ++ - Dockerfile ++ ace_mode: dockerfile ++ codemirror_mode: dockerfile ++ codemirror_mime_type: text/x-dockerfile ++ language_id: 89 ++Dogescript: ++ type: programming ++ color: "#cca760" ++ extensions: ++ - ".djs" ++ tm_scope: none ++ ace_mode: text ++ language_id: 90 ++Dylan: ++ type: programming ++ color: "#6c616e" ++ extensions: ++ - ".dylan" ++ - ".dyl" ++ - ".intr" ++ - ".lid" ++ ace_mode: text ++ codemirror_mode: dylan ++ codemirror_mime_type: text/x-dylan ++ language_id: 91 ++E: ++ type: programming ++ color: "#ccce35" ++ extensions: ++ - ".E" ++ interpreters: ++ - rune ++ tm_scope: none ++ ace_mode: text ++ language_id: 92 ++EBNF: ++ type: data ++ extensions: ++ - ".ebnf" ++ tm_scope: source.ebnf ++ ace_mode: text ++ codemirror_mode: ebnf ++ codemirror_mime_type: text/x-ebnf ++ language_id: 430 ++ECL: ++ type: programming ++ color: "#8a1267" ++ extensions: ++ - ".ecl" ++ - ".eclxml" ++ tm_scope: none ++ ace_mode: text ++ codemirror_mode: ecl ++ codemirror_mime_type: text/x-ecl ++ language_id: 93 ++ECLiPSe: ++ type: programming ++ group: prolog ++ extensions: ++ - ".ecl" ++ tm_scope: source.prolog.eclipse ++ ace_mode: prolog ++ language_id: 94 ++EJS: ++ type: markup ++ group: HTML ++ extensions: ++ - ".ejs" ++ tm_scope: text.html.js ++ ace_mode: ejs ++ language_id: 95 ++EQ: ++ type: programming ++ color: "#a78649" ++ extensions: ++ - ".eq" ++ tm_scope: source.cs ++ ace_mode: csharp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csharp ++ language_id: 96 ++Eagle: ++ type: data ++ extensions: ++ - ".sch" ++ - ".brd" ++ tm_scope: text.xml ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ language_id: 97 ++Easybuild: ++ type: data ++ group: Python ++ ace_mode: python ++ codemirror_mode: python ++ codemirror_mime_type: text/x-python ++ tm_scope: source.python ++ extensions: ++ - ".eb" ++ language_id: 342840477 ++Ecere Projects: ++ type: data ++ group: JavaScript ++ extensions: ++ - ".epj" ++ tm_scope: source.json ++ ace_mode: json ++ codemirror_mode: javascript ++ codemirror_mime_type: application/json ++ language_id: 98 ++Edje Data Collection: ++ type: data ++ extensions: ++ - ".edc" ++ tm_scope: source.json ++ ace_mode: json ++ codemirror_mode: javascript ++ codemirror_mime_type: application/json ++ language_id: 342840478 ++Eiffel: ++ type: programming ++ color: "#946d57" ++ extensions: ++ - ".e" ++ ace_mode: eiffel ++ codemirror_mode: eiffel ++ codemirror_mime_type: text/x-eiffel ++ language_id: 99 ++Elixir: ++ type: programming ++ color: "#6e4a7e" ++ extensions: ++ - ".ex" ++ - ".exs" ++ ace_mode: elixir ++ filenames: ++ - mix.lock ++ interpreters: ++ - elixir ++ language_id: 100 ++Elm: ++ type: programming ++ color: "#60B5CC" ++ extensions: ++ - ".elm" ++ tm_scope: source.elm ++ ace_mode: elm ++ codemirror_mode: elm ++ codemirror_mime_type: text/x-elm ++ language_id: 101 ++Emacs Lisp: ++ type: programming ++ tm_scope: source.emacs.lisp ++ color: "#c065db" ++ aliases: ++ - elisp ++ - emacs ++ filenames: ++ - ".abbrev_defs" ++ - ".emacs" ++ - ".emacs.desktop" ++ - ".gnus" ++ - ".spacemacs" ++ - ".viper" ++ - Cask ++ - Project.ede ++ - _emacs ++ - abbrev_defs ++ extensions: ++ - ".el" ++ - ".emacs" ++ - ".emacs.desktop" ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ language_id: 102 ++EmberScript: ++ type: programming ++ color: "#FFF4F3" ++ extensions: ++ - ".em" ++ - ".emberscript" ++ tm_scope: source.coffee ++ ace_mode: coffee ++ codemirror_mode: coffeescript ++ codemirror_mime_type: text/x-coffeescript ++ language_id: 103 ++Erlang: ++ type: programming ++ color: "#B83998" ++ extensions: ++ - ".erl" ++ - ".app.src" ++ - ".es" ++ - ".escript" ++ - ".hrl" ++ - ".xrl" ++ - ".yrl" ++ filenames: ++ - Emakefile ++ - rebar.config ++ - rebar.config.lock ++ - rebar.lock ++ ace_mode: erlang ++ codemirror_mode: erlang ++ codemirror_mime_type: text/x-erlang ++ interpreters: ++ - escript ++ language_id: 104 ++F#: ++ type: programming ++ color: "#b845fc" ++ aliases: ++ - fsharp ++ extensions: ++ - ".fs" ++ - ".fsi" ++ - ".fsx" ++ tm_scope: source.fsharp ++ ace_mode: text ++ codemirror_mode: mllike ++ codemirror_mime_type: text/x-fsharp ++ language_id: 105 ++FLUX: ++ type: programming ++ color: "#88ccff" ++ extensions: ++ - ".fx" ++ - ".flux" ++ tm_scope: none ++ ace_mode: text ++ language_id: 106 ++Factor: ++ type: programming ++ color: "#636746" ++ extensions: ++ - ".factor" ++ filenames: ++ - ".factor-boot-rc" ++ - ".factor-rc" ++ ace_mode: text ++ codemirror_mode: factor ++ codemirror_mime_type: text/x-factor ++ language_id: 108 ++Fancy: ++ type: programming ++ color: "#7b9db4" ++ extensions: ++ - ".fy" ++ - ".fancypack" ++ filenames: ++ - Fakefile ++ ace_mode: text ++ language_id: 109 ++Fantom: ++ type: programming ++ color: "#14253c" ++ extensions: ++ - ".fan" ++ tm_scope: source.fan ++ ace_mode: text ++ language_id: 110 ++Filebench WML: ++ type: programming ++ extensions: ++ - ".f" ++ tm_scope: none ++ ace_mode: text ++ language_id: 111 ++Filterscript: ++ type: programming ++ group: RenderScript ++ extensions: ++ - ".fs" ++ tm_scope: none ++ ace_mode: text ++ language_id: 112 ++Formatted: ++ type: data ++ extensions: ++ - ".for" ++ - ".eam.fs" ++ tm_scope: none ++ ace_mode: text ++ language_id: 113 ++Forth: ++ type: programming ++ color: "#341708" ++ extensions: ++ - ".fth" ++ - ".4th" ++ - ".f" ++ - ".for" ++ - ".forth" ++ - ".fr" ++ - ".frt" ++ - ".fs" ++ ace_mode: forth ++ codemirror_mode: forth ++ codemirror_mime_type: text/x-forth ++ language_id: 114 ++Fortran: ++ type: programming ++ color: "#4d41b1" ++ extensions: ++ - ".f90" ++ - ".f" ++ - ".f03" ++ - ".f08" ++ - ".f77" ++ - ".f95" ++ - ".for" ++ - ".fpp" ++ tm_scope: source.fortran.modern ++ ace_mode: text ++ codemirror_mode: fortran ++ codemirror_mime_type: text/x-fortran ++ language_id: 107 ++FreeMarker: ++ type: programming ++ color: "#0050b2" ++ aliases: ++ - ftl ++ extensions: ++ - ".ftl" ++ tm_scope: text.html.ftl ++ ace_mode: ftl ++ language_id: 115 ++Frege: ++ type: programming ++ color: "#00cafe" ++ extensions: ++ - ".fr" ++ tm_scope: source.haskell ++ ace_mode: haskell ++ language_id: 116 ++G-code: ++ type: data ++ extensions: ++ - ".g" ++ - ".gco" ++ - ".gcode" ++ tm_scope: source.gcode ++ ace_mode: gcode ++ language_id: 117 ++GAMS: ++ type: programming ++ extensions: ++ - ".gms" ++ tm_scope: none ++ ace_mode: text ++ language_id: 118 ++GAP: ++ type: programming ++ extensions: ++ - ".g" ++ - ".gap" ++ - ".gd" ++ - ".gi" ++ - ".tst" ++ tm_scope: source.gap ++ ace_mode: text ++ language_id: 119 ++GCC Machine Description: ++ type: programming ++ extensions: ++ - ".md" ++ tm_scope: source.lisp ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ language_id: 121 ++GDB: ++ type: programming ++ extensions: ++ - ".gdb" ++ - ".gdbinit" ++ tm_scope: source.gdb ++ ace_mode: text ++ language_id: 122 ++GDScript: ++ type: programming ++ color: "#355570" ++ extensions: ++ - ".gd" ++ tm_scope: source.gdscript ++ ace_mode: text ++ language_id: 123 ++GLSL: ++ type: programming ++ extensions: ++ - ".glsl" ++ - ".fp" ++ - ".frag" ++ - ".frg" ++ - ".fs" ++ - ".fsh" ++ - ".fshader" ++ - ".geo" ++ - ".geom" ++ - ".glslv" ++ - ".gshader" ++ - ".shader" ++ - ".tesc" ++ - ".tese" ++ - ".vert" ++ - ".vrx" ++ - ".vsh" ++ - ".vshader" ++ ace_mode: glsl ++ language_id: 124 ++GN: ++ type: data ++ extensions: ++ - ".gn" ++ - ".gni" ++ interpreters: ++ - gn ++ filenames: ++ - ".gn" ++ tm_scope: source.gn ++ ace_mode: python ++ codemirror_mode: python ++ codemirror_mime_type: text/x-python ++ language_id: 302957008 ++Game Maker Language: ++ type: programming ++ color: "#8fb200" ++ extensions: ++ - ".gml" ++ tm_scope: source.c++ ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-c++src ++ language_id: 125 ++Genie: ++ type: programming ++ ace_mode: text ++ extensions: ++ - ".gs" ++ color: "#fb855d" ++ tm_scope: none ++ language_id: 792408528 ++Genshi: ++ type: programming ++ extensions: ++ - ".kid" ++ tm_scope: text.xml.genshi ++ aliases: ++ - xml+genshi ++ - xml+kid ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ language_id: 126 ++Gentoo Ebuild: ++ type: programming ++ group: Shell ++ extensions: ++ - ".ebuild" ++ tm_scope: source.shell ++ ace_mode: sh ++ codemirror_mode: shell ++ codemirror_mime_type: text/x-sh ++ language_id: 127 ++Gentoo Eclass: ++ type: programming ++ group: Shell ++ extensions: ++ - ".eclass" ++ tm_scope: source.shell ++ ace_mode: sh ++ codemirror_mode: shell ++ codemirror_mime_type: text/x-sh ++ language_id: 128 ++Gerber Image: ++ type: data ++ aliases: ++ - rs-274x ++ extensions: ++ - ".gbr" ++ - ".gbl" ++ - ".gbo" ++ - ".gbp" ++ - ".gbs" ++ - ".gko" ++ - ".gpb" ++ - ".gpt" ++ - ".gtl" ++ - ".gto" ++ - ".gtp" ++ - ".gts" ++ interpreters: ++ - gerbv ++ - gerbview ++ tm_scope: source.gerber ++ ace_mode: text ++ language_id: 404627610 ++Gettext Catalog: ++ type: prose ++ searchable: false ++ aliases: ++ - pot ++ extensions: ++ - ".po" ++ - ".pot" ++ tm_scope: source.po ++ ace_mode: text ++ language_id: 129 ++Gherkin: ++ type: programming ++ extensions: ++ - ".feature" ++ tm_scope: text.gherkin.feature ++ aliases: ++ - cucumber ++ ace_mode: text ++ color: "#5B2063" ++ language_id: 76 ++Glyph: ++ type: programming ++ color: "#c1ac7f" ++ extensions: ++ - ".glf" ++ tm_scope: source.tcl ++ ace_mode: tcl ++ codemirror_mode: tcl ++ codemirror_mime_type: text/x-tcl ++ language_id: 130 ++Gnuplot: ++ type: programming ++ color: "#f0a9f0" ++ extensions: ++ - ".gp" ++ - ".gnu" ++ - ".gnuplot" ++ - ".plot" ++ - ".plt" ++ interpreters: ++ - gnuplot ++ ace_mode: text ++ language_id: 131 ++Go: ++ type: programming ++ color: "#375eab" ++ aliases: ++ - golang ++ extensions: ++ - ".go" ++ ace_mode: golang ++ codemirror_mode: go ++ codemirror_mime_type: text/x-go ++ language_id: 132 ++Golo: ++ type: programming ++ color: "#88562A" ++ extensions: ++ - ".golo" ++ tm_scope: source.golo ++ ace_mode: text ++ language_id: 133 ++Gosu: ++ type: programming ++ color: "#82937f" ++ extensions: ++ - ".gs" ++ - ".gst" ++ - ".gsx" ++ - ".vark" ++ tm_scope: source.gosu.2 ++ ace_mode: text ++ language_id: 134 ++Grace: ++ type: programming ++ extensions: ++ - ".grace" ++ tm_scope: source.grace ++ ace_mode: text ++ language_id: 135 ++Gradle: ++ type: data ++ extensions: ++ - ".gradle" ++ tm_scope: source.groovy.gradle ++ ace_mode: text ++ language_id: 136 ++Grammatical Framework: ++ type: programming ++ aliases: ++ - gf ++ wrap: false ++ extensions: ++ - ".gf" ++ searchable: true ++ color: "#79aa7a" ++ tm_scope: source.haskell ++ ace_mode: haskell ++ codemirror_mode: haskell ++ codemirror_mime_type: text/x-haskell ++ language_id: 137 ++Graph Modeling Language: ++ type: data ++ extensions: ++ - ".gml" ++ tm_scope: none ++ ace_mode: text ++ language_id: 138 ++GraphQL: ++ type: data ++ extensions: ++ - ".graphql" ++ - ".gql" ++ tm_scope: source.graphql ++ ace_mode: text ++ language_id: 139 ++Graphviz (DOT): ++ type: data ++ tm_scope: source.dot ++ extensions: ++ - ".dot" ++ - ".gv" ++ ace_mode: text ++ language_id: 140 ++Groovy: ++ type: programming ++ ace_mode: groovy ++ codemirror_mode: groovy ++ codemirror_mime_type: text/x-groovy ++ color: "#e69f56" ++ extensions: ++ - ".groovy" ++ - ".grt" ++ - ".gtpl" ++ - ".gvy" ++ interpreters: ++ - groovy ++ filenames: ++ - Jenkinsfile ++ language_id: 142 ++Groovy Server Pages: ++ type: programming ++ group: Groovy ++ aliases: ++ - gsp ++ - java server page ++ extensions: ++ - ".gsp" ++ tm_scope: text.html.jsp ++ ace_mode: jsp ++ codemirror_mode: htmlembedded ++ codemirror_mime_type: application/x-jsp ++ language_id: 143 ++HCL: ++ type: programming ++ extensions: ++ - ".hcl" ++ - ".tf" ++ - ".tfvars" ++ ace_mode: ruby ++ codemirror_mode: ruby ++ codemirror_mime_type: text/x-ruby ++ tm_scope: source.terraform ++ language_id: 144 ++HLSL: ++ type: programming ++ extensions: ++ - ".hlsl" ++ - ".cginc" ++ - ".fx" ++ - ".fxh" ++ - ".hlsli" ++ ace_mode: text ++ tm_scope: source.hlsl ++ language_id: 145 ++HTML: ++ type: markup ++ tm_scope: text.html.basic ++ ace_mode: html ++ codemirror_mode: htmlmixed ++ codemirror_mime_type: text/html ++ color: "#e34c26" ++ aliases: ++ - xhtml ++ extensions: ++ - ".html" ++ - ".htm" ++ - ".html.hl" ++ - ".inc" ++ - ".st" ++ - ".xht" ++ - ".xhtml" ++ language_id: 146 ++HTML+Django: ++ type: markup ++ tm_scope: text.html.django ++ group: HTML ++ extensions: ++ - ".jinja" ++ - ".jinja2" ++ - ".mustache" ++ - ".njk" ++ aliases: ++ - django ++ - html+django/jinja ++ - html+jinja ++ - htmldjango ++ - njk ++ - nunjucks ++ ace_mode: django ++ codemirror_mode: django ++ codemirror_mime_type: text/x-django ++ language_id: 147 ++HTML+ECR: ++ type: markup ++ tm_scope: text.html.ecr ++ group: HTML ++ aliases: ++ - ecr ++ extensions: ++ - ".ecr" ++ ace_mode: text ++ codemirror_mode: htmlmixed ++ codemirror_mime_type: text/html ++ language_id: 148 ++HTML+EEX: ++ type: markup ++ tm_scope: text.html.elixir ++ group: HTML ++ aliases: ++ - eex ++ extensions: ++ - ".eex" ++ ace_mode: text ++ codemirror_mode: htmlmixed ++ codemirror_mime_type: text/html ++ language_id: 149 ++HTML+ERB: ++ type: markup ++ tm_scope: text.html.erb ++ group: HTML ++ aliases: ++ - erb ++ extensions: ++ - ".erb" ++ - ".erb.deface" ++ ace_mode: text ++ codemirror_mode: htmlembedded ++ codemirror_mime_type: application/x-erb ++ language_id: 150 ++HTML+PHP: ++ type: markup ++ tm_scope: text.html.php ++ group: HTML ++ extensions: ++ - ".phtml" ++ ace_mode: php ++ codemirror_mode: php ++ codemirror_mime_type: application/x-httpd-php ++ language_id: 151 ++HTTP: ++ type: data ++ extensions: ++ - ".http" ++ tm_scope: source.httpspec ++ ace_mode: text ++ codemirror_mode: http ++ codemirror_mime_type: message/http ++ language_id: 152 ++HXML: ++ type: data ++ ace_mode: text ++ extensions: ++ - ".hxml" ++ tm_scope: source.hxml ++ language_id: 786683730 ++Hack: ++ type: programming ++ ace_mode: php ++ codemirror_mode: php ++ codemirror_mime_type: application/x-httpd-php ++ extensions: ++ - ".hh" ++ - ".php" ++ tm_scope: text.html.php ++ color: "#878787" ++ language_id: 153 ++Haml: ++ group: HTML ++ type: markup ++ extensions: ++ - ".haml" ++ - ".haml.deface" ++ ace_mode: haml ++ codemirror_mode: haml ++ codemirror_mime_type: text/x-haml ++ language_id: 154 ++Handlebars: ++ type: markup ++ group: HTML ++ aliases: ++ - hbs ++ - htmlbars ++ extensions: ++ - ".handlebars" ++ - ".hbs" ++ tm_scope: text.html.handlebars ++ ace_mode: handlebars ++ language_id: 155 ++Harbour: ++ type: programming ++ color: "#0e60e3" ++ extensions: ++ - ".hb" ++ tm_scope: source.harbour ++ ace_mode: text ++ language_id: 156 ++Haskell: ++ type: programming ++ color: "#5e5086" ++ extensions: ++ - ".hs" ++ - ".hsc" ++ interpreters: ++ - runhaskell ++ ace_mode: haskell ++ codemirror_mode: haskell ++ codemirror_mime_type: text/x-haskell ++ language_id: 157 ++Haxe: ++ type: programming ++ ace_mode: haxe ++ codemirror_mode: haxe ++ codemirror_mime_type: text/x-haxe ++ color: "#df7900" ++ extensions: ++ - ".hx" ++ - ".hxsl" ++ tm_scope: source.hx ++ language_id: 158 ++HiveQL: ++ type: programming ++ extensions: ++ - ".q" ++ color: "#dce200" ++ tm_scope: source.hql ++ ace_mode: sql ++ language_id: 931814087 ++Hy: ++ type: programming ++ ace_mode: text ++ color: "#7790B2" ++ extensions: ++ - ".hy" ++ interpreters: ++ - "hy" ++ aliases: ++ - hylang ++ tm_scope: none ++ language_id: 159 ++HyPhy: ++ type: programming ++ ace_mode: text ++ extensions: ++ - ".bf" ++ tm_scope: none ++ language_id: 160 ++IDL: ++ type: programming ++ color: "#a3522f" ++ extensions: ++ - ".pro" ++ - ".dlm" ++ ace_mode: text ++ codemirror_mode: idl ++ codemirror_mime_type: text/x-idl ++ language_id: 161 ++IGOR Pro: ++ type: programming ++ extensions: ++ - ".ipf" ++ aliases: ++ - igor ++ - igorpro ++ tm_scope: none ++ ace_mode: text ++ language_id: 162 ++INI: ++ type: data ++ extensions: ++ - ".ini" ++ - ".cfg" ++ - ".prefs" ++ - ".pro" ++ - ".properties" ++ filenames: ++ - ".editorconfig" ++ - ".gitconfig" ++ - buildozer.spec ++ tm_scope: source.ini ++ aliases: ++ - dosini ++ ace_mode: ini ++ codemirror_mode: properties ++ codemirror_mime_type: text/x-properties ++ language_id: 163 ++IRC log: ++ type: data ++ aliases: ++ - irc ++ - irc logs ++ extensions: ++ - ".irclog" ++ - ".weechatlog" ++ tm_scope: none ++ ace_mode: text ++ codemirror_mode: mirc ++ codemirror_mime_type: text/mirc ++ language_id: 164 ++Idris: ++ type: programming ++ color: "#b30000" ++ extensions: ++ - ".idr" ++ - ".lidr" ++ ace_mode: text ++ tm_scope: source.idris ++ language_id: 165 ++Inform 7: ++ type: programming ++ wrap: true ++ extensions: ++ - ".ni" ++ - ".i7x" ++ tm_scope: source.inform7 ++ aliases: ++ - i7 ++ - inform7 ++ ace_mode: text ++ language_id: 166 ++Inno Setup: ++ type: programming ++ extensions: ++ - ".iss" ++ tm_scope: none ++ ace_mode: text ++ language_id: 167 ++Io: ++ type: programming ++ color: "#a9188d" ++ extensions: ++ - ".io" ++ interpreters: ++ - io ++ ace_mode: io ++ language_id: 168 ++Ioke: ++ type: programming ++ color: "#078193" ++ extensions: ++ - ".ik" ++ interpreters: ++ - ioke ++ ace_mode: text ++ language_id: 169 ++Isabelle: ++ type: programming ++ color: "#FEFE00" ++ extensions: ++ - ".thy" ++ tm_scope: source.isabelle.theory ++ ace_mode: text ++ language_id: 170 ++Isabelle ROOT: ++ type: programming ++ group: Isabelle ++ filenames: ++ - ROOT ++ tm_scope: source.isabelle.root ++ ace_mode: text ++ language_id: 171 ++J: ++ type: programming ++ color: "#9EEDFF" ++ extensions: ++ - ".ijs" ++ interpreters: ++ - jconsole ++ tm_scope: source.j ++ ace_mode: text ++ language_id: 172 ++JFlex: ++ type: programming ++ group: Lex ++ extensions: ++ - ".flex" ++ - ".jflex" ++ tm_scope: source.jflex ++ ace_mode: text ++ language_id: 173 ++JSON: ++ type: data ++ tm_scope: source.json ++ group: JavaScript ++ ace_mode: json ++ codemirror_mode: javascript ++ codemirror_mime_type: application/json ++ searchable: false ++ extensions: ++ - ".json" ++ - ".avsc" ++ - ".geojson" ++ - ".gltf" ++ - ".JSON-tmLanguage" ++ - ".jsonl" ++ - ".tfstate" ++ - ".tfstate.backup" ++ - ".topojson" ++ - ".webapp" ++ - ".webmanifest" ++ filenames: ++ - ".arcconfig" ++ - ".htmlhintrc" ++ - ".tern-config" ++ - ".tern-project" ++ - composer.lock ++ - mcmod.info ++ language_id: 174 ++JSON with Comments: ++ type: data ++ group: JSON ++ tm_scope: source.js ++ ace_mode: javascript ++ codemirror_mode: javascript ++ codemirror_mime_type: text/javascript ++ aliases: ++ - jsonc ++ extensions: ++ - ".sublime-build" ++ - ".sublime-commands" ++ - ".sublime-completions" ++ - ".sublime-keymap" ++ - ".sublime-macro" ++ - ".sublime-menu" ++ - ".sublime-mousemap" ++ - ".sublime-project" ++ - ".sublime-settings" ++ - ".sublime-theme" ++ - ".sublime-workspace" ++ - ".sublime_metrics" ++ - ".sublime_session" ++ filenames: ++ - ".babelrc" ++ - ".eslintrc.json" ++ - ".jscsrc" ++ - ".jshintrc" ++ - ".jslintrc" ++ - tsconfig.json ++ language_id: 423 ++JSON5: ++ type: data ++ extensions: ++ - ".json5" ++ tm_scope: source.js ++ ace_mode: javascript ++ codemirror_mode: javascript ++ codemirror_mime_type: application/json ++ language_id: 175 ++JSONLD: ++ type: data ++ group: JavaScript ++ ace_mode: javascript ++ extensions: ++ - ".jsonld" ++ tm_scope: source.js ++ language_id: 176 ++JSONiq: ++ color: "#40d47e" ++ type: programming ++ ace_mode: jsoniq ++ codemirror_mode: javascript ++ codemirror_mime_type: application/json ++ extensions: ++ - ".jq" ++ tm_scope: source.jq ++ language_id: 177 ++JSX: ++ type: programming ++ group: JavaScript ++ extensions: ++ - ".jsx" ++ tm_scope: source.js.jsx ++ ace_mode: javascript ++ codemirror_mode: jsx ++ codemirror_mime_type: text/jsx ++ language_id: 178 ++Jasmin: ++ type: programming ++ ace_mode: java ++ extensions: ++ - ".j" ++ tm_scope: source.jasmin ++ language_id: 180 ++Java: ++ type: programming ++ ace_mode: java ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-java ++ color: "#b07219" ++ extensions: ++ - ".java" ++ language_id: 181 ++Java Server Pages: ++ type: programming ++ group: Java ++ aliases: ++ - jsp ++ extensions: ++ - ".jsp" ++ tm_scope: text.html.jsp ++ ace_mode: jsp ++ codemirror_mode: htmlembedded ++ codemirror_mime_type: application/x-jsp ++ language_id: 182 ++JavaScript: ++ type: programming ++ tm_scope: source.js ++ ace_mode: javascript ++ codemirror_mode: javascript ++ codemirror_mime_type: text/javascript ++ color: "#f1e05a" ++ aliases: ++ - js ++ - node ++ extensions: ++ - ".js" ++ - "._js" ++ - ".bones" ++ - ".es" ++ - ".es6" ++ - ".frag" ++ - ".gs" ++ - ".jake" ++ - ".jsb" ++ - ".jscad" ++ - ".jsfl" ++ - ".jsm" ++ - ".jss" ++ - ".mjs" ++ - ".njs" ++ - ".pac" ++ - ".sjs" ++ - ".ssjs" ++ - ".xsjs" ++ - ".xsjslib" ++ filenames: ++ - Jakefile ++ interpreters: ++ - node ++ language_id: 183 ++Jison: ++ type: programming ++ group: Yacc ++ extensions: ++ - ".jison" ++ tm_scope: source.jison ++ ace_mode: text ++ language_id: 284531423 ++Jison Lex: ++ type: programming ++ group: Lex ++ extensions: ++ - ".jisonlex" ++ tm_scope: source.jisonlex ++ ace_mode: text ++ language_id: 406395330 ++Jolie: ++ type: programming ++ extensions: ++ - ".ol" ++ - ".iol" ++ interpreters: ++ - jolie ++ color: "#843179" ++ ace_mode: text ++ tm_scope: source.jolie ++ language_id: 998078858 ++Julia: ++ type: programming ++ extensions: ++ - ".jl" ++ interpreters: ++ - julia ++ color: "#a270ba" ++ ace_mode: julia ++ codemirror_mode: julia ++ codemirror_mime_type: text/x-julia ++ language_id: 184 ++Jupyter Notebook: ++ type: markup ++ ace_mode: json ++ codemirror_mode: javascript ++ codemirror_mime_type: application/json ++ tm_scope: source.json ++ color: "#DA5B0B" ++ extensions: ++ - ".ipynb" ++ filenames: ++ - Notebook ++ aliases: ++ - IPython Notebook ++ language_id: 185 ++KRL: ++ type: programming ++ color: "#28430A" ++ extensions: ++ - ".krl" ++ tm_scope: none ++ ace_mode: text ++ language_id: 186 ++KiCad Layout: ++ type: data ++ aliases: ++ - pcbnew ++ extensions: ++ - ".kicad_pcb" ++ - ".kicad_mod" ++ - ".kicad_wks" ++ filenames: ++ - fp-lib-table ++ tm_scope: source.pcb.sexp ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ language_id: 187 ++KiCad Legacy Layout: ++ type: data ++ extensions: ++ - ".brd" ++ tm_scope: source.pcb.board ++ ace_mode: text ++ language_id: 140848857 ++KiCad Schematic: ++ type: data ++ aliases: ++ - eeschema schematic ++ extensions: ++ - ".sch" ++ tm_scope: source.pcb.schematic ++ ace_mode: text ++ language_id: 622447435 ++Kit: ++ type: markup ++ ace_mode: html ++ codemirror_mode: htmlmixed ++ codemirror_mime_type: text/html ++ extensions: ++ - ".kit" ++ tm_scope: text.html.basic ++ language_id: 188 ++Kotlin: ++ type: programming ++ color: "#F18E33" ++ extensions: ++ - ".kt" ++ - ".ktm" ++ - ".kts" ++ tm_scope: source.kotlin ++ ace_mode: text ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-kotlin ++ language_id: 189 ++LFE: ++ type: programming ++ color: "#4C3023" ++ extensions: ++ - ".lfe" ++ tm_scope: source.lisp ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ language_id: 190 ++LLVM: ++ type: programming ++ extensions: ++ - ".ll" ++ ace_mode: text ++ color: "#185619" ++ language_id: 191 ++LOLCODE: ++ type: programming ++ extensions: ++ - ".lol" ++ color: "#cc9900" ++ tm_scope: none ++ ace_mode: text ++ language_id: 192 ++LSL: ++ type: programming ++ ace_mode: lsl ++ extensions: ++ - ".lsl" ++ - ".lslp" ++ interpreters: ++ - lsl ++ color: "#3d9970" ++ language_id: 193 ++LabVIEW: ++ type: programming ++ extensions: ++ - ".lvproj" ++ tm_scope: text.xml ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ language_id: 194 ++Lasso: ++ type: programming ++ color: "#999999" ++ extensions: ++ - ".lasso" ++ - ".las" ++ - ".lasso8" ++ - ".lasso9" ++ - ".ldml" ++ tm_scope: file.lasso ++ aliases: ++ - lassoscript ++ ace_mode: text ++ language_id: 195 ++Latte: ++ type: markup ++ group: HTML ++ extensions: ++ - ".latte" ++ tm_scope: text.html.smarty ++ ace_mode: smarty ++ codemirror_mode: smarty ++ codemirror_mime_type: text/x-smarty ++ language_id: 196 ++Lean: ++ type: programming ++ extensions: ++ - ".lean" ++ - ".hlean" ++ ace_mode: text ++ language_id: 197 ++Less: ++ type: markup ++ group: CSS ++ extensions: ++ - ".less" ++ tm_scope: source.css.less ++ ace_mode: less ++ codemirror_mode: css ++ codemirror_mime_type: text/css ++ language_id: 198 ++Lex: ++ type: programming ++ color: "#DBCA00" ++ aliases: ++ - flex ++ extensions: ++ - ".l" ++ - ".lex" ++ tm_scope: none ++ ace_mode: text ++ language_id: 199 ++LilyPond: ++ type: programming ++ extensions: ++ - ".ly" ++ - ".ily" ++ ace_mode: text ++ language_id: 200 ++Limbo: ++ type: programming ++ extensions: ++ - ".b" ++ - ".m" ++ tm_scope: none ++ ace_mode: text ++ language_id: 201 ++Linker Script: ++ type: data ++ extensions: ++ - ".ld" ++ - ".lds" ++ - ".x" ++ filenames: ++ - ld.script ++ tm_scope: none ++ ace_mode: text ++ language_id: 202 ++Linux Kernel Module: ++ type: data ++ extensions: ++ - ".mod" ++ tm_scope: none ++ ace_mode: text ++ language_id: 203 ++Liquid: ++ type: markup ++ extensions: ++ - ".liquid" ++ tm_scope: text.html.liquid ++ ace_mode: liquid ++ language_id: 204 ++Literate Agda: ++ type: programming ++ group: Agda ++ extensions: ++ - ".lagda" ++ tm_scope: none ++ ace_mode: text ++ language_id: 205 ++Literate CoffeeScript: ++ type: programming ++ tm_scope: source.litcoffee ++ group: CoffeeScript ++ ace_mode: text ++ wrap: true ++ aliases: ++ - litcoffee ++ extensions: ++ - ".litcoffee" ++ language_id: 206 ++Literate Haskell: ++ type: programming ++ group: Haskell ++ aliases: ++ - lhaskell ++ - lhs ++ extensions: ++ - ".lhs" ++ tm_scope: text.tex.latex.haskell ++ ace_mode: text ++ codemirror_mode: haskell-literate ++ codemirror_mime_type: text/x-literate-haskell ++ language_id: 207 ++LiveScript: ++ type: programming ++ color: "#499886" ++ aliases: ++ - live-script ++ - ls ++ extensions: ++ - ".ls" ++ - "._ls" ++ filenames: ++ - Slakefile ++ ace_mode: livescript ++ codemirror_mode: livescript ++ codemirror_mime_type: text/x-livescript ++ language_id: 208 ++Logos: ++ type: programming ++ extensions: ++ - ".xm" ++ - ".x" ++ - ".xi" ++ ace_mode: text ++ tm_scope: source.logos ++ language_id: 209 ++Logtalk: ++ type: programming ++ extensions: ++ - ".lgt" ++ - ".logtalk" ++ ace_mode: text ++ language_id: 210 ++LookML: ++ type: programming ++ ace_mode: yaml ++ codemirror_mode: yaml ++ codemirror_mime_type: text/x-yaml ++ color: "#652B81" ++ extensions: ++ - ".lookml" ++ - ".model.lkml" ++ - ".view.lkml" ++ tm_scope: source.yaml ++ language_id: 211 ++LoomScript: ++ type: programming ++ extensions: ++ - ".ls" ++ tm_scope: source.loomscript ++ ace_mode: text ++ language_id: 212 ++Lua: ++ type: programming ++ ace_mode: lua ++ codemirror_mode: lua ++ codemirror_mime_type: text/x-lua ++ color: "#000080" ++ extensions: ++ - ".lua" ++ - ".fcgi" ++ - ".nse" ++ - ".p8" ++ - ".pd_lua" ++ - ".rbxs" ++ - ".wlua" ++ interpreters: ++ - lua ++ language_id: 213 ++M: ++ type: programming ++ aliases: ++ - mumps ++ extensions: ++ - ".mumps" ++ - ".m" ++ ace_mode: text ++ codemirror_mode: mumps ++ codemirror_mime_type: text/x-mumps ++ language_id: 214 ++ tm_scope: none ++M4: ++ type: programming ++ extensions: ++ - ".m4" ++ tm_scope: none ++ ace_mode: text ++ language_id: 215 ++M4Sugar: ++ type: programming ++ group: M4 ++ aliases: ++ - autoconf ++ extensions: ++ - ".m4" ++ filenames: ++ - configure.ac ++ tm_scope: none ++ ace_mode: text ++ language_id: 216 ++MAXScript: ++ type: programming ++ color: "#00a6a6" ++ extensions: ++ - ".ms" ++ - ".mcr" ++ tm_scope: source.maxscript ++ ace_mode: text ++ language_id: 217 ++MQL4: ++ type: programming ++ color: "#62A8D6" ++ extensions: ++ - ".mq4" ++ - ".mqh" ++ tm_scope: source.mql5 ++ ace_mode: c_cpp ++ language_id: 426 ++MQL5: ++ type: programming ++ color: "#4A76B8" ++ extensions: ++ - ".mq5" ++ - ".mqh" ++ tm_scope: source.mql5 ++ ace_mode: c_cpp ++ language_id: 427 ++MTML: ++ type: markup ++ color: "#b7e1f4" ++ extensions: ++ - ".mtml" ++ tm_scope: text.html.basic ++ ace_mode: html ++ codemirror_mode: htmlmixed ++ codemirror_mime_type: text/html ++ language_id: 218 ++MUF: ++ type: programming ++ group: Forth ++ extensions: ++ - ".muf" ++ - ".m" ++ tm_scope: none ++ ace_mode: forth ++ codemirror_mode: forth ++ codemirror_mime_type: text/x-forth ++ language_id: 219 ++Makefile: ++ type: programming ++ color: "#427819" ++ aliases: ++ - bsdmake ++ - make ++ - mf ++ extensions: ++ - ".mak" ++ - ".d" ++ - ".make" ++ - ".mk" ++ - ".mkfile" ++ filenames: ++ - BSDmakefile ++ - GNUmakefile ++ - Kbuild ++ - Makefile ++ - Makefile.am ++ - Makefile.boot ++ - Makefile.frag ++ - Makefile.in ++ - Makefile.inc ++ - Makefile.wat ++ - makefile ++ - makefile.sco ++ - mkfile ++ interpreters: ++ - make ++ ace_mode: makefile ++ codemirror_mode: cmake ++ codemirror_mime_type: text/x-cmake ++ language_id: 220 ++Mako: ++ type: programming ++ extensions: ++ - ".mako" ++ - ".mao" ++ tm_scope: text.html.mako ++ ace_mode: text ++ language_id: 221 ++Markdown: ++ type: prose ++ aliases: ++ - pandoc ++ ace_mode: markdown ++ codemirror_mode: gfm ++ codemirror_mime_type: text/x-gfm ++ wrap: true ++ extensions: ++ - ".md" ++ - ".markdown" ++ - ".mdown" ++ - ".mdwn" ++ - ".mkd" ++ - ".mkdn" ++ - ".mkdown" ++ - ".ronn" ++ - ".workbook" ++ tm_scope: source.gfm ++ language_id: 222 ++Marko: ++ group: HTML ++ type: markup ++ tm_scope: text.marko ++ extensions: ++ - ".marko" ++ aliases: ++ - markojs ++ ace_mode: text ++ codemirror_mode: htmlmixed ++ codemirror_mime_type: text/html ++ language_id: 932782397 ++Mask: ++ type: markup ++ color: "#f97732" ++ ace_mode: mask ++ extensions: ++ - ".mask" ++ tm_scope: source.mask ++ language_id: 223 ++Mathematica: ++ type: programming ++ extensions: ++ - ".mathematica" ++ - ".cdf" ++ - ".m" ++ - ".ma" ++ - ".mt" ++ - ".nb" ++ - ".nbp" ++ - ".wl" ++ - ".wlt" ++ aliases: ++ - mma ++ ace_mode: text ++ codemirror_mode: mathematica ++ codemirror_mime_type: text/x-mathematica ++ language_id: 224 ++Matlab: ++ type: programming ++ color: "#e16737" ++ aliases: ++ - octave ++ extensions: ++ - ".matlab" ++ - ".m" ++ ace_mode: matlab ++ codemirror_mode: octave ++ codemirror_mime_type: text/x-octave ++ language_id: 225 ++Maven POM: ++ type: data ++ tm_scope: text.xml.pom ++ filenames: ++ - pom.xml ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ language_id: 226 ++Max: ++ type: programming ++ color: "#c4a79c" ++ aliases: ++ - max/msp ++ - maxmsp ++ extensions: ++ - ".maxpat" ++ - ".maxhelp" ++ - ".maxproj" ++ - ".mxt" ++ - ".pat" ++ tm_scope: source.json ++ ace_mode: json ++ codemirror_mode: javascript ++ codemirror_mime_type: application/json ++ language_id: 227 ++MediaWiki: ++ type: prose ++ wrap: true ++ extensions: ++ - ".mediawiki" ++ - ".wiki" ++ tm_scope: text.html.mediawiki ++ ace_mode: text ++ language_id: 228 ++Mercury: ++ type: programming ++ color: "#ff2b2b" ++ ace_mode: prolog ++ interpreters: ++ - mmi ++ extensions: ++ - ".m" ++ - ".moo" ++ tm_scope: source.mercury ++ language_id: 229 ++Meson: ++ type: programming ++ color: "#007800" ++ filenames: ++ - meson.build ++ - meson_options.txt ++ tm_scope: source.meson ++ ace_mode: text ++ language_id: 799141244 ++Metal: ++ type: programming ++ color: "#8f14e9" ++ extensions: ++ - ".metal" ++ tm_scope: source.c++ ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-c++src ++ language_id: 230 ++MiniD: ++ type: programming ++ searchable: false ++ extensions: ++ - ".minid" ++ tm_scope: none ++ ace_mode: text ++ language_id: 231 ++Mirah: ++ type: programming ++ color: "#c7a938" ++ extensions: ++ - ".druby" ++ - ".duby" ++ - ".mirah" ++ tm_scope: source.ruby ++ ace_mode: ruby ++ codemirror_mode: ruby ++ codemirror_mime_type: text/x-ruby ++ language_id: 232 ++Modelica: ++ type: programming ++ extensions: ++ - ".mo" ++ tm_scope: source.modelica ++ ace_mode: text ++ codemirror_mode: modelica ++ codemirror_mime_type: text/x-modelica ++ language_id: 233 ++Modula-2: ++ type: programming ++ extensions: ++ - ".mod" ++ tm_scope: source.modula2 ++ ace_mode: text ++ language_id: 234 ++Modula-3: ++ type: programming ++ extensions: ++ - ".i3" ++ - ".ig" ++ - ".m3" ++ - ".mg" ++ color: "#223388" ++ ace_mode: text ++ tm_scope: source.modula-3 ++ language_id: 564743864 ++Module Management System: ++ type: programming ++ extensions: ++ - ".mms" ++ - ".mmk" ++ filenames: ++ - descrip.mmk ++ - descrip.mms ++ tm_scope: none ++ ace_mode: text ++ language_id: 235 ++Monkey: ++ type: programming ++ extensions: ++ - ".monkey" ++ - ".monkey2" ++ ace_mode: text ++ tm_scope: source.monkey ++ language_id: 236 ++Moocode: ++ type: programming ++ extensions: ++ - ".moo" ++ tm_scope: none ++ ace_mode: text ++ language_id: 237 ++MoonScript: ++ type: programming ++ extensions: ++ - ".moon" ++ interpreters: ++ - moon ++ ace_mode: text ++ language_id: 238 ++Myghty: ++ type: programming ++ extensions: ++ - ".myt" ++ tm_scope: none ++ ace_mode: text ++ language_id: 239 ++NCL: ++ type: programming ++ color: "#28431f" ++ extensions: ++ - ".ncl" ++ tm_scope: source.ncl ++ ace_mode: text ++ language_id: 240 ++NL: ++ type: data ++ extensions: ++ - ".nl" ++ tm_scope: none ++ ace_mode: text ++ language_id: 241 ++NSIS: ++ type: programming ++ extensions: ++ - ".nsi" ++ - ".nsh" ++ ace_mode: text ++ codemirror_mode: nsis ++ codemirror_mime_type: text/x-nsis ++ language_id: 242 ++Nearley: ++ type: programming ++ ace_mode: text ++ color: "#990000" ++ extensions: ++ - ".ne" ++ - ".nearley" ++ tm_scope: source.ne ++ language_id: 521429430 ++Nemerle: ++ type: programming ++ color: "#3d3c6e" ++ extensions: ++ - ".n" ++ ace_mode: text ++ language_id: 243 ++NetLinx: ++ type: programming ++ color: "#0aa0ff" ++ extensions: ++ - ".axs" ++ - ".axi" ++ tm_scope: source.netlinx ++ ace_mode: text ++ language_id: 244 ++NetLinx+ERB: ++ type: programming ++ color: "#747faa" ++ extensions: ++ - ".axs.erb" ++ - ".axi.erb" ++ tm_scope: source.netlinx.erb ++ ace_mode: text ++ language_id: 245 ++NetLogo: ++ type: programming ++ color: "#ff6375" ++ extensions: ++ - ".nlogo" ++ tm_scope: source.lisp ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ language_id: 246 ++NewLisp: ++ type: programming ++ color: "#87AED7" ++ extensions: ++ - ".nl" ++ - ".lisp" ++ - ".lsp" ++ interpreters: ++ - newlisp ++ tm_scope: source.lisp ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ language_id: 247 ++Nextflow: ++ type: programming ++ ace_mode: groovy ++ tm_scope: source.nextflow ++ color: "#3ac486" ++ extensions: ++ - ".nf" ++ filenames: ++ - nextflow.config ++ interpreters: ++ - nextflow ++ language_id: 506780613 ++Nginx: ++ type: data ++ extensions: ++ - ".nginxconf" ++ - ".vhost" ++ filenames: ++ - nginx.conf ++ tm_scope: source.nginx ++ aliases: ++ - nginx configuration file ++ ace_mode: text ++ codemirror_mode: nginx ++ codemirror_mime_type: text/x-nginx-conf ++ language_id: 248 ++Nim: ++ type: programming ++ color: "#37775b" ++ extensions: ++ - ".nim" ++ - ".nimrod" ++ ace_mode: text ++ tm_scope: source.nim ++ language_id: 249 ++Ninja: ++ type: data ++ tm_scope: source.ninja ++ extensions: ++ - ".ninja" ++ ace_mode: text ++ language_id: 250 ++Nit: ++ type: programming ++ color: "#009917" ++ extensions: ++ - ".nit" ++ tm_scope: source.nit ++ ace_mode: text ++ language_id: 251 ++Nix: ++ type: programming ++ color: "#7e7eff" ++ extensions: ++ - ".nix" ++ aliases: ++ - nixos ++ tm_scope: source.nix ++ ace_mode: nix ++ language_id: 252 ++Nu: ++ type: programming ++ color: "#c9df40" ++ aliases: ++ - nush ++ extensions: ++ - ".nu" ++ filenames: ++ - Nukefile ++ tm_scope: source.nu ++ ace_mode: scheme ++ codemirror_mode: scheme ++ codemirror_mime_type: text/x-scheme ++ interpreters: ++ - nush ++ language_id: 253 ++NumPy: ++ type: programming ++ group: Python ++ extensions: ++ - ".numpy" ++ - ".numpyw" ++ - ".numsc" ++ tm_scope: none ++ ace_mode: text ++ codemirror_mode: python ++ codemirror_mime_type: text/x-python ++ language_id: 254 ++OCaml: ++ type: programming ++ ace_mode: ocaml ++ codemirror_mode: mllike ++ codemirror_mime_type: text/x-ocaml ++ color: "#3be133" ++ extensions: ++ - ".ml" ++ - ".eliom" ++ - ".eliomi" ++ - ".ml4" ++ - ".mli" ++ - ".mll" ++ - ".mly" ++ interpreters: ++ - ocaml ++ - ocamlrun ++ - ocamlscript ++ tm_scope: source.ocaml ++ language_id: 255 ++ObjDump: ++ type: data ++ extensions: ++ - ".objdump" ++ tm_scope: objdump.x86asm ++ ace_mode: assembly_x86 ++ language_id: 256 ++Objective-C: ++ type: programming ++ tm_scope: source.objc ++ color: "#438eff" ++ aliases: ++ - obj-c ++ - objc ++ - objectivec ++ extensions: ++ - ".m" ++ - ".h" ++ ace_mode: objectivec ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-objectivec ++ language_id: 257 ++Objective-C++: ++ type: programming ++ tm_scope: source.objc++ ++ color: "#6866fb" ++ aliases: ++ - obj-c++ ++ - objc++ ++ - objectivec++ ++ extensions: ++ - ".mm" ++ ace_mode: objectivec ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-objectivec ++ language_id: 258 ++Objective-J: ++ type: programming ++ color: "#ff0c5a" ++ aliases: ++ - obj-j ++ - objectivej ++ - objj ++ extensions: ++ - ".j" ++ - ".sj" ++ tm_scope: source.js.objj ++ ace_mode: text ++ language_id: 259 ++Omgrofl: ++ type: programming ++ extensions: ++ - ".omgrofl" ++ color: "#cabbff" ++ tm_scope: none ++ ace_mode: text ++ language_id: 260 ++Opa: ++ type: programming ++ extensions: ++ - ".opa" ++ ace_mode: text ++ language_id: 261 ++Opal: ++ type: programming ++ color: "#f7ede0" ++ extensions: ++ - ".opal" ++ tm_scope: source.opal ++ ace_mode: text ++ language_id: 262 ++OpenCL: ++ type: programming ++ group: C ++ extensions: ++ - ".cl" ++ - ".opencl" ++ tm_scope: source.c ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csrc ++ language_id: 263 ++OpenEdge ABL: ++ type: programming ++ aliases: ++ - progress ++ - openedge ++ - abl ++ extensions: ++ - ".p" ++ - ".cls" ++ - ".w" ++ tm_scope: source.abl ++ ace_mode: text ++ language_id: 264 ++OpenRC runscript: ++ type: programming ++ group: Shell ++ aliases: ++ - openrc ++ interpreters: ++ - openrc-run ++ tm_scope: source.shell ++ ace_mode: sh ++ codemirror_mode: shell ++ codemirror_mime_type: text/x-sh ++ language_id: 265 ++OpenSCAD: ++ type: programming ++ extensions: ++ - ".scad" ++ tm_scope: source.scad ++ ace_mode: scad ++ language_id: 266 ++OpenType Feature File: ++ type: data ++ aliases: ++ - AFDKO ++ extensions: ++ - ".fea" ++ tm_scope: source.opentype ++ ace_mode: text ++ language_id: 374317347 ++Org: ++ type: prose ++ wrap: true ++ extensions: ++ - ".org" ++ tm_scope: none ++ ace_mode: text ++ language_id: 267 ++Ox: ++ type: programming ++ extensions: ++ - ".ox" ++ - ".oxh" ++ - ".oxo" ++ tm_scope: source.ox ++ ace_mode: text ++ language_id: 268 ++Oxygene: ++ type: programming ++ color: "#cdd0e3" ++ extensions: ++ - ".oxygene" ++ tm_scope: none ++ ace_mode: text ++ language_id: 269 ++Oz: ++ type: programming ++ color: "#fab738" ++ extensions: ++ - ".oz" ++ tm_scope: source.oz ++ ace_mode: text ++ codemirror_mode: oz ++ codemirror_mime_type: text/x-oz ++ language_id: 270 ++P4: ++ type: programming ++ color: "#7055b5" ++ extensions: ++ - ".p4" ++ tm_scope: source.p4 ++ ace_mode: text ++ language_id: 348895984 ++PAWN: ++ type: programming ++ color: "#dbb284" ++ extensions: ++ - ".pwn" ++ - ".inc" ++ tm_scope: source.pawn ++ ace_mode: text ++ language_id: 271 ++PHP: ++ type: programming ++ tm_scope: text.html.php ++ ace_mode: php ++ codemirror_mode: php ++ codemirror_mime_type: application/x-httpd-php ++ color: "#4F5D95" ++ extensions: ++ - ".php" ++ - ".aw" ++ - ".ctp" ++ - ".fcgi" ++ - ".inc" ++ - ".php3" ++ - ".php4" ++ - ".php5" ++ - ".phps" ++ - ".phpt" ++ filenames: ++ - ".php" ++ - ".php_cs" ++ - ".php_cs.dist" ++ - Phakefile ++ interpreters: ++ - php ++ aliases: ++ - inc ++ language_id: 272 ++PLSQL: ++ type: programming ++ ace_mode: sql ++ codemirror_mode: sql ++ codemirror_mime_type: text/x-plsql ++ tm_scope: none ++ color: "#dad8d8" ++ extensions: ++ - ".pls" ++ - ".bdy" ++ - ".ddl" ++ - ".fnc" ++ - ".pck" ++ - ".pkb" ++ - ".pks" ++ - ".plb" ++ - ".plsql" ++ - ".prc" ++ - ".spc" ++ - ".sql" ++ - ".tpb" ++ - ".tps" ++ - ".trg" ++ - ".vw" ++ language_id: 273 ++PLpgSQL: ++ type: programming ++ ace_mode: pgsql ++ codemirror_mode: sql ++ codemirror_mime_type: text/x-sql ++ tm_scope: source.sql ++ extensions: ++ - ".sql" ++ language_id: 274 ++POV-Ray SDL: ++ type: programming ++ aliases: ++ - pov-ray ++ - povray ++ extensions: ++ - ".pov" ++ - ".inc" ++ ace_mode: text ++ language_id: 275 ++Pan: ++ type: programming ++ color: "#cc0000" ++ extensions: ++ - ".pan" ++ tm_scope: source.pan ++ ace_mode: text ++ language_id: 276 ++Papyrus: ++ type: programming ++ color: "#6600cc" ++ extensions: ++ - ".psc" ++ tm_scope: source.papyrus.skyrim ++ ace_mode: text ++ language_id: 277 ++Parrot: ++ type: programming ++ color: "#f3ca0a" ++ extensions: ++ - ".parrot" ++ tm_scope: none ++ ace_mode: text ++ language_id: 278 ++Parrot Assembly: ++ group: Parrot ++ type: programming ++ aliases: ++ - pasm ++ extensions: ++ - ".pasm" ++ interpreters: ++ - parrot ++ tm_scope: none ++ ace_mode: text ++ language_id: 279 ++Parrot Internal Representation: ++ group: Parrot ++ tm_scope: source.parrot.pir ++ type: programming ++ aliases: ++ - pir ++ extensions: ++ - ".pir" ++ interpreters: ++ - parrot ++ ace_mode: text ++ language_id: 280 ++Pascal: ++ type: programming ++ color: "#E3F171" ++ extensions: ++ - ".pas" ++ - ".dfm" ++ - ".dpr" ++ - ".inc" ++ - ".lpr" ++ - ".pascal" ++ - ".pp" ++ interpreters: ++ - instantfpc ++ ace_mode: pascal ++ codemirror_mode: pascal ++ codemirror_mime_type: text/x-pascal ++ language_id: 281 ++Pep8: ++ type: programming ++ color: "#C76F5B" ++ extensions: ++ - ".pep" ++ ace_mode: text ++ tm_scope: source.pep8 ++ language_id: 840372442 ++Perl: ++ type: programming ++ tm_scope: source.perl ++ ace_mode: perl ++ codemirror_mode: perl ++ codemirror_mime_type: text/x-perl ++ color: "#0298c3" ++ extensions: ++ - ".pl" ++ - ".al" ++ - ".cgi" ++ - ".fcgi" ++ - ".perl" ++ - ".ph" ++ - ".plx" ++ - ".pm" ++ - ".psgi" ++ - ".t" ++ filenames: ++ - Makefile.PL ++ - Rexfile ++ - ack ++ - cpanfile ++ interpreters: ++ - cperl ++ - perl ++ aliases: ++ - cperl ++ language_id: 282 ++Perl 6: ++ type: programming ++ color: "#0000fb" ++ extensions: ++ - ".6pl" ++ - ".6pm" ++ - ".nqp" ++ - ".p6" ++ - ".p6l" ++ - ".p6m" ++ - ".pl" ++ - ".pl6" ++ - ".pm" ++ - ".pm6" ++ - ".t" ++ interpreters: ++ - perl6 ++ aliases: ++ - perl6 ++ tm_scope: source.perl6fe ++ ace_mode: perl ++ codemirror_mode: perl ++ codemirror_mime_type: text/x-perl ++ language_id: 283 ++Pic: ++ type: markup ++ group: Roff ++ tm_scope: source.pic ++ extensions: ++ - ".pic" ++ - ".chem" ++ ace_mode: text ++ codemirror_mode: troff ++ codemirror_mime_type: text/troff ++ language_id: 425 ++Pickle: ++ type: data ++ extensions: ++ - ".pkl" ++ tm_scope: none ++ ace_mode: text ++ language_id: 284 ++PicoLisp: ++ type: programming ++ extensions: ++ - ".l" ++ interpreters: ++ - picolisp ++ - pil ++ tm_scope: source.lisp ++ ace_mode: lisp ++ language_id: 285 ++PigLatin: ++ type: programming ++ color: "#fcd7de" ++ extensions: ++ - ".pig" ++ tm_scope: source.pig_latin ++ ace_mode: text ++ language_id: 286 ++Pike: ++ type: programming ++ color: "#005390" ++ extensions: ++ - ".pike" ++ - ".pmod" ++ interpreters: ++ - pike ++ ace_mode: text ++ language_id: 287 ++Pod: ++ type: prose ++ ace_mode: perl ++ codemirror_mode: perl ++ codemirror_mime_type: text/x-perl ++ wrap: true ++ extensions: ++ - ".pod" ++ interpreters: ++ - perl ++ tm_scope: none ++ language_id: 288 ++PogoScript: ++ type: programming ++ color: "#d80074" ++ extensions: ++ - ".pogo" ++ tm_scope: source.pogoscript ++ ace_mode: text ++ language_id: 289 ++Pony: ++ type: programming ++ extensions: ++ - ".pony" ++ tm_scope: source.pony ++ ace_mode: text ++ language_id: 290 ++PostCSS: ++ type: markup ++ tm_scope: source.postcss ++ group: CSS ++ extensions: ++ - ".pcss" ++ ace_mode: text ++ language_id: 262764437 ++PostScript: ++ type: markup ++ color: "#da291c" ++ extensions: ++ - ".ps" ++ - ".eps" ++ - ".pfa" ++ tm_scope: source.postscript ++ aliases: ++ - postscr ++ ace_mode: text ++ language_id: 291 ++PowerBuilder: ++ type: programming ++ color: "#8f0f8d" ++ extensions: ++ - ".pbt" ++ - ".sra" ++ - ".sru" ++ - ".srw" ++ tm_scope: none ++ ace_mode: text ++ language_id: 292 ++PowerShell: ++ type: programming ++ color: "#012456" ++ ace_mode: powershell ++ codemirror_mode: powershell ++ codemirror_mime_type: application/x-powershell ++ aliases: ++ - posh ++ - pwsh ++ extensions: ++ - ".ps1" ++ - ".psd1" ++ - ".psm1" ++ interpreters: ++ - pwsh ++ language_id: 293 ++Processing: ++ type: programming ++ color: "#0096D8" ++ extensions: ++ - ".pde" ++ ace_mode: text ++ language_id: 294 ++Prolog: ++ type: programming ++ color: "#74283c" ++ extensions: ++ - ".pl" ++ - ".pro" ++ - ".prolog" ++ - ".yap" ++ interpreters: ++ - swipl ++ - yap ++ tm_scope: source.prolog ++ ace_mode: prolog ++ language_id: 295 ++Propeller Spin: ++ type: programming ++ color: "#7fa2a7" ++ extensions: ++ - ".spin" ++ tm_scope: source.spin ++ ace_mode: text ++ language_id: 296 ++Protocol Buffer: ++ type: data ++ aliases: ++ - protobuf ++ - Protocol Buffers ++ extensions: ++ - ".proto" ++ tm_scope: source.protobuf ++ ace_mode: protobuf ++ codemirror_mode: protobuf ++ codemirror_mime_type: text/x-protobuf ++ language_id: 297 ++Public Key: ++ type: data ++ extensions: ++ - ".asc" ++ - ".pub" ++ tm_scope: none ++ ace_mode: text ++ codemirror_mode: asciiarmor ++ codemirror_mime_type: application/pgp ++ language_id: 298 ++Pug: ++ group: HTML ++ type: markup ++ extensions: ++ - ".jade" ++ - ".pug" ++ tm_scope: text.jade ++ ace_mode: jade ++ codemirror_mode: pug ++ codemirror_mime_type: text/x-pug ++ language_id: 179 ++Puppet: ++ type: programming ++ color: "#302B6D" ++ extensions: ++ - ".pp" ++ filenames: ++ - Modulefile ++ ace_mode: text ++ codemirror_mode: puppet ++ codemirror_mime_type: text/x-puppet ++ tm_scope: source.puppet ++ language_id: 299 ++Pure Data: ++ type: data ++ extensions: ++ - ".pd" ++ tm_scope: none ++ ace_mode: text ++ language_id: 300 ++PureBasic: ++ type: programming ++ color: "#5a6986" ++ extensions: ++ - ".pb" ++ - ".pbi" ++ tm_scope: none ++ ace_mode: text ++ language_id: 301 ++PureScript: ++ type: programming ++ color: "#1D222D" ++ extensions: ++ - ".purs" ++ tm_scope: source.purescript ++ ace_mode: haskell ++ codemirror_mode: haskell ++ codemirror_mime_type: text/x-haskell ++ language_id: 302 ++Python: ++ type: programming ++ ace_mode: python ++ codemirror_mode: python ++ codemirror_mime_type: text/x-python ++ color: "#3572A5" ++ extensions: ++ - ".py" ++ - ".bzl" ++ - ".cgi" ++ - ".fcgi" ++ - ".gyp" ++ - ".gypi" ++ - ".lmi" ++ - ".py3" ++ - ".pyde" ++ - ".pyi" ++ - ".pyp" ++ - ".pyt" ++ - ".pyw" ++ - ".rpy" ++ - ".spec" ++ - ".tac" ++ - ".wsgi" ++ - ".xpy" ++ filenames: ++ - ".gclient" ++ - BUCK ++ - BUILD ++ - BUILD.bazel ++ - SConscript ++ - SConstruct ++ - Snakefile ++ - WORKSPACE ++ - wscript ++ interpreters: ++ - python ++ - python2 ++ - python3 ++ aliases: ++ - rusthon ++ - python3 ++ language_id: 303 ++Python console: ++ type: programming ++ group: Python ++ searchable: false ++ aliases: ++ - pycon ++ tm_scope: text.python.console ++ ace_mode: text ++ language_id: 428 ++Python traceback: ++ type: data ++ group: Python ++ searchable: false ++ extensions: ++ - ".pytb" ++ tm_scope: text.python.traceback ++ ace_mode: text ++ language_id: 304 ++QML: ++ type: programming ++ color: "#44a51c" ++ extensions: ++ - ".qml" ++ - ".qbs" ++ tm_scope: source.qml ++ ace_mode: text ++ language_id: 305 ++QMake: ++ type: programming ++ extensions: ++ - ".pro" ++ - ".pri" ++ interpreters: ++ - qmake ++ ace_mode: text ++ language_id: 306 ++Quake: ++ type: programming ++ filenames: ++ - m3makefile ++ - m3overrides ++ color: "#882233" ++ ace_mode: text ++ tm_scope: source.quake ++ language_id: 375265331 ++R: ++ type: programming ++ color: "#198CE7" ++ aliases: ++ - R ++ - Rscript ++ - splus ++ extensions: ++ - ".r" ++ - ".rd" ++ - ".rsx" ++ filenames: ++ - ".Rprofile" ++ - expr-dist ++ interpreters: ++ - Rscript ++ ace_mode: r ++ codemirror_mode: r ++ codemirror_mime_type: text/x-rsrc ++ language_id: 307 ++RAML: ++ type: markup ++ ace_mode: yaml ++ codemirror_mode: yaml ++ codemirror_mime_type: text/x-yaml ++ tm_scope: source.yaml ++ color: "#77d9fb" ++ extensions: ++ - ".raml" ++ language_id: 308 ++RDoc: ++ type: prose ++ ace_mode: rdoc ++ wrap: true ++ extensions: ++ - ".rdoc" ++ tm_scope: text.rdoc ++ language_id: 309 ++REALbasic: ++ type: programming ++ extensions: ++ - ".rbbas" ++ - ".rbfrm" ++ - ".rbmnu" ++ - ".rbres" ++ - ".rbtbar" ++ - ".rbuistate" ++ tm_scope: source.vbnet ++ ace_mode: text ++ language_id: 310 ++REXX: ++ type: programming ++ aliases: ++ - arexx ++ extensions: ++ - ".rexx" ++ - ".pprx" ++ - ".rex" ++ interpreters: ++ - regina ++ - rexx ++ tm_scope: source.rexx ++ ace_mode: text ++ language_id: 311 ++RHTML: ++ type: markup ++ group: HTML ++ extensions: ++ - ".rhtml" ++ tm_scope: text.html.erb ++ aliases: ++ - html+ruby ++ ace_mode: rhtml ++ codemirror_mode: htmlembedded ++ codemirror_mime_type: application/x-erb ++ language_id: 312 ++RMarkdown: ++ type: prose ++ wrap: true ++ ace_mode: markdown ++ codemirror_mode: gfm ++ codemirror_mime_type: text/x-gfm ++ extensions: ++ - ".rmd" ++ tm_scope: source.gfm ++ language_id: 313 ++RPC: ++ type: programming ++ aliases: ++ - rpcgen ++ - oncrpc ++ - xdr ++ ace_mode: c_cpp ++ extensions: ++ - ".x" ++ tm_scope: source.c ++ language_id: 1031374237 ++RPM Spec: ++ type: data ++ tm_scope: source.rpm-spec ++ extensions: ++ - ".spec" ++ aliases: ++ - specfile ++ ace_mode: text ++ codemirror_mode: rpm ++ codemirror_mime_type: text/x-rpm-spec ++ language_id: 314 ++RUNOFF: ++ type: markup ++ color: "#665a4e" ++ extensions: ++ - ".rnh" ++ - ".rno" ++ tm_scope: text.runoff ++ ace_mode: text ++ language_id: 315 ++Racket: ++ type: programming ++ color: "#22228f" ++ extensions: ++ - ".rkt" ++ - ".rktd" ++ - ".rktl" ++ - ".scrbl" ++ interpreters: ++ - racket ++ tm_scope: source.racket ++ ace_mode: lisp ++ language_id: 316 ++Ragel: ++ type: programming ++ color: "#9d5200" ++ extensions: ++ - ".rl" ++ aliases: ++ - ragel-rb ++ - ragel-ruby ++ tm_scope: none ++ ace_mode: text ++ language_id: 317 ++Rascal: ++ type: programming ++ color: "#fffaa0" ++ extensions: ++ - ".rsc" ++ tm_scope: source.rascal ++ ace_mode: text ++ language_id: 173616037 ++Raw token data: ++ type: data ++ aliases: ++ - raw ++ extensions: ++ - ".raw" ++ tm_scope: none ++ ace_mode: text ++ language_id: 318 ++Reason: ++ type: programming ++ group: OCaml ++ ace_mode: rust ++ codemirror_mode: rust ++ codemirror_mime_type: text/x-rustsrc ++ extensions: ++ - ".re" ++ - ".rei" ++ interpreters: ++ - ocaml ++ tm_scope: source.reason ++ language_id: 869538413 ++Rebol: ++ type: programming ++ color: "#358a5b" ++ extensions: ++ - ".reb" ++ - ".r" ++ - ".r2" ++ - ".r3" ++ - ".rebol" ++ ace_mode: text ++ tm_scope: source.rebol ++ language_id: 319 ++Red: ++ type: programming ++ color: "#f50000" ++ extensions: ++ - ".red" ++ - ".reds" ++ aliases: ++ - red/system ++ tm_scope: source.red ++ ace_mode: text ++ language_id: 320 ++Redcode: ++ type: programming ++ extensions: ++ - ".cw" ++ tm_scope: none ++ ace_mode: text ++ language_id: 321 ++Regular Expression: ++ type: data ++ extensions: ++ - ".regexp" ++ - ".regex" ++ aliases: ++ - regexp ++ - regex ++ ace_mode: text ++ tm_scope: source.regexp ++ language_id: 363378884 ++Ren'Py: ++ type: programming ++ aliases: ++ - renpy ++ color: "#ff7f7f" ++ extensions: ++ - ".rpy" ++ tm_scope: source.renpy ++ ace_mode: python ++ language_id: 322 ++RenderScript: ++ type: programming ++ extensions: ++ - ".rs" ++ - ".rsh" ++ tm_scope: none ++ ace_mode: text ++ language_id: 323 ++Ring: ++ type: programming ++ color: "#2D54CB" ++ extensions: ++ - ".ring" ++ tm_scope: source.ring ++ ace_mode: text ++ language_id: 431 ++RobotFramework: ++ type: programming ++ extensions: ++ - ".robot" ++ tm_scope: text.robot ++ ace_mode: text ++ language_id: 324 ++Roff: ++ type: markup ++ color: "#ecdebe" ++ extensions: ++ - ".man" ++ - ".1" ++ - ".1in" ++ - ".1m" ++ - ".1x" ++ - ".2" ++ - ".3" ++ - ".3in" ++ - ".3m" ++ - ".3qt" ++ - ".3x" ++ - ".4" ++ - ".5" ++ - ".6" ++ - ".7" ++ - ".8" ++ - ".9" ++ - ".l" ++ - ".me" ++ - ".ms" ++ - ".n" ++ - ".nr" ++ - ".rno" ++ - ".roff" ++ - ".tmac" ++ filenames: ++ - mmn ++ - mmt ++ tm_scope: text.roff ++ aliases: ++ - nroff ++ ace_mode: text ++ codemirror_mode: troff ++ codemirror_mime_type: text/troff ++ language_id: 141 ++Rouge: ++ type: programming ++ ace_mode: clojure ++ codemirror_mode: clojure ++ codemirror_mime_type: text/x-clojure ++ color: "#cc0088" ++ extensions: ++ - ".rg" ++ tm_scope: source.clojure ++ language_id: 325 ++Ruby: ++ type: programming ++ ace_mode: ruby ++ codemirror_mode: ruby ++ codemirror_mime_type: text/x-ruby ++ color: "#701516" ++ aliases: ++ - jruby ++ - macruby ++ - rake ++ - rb ++ - rbx ++ extensions: ++ - ".rb" ++ - ".builder" ++ - ".eye" ++ - ".fcgi" ++ - ".gemspec" ++ - ".god" ++ - ".jbuilder" ++ - ".mspec" ++ - ".pluginspec" ++ - ".podspec" ++ - ".rabl" ++ - ".rake" ++ - ".rbuild" ++ - ".rbw" ++ - ".rbx" ++ - ".ru" ++ - ".ruby" ++ - ".spec" ++ - ".thor" ++ - ".watchr" ++ interpreters: ++ - ruby ++ - macruby ++ - rake ++ - jruby ++ - rbx ++ filenames: ++ - ".irbrc" ++ - ".pryrc" ++ - Appraisals ++ - Berksfile ++ - Brewfile ++ - Buildfile ++ - Capfile ++ - Dangerfile ++ - Deliverfile ++ - Fastfile ++ - Gemfile ++ - Gemfile.lock ++ - Guardfile ++ - Jarfile ++ - Mavenfile ++ - Podfile ++ - Puppetfile ++ - Rakefile ++ - Snapfile ++ - Thorfile ++ - Vagrantfile ++ - buildfile ++ language_id: 326 ++Rust: ++ type: programming ++ color: "#dea584" ++ extensions: ++ - ".rs" ++ - ".rs.in" ++ ace_mode: rust ++ codemirror_mode: rust ++ codemirror_mime_type: text/x-rustsrc ++ language_id: 327 ++SAS: ++ type: programming ++ color: "#B34936" ++ extensions: ++ - ".sas" ++ tm_scope: source.sas ++ ace_mode: text ++ codemirror_mode: sas ++ codemirror_mime_type: text/x-sas ++ language_id: 328 ++SCSS: ++ type: markup ++ tm_scope: source.scss ++ group: CSS ++ ace_mode: scss ++ codemirror_mode: css ++ codemirror_mime_type: text/x-scss ++ extensions: ++ - ".scss" ++ language_id: 329 ++SMT: ++ type: programming ++ extensions: ++ - ".smt2" ++ - ".smt" ++ interpreters: ++ - boolector ++ - cvc4 ++ - mathsat5 ++ - opensmt ++ - smtinterpol ++ - smt-rat ++ - stp ++ - verit ++ - yices2 ++ - z3 ++ tm_scope: source.smt ++ ace_mode: text ++ language_id: 330 ++SPARQL: ++ type: data ++ tm_scope: source.sparql ++ ace_mode: text ++ codemirror_mode: sparql ++ codemirror_mime_type: application/sparql-query ++ extensions: ++ - ".sparql" ++ - ".rq" ++ language_id: 331 ++SQF: ++ type: programming ++ color: "#3F3F3F" ++ extensions: ++ - ".sqf" ++ - ".hqf" ++ tm_scope: source.sqf ++ ace_mode: text ++ language_id: 332 ++SQL: ++ type: data ++ tm_scope: source.sql ++ ace_mode: sql ++ codemirror_mode: sql ++ codemirror_mime_type: text/x-sql ++ extensions: ++ - ".sql" ++ - ".cql" ++ - ".ddl" ++ - ".inc" ++ - ".mysql" ++ - ".prc" ++ - ".tab" ++ - ".udf" ++ - ".viw" ++ language_id: 333 ++SQLPL: ++ type: programming ++ ace_mode: sql ++ codemirror_mode: sql ++ codemirror_mime_type: text/x-sql ++ tm_scope: source.sql ++ extensions: ++ - ".sql" ++ - ".db2" ++ language_id: 334 ++SRecode Template: ++ type: markup ++ color: "#348a34" ++ tm_scope: source.lisp ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ extensions: ++ - ".srt" ++ language_id: 335 ++STON: ++ type: data ++ group: Smalltalk ++ extensions: ++ - ".ston" ++ tm_scope: source.smalltalk ++ ace_mode: text ++ language_id: 336 ++SVG: ++ type: data ++ extensions: ++ - ".svg" ++ tm_scope: text.xml ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ language_id: 337 ++Sage: ++ type: programming ++ group: Python ++ extensions: ++ - ".sage" ++ - ".sagews" ++ tm_scope: source.python ++ ace_mode: python ++ codemirror_mode: python ++ codemirror_mime_type: text/x-python ++ language_id: 338 ++SaltStack: ++ type: programming ++ color: "#646464" ++ aliases: ++ - saltstate ++ - salt ++ extensions: ++ - ".sls" ++ tm_scope: source.yaml.salt ++ ace_mode: yaml ++ codemirror_mode: yaml ++ codemirror_mime_type: text/x-yaml ++ language_id: 339 ++Sass: ++ type: markup ++ tm_scope: source.sass ++ group: CSS ++ extensions: ++ - ".sass" ++ ace_mode: sass ++ codemirror_mode: sass ++ codemirror_mime_type: text/x-sass ++ language_id: 340 ++Scala: ++ type: programming ++ ace_mode: scala ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-scala ++ color: "#c22d40" ++ extensions: ++ - ".scala" ++ - ".kojo" ++ - ".sbt" ++ - ".sc" ++ interpreters: ++ - scala ++ language_id: 341 ++Scaml: ++ group: HTML ++ type: markup ++ extensions: ++ - ".scaml" ++ tm_scope: source.scaml ++ ace_mode: text ++ language_id: 342 ++Scheme: ++ type: programming ++ color: "#1e4aec" ++ extensions: ++ - ".scm" ++ - ".sch" ++ - ".sld" ++ - ".sls" ++ - ".sps" ++ - ".ss" ++ interpreters: ++ - guile ++ - bigloo ++ - chicken ++ - csi ++ - gosh ++ - r6rs ++ ace_mode: scheme ++ codemirror_mode: scheme ++ codemirror_mime_type: text/x-scheme ++ language_id: 343 ++Scilab: ++ type: programming ++ extensions: ++ - ".sci" ++ - ".sce" ++ - ".tst" ++ ace_mode: text ++ language_id: 344 ++Self: ++ type: programming ++ color: "#0579aa" ++ extensions: ++ - ".self" ++ tm_scope: none ++ ace_mode: text ++ language_id: 345 ++ShaderLab: ++ type: programming ++ extensions: ++ - ".shader" ++ ace_mode: text ++ tm_scope: source.shaderlab ++ language_id: 664257356 ++Shell: ++ type: programming ++ color: "#89e051" ++ aliases: ++ - sh ++ - shell-script ++ - bash ++ - zsh ++ extensions: ++ - ".sh" ++ - ".bash" ++ - ".bats" ++ - ".cgi" ++ - ".command" ++ - ".fcgi" ++ - ".ksh" ++ - ".sh.in" ++ - ".tmux" ++ - ".tool" ++ - ".zsh" ++ filenames: ++ - ".bash_history" ++ - ".bash_logout" ++ - ".bash_profile" ++ - ".bashrc" ++ - ".cshrc" ++ - ".login" ++ - ".profile" ++ - ".zlogin" ++ - ".zlogout" ++ - ".zprofile" ++ - ".zshenv" ++ - ".zshrc" ++ - 9fs ++ - PKGBUILD ++ - bash_logout ++ - bash_profile ++ - bashrc ++ - cshrc ++ - gradlew ++ - login ++ - man ++ - profile ++ - zlogin ++ - zlogout ++ - zprofile ++ - zshenv ++ - zshrc ++ interpreters: ++ - ash ++ - bash ++ - dash ++ - ksh ++ - mksh ++ - pdksh ++ - rc ++ - sh ++ - zsh ++ ace_mode: sh ++ codemirror_mode: shell ++ codemirror_mime_type: text/x-sh ++ language_id: 346 ++ShellSession: ++ type: programming ++ extensions: ++ - ".sh-session" ++ aliases: ++ - bash session ++ - console ++ tm_scope: text.shell-session ++ ace_mode: sh ++ codemirror_mode: shell ++ codemirror_mime_type: text/x-sh ++ language_id: 347 ++Shen: ++ type: programming ++ color: "#120F14" ++ extensions: ++ - ".shen" ++ tm_scope: source.shen ++ ace_mode: text ++ language_id: 348 ++Slash: ++ type: programming ++ color: "#007eff" ++ extensions: ++ - ".sl" ++ tm_scope: text.html.slash ++ ace_mode: text ++ language_id: 349 ++Slim: ++ group: HTML ++ type: markup ++ extensions: ++ - ".slim" ++ tm_scope: text.slim ++ ace_mode: text ++ codemirror_mode: slim ++ codemirror_mime_type: text/x-slim ++ language_id: 350 ++Smali: ++ type: programming ++ extensions: ++ - ".smali" ++ ace_mode: text ++ tm_scope: source.smali ++ language_id: 351 ++Smalltalk: ++ type: programming ++ color: "#596706" ++ extensions: ++ - ".st" ++ - ".cs" ++ aliases: ++ - squeak ++ ace_mode: text ++ codemirror_mode: smalltalk ++ codemirror_mime_type: text/x-stsrc ++ language_id: 352 ++Smarty: ++ type: programming ++ extensions: ++ - ".tpl" ++ ace_mode: smarty ++ codemirror_mode: smarty ++ codemirror_mime_type: text/x-smarty ++ tm_scope: text.html.smarty ++ language_id: 353 ++Solidity: ++ type: programming ++ color: "#AA6746" ++ ace_mode: text ++ tm_scope: source.solidity ++ language_id: 237469032 ++SourcePawn: ++ type: programming ++ color: "#5c7611" ++ aliases: ++ - sourcemod ++ extensions: ++ - ".sp" ++ - ".inc" ++ - ".sma" ++ tm_scope: source.sp ++ ace_mode: text ++ language_id: 354 ++Spline Font Database: ++ type: data ++ extensions: ++ - ".sfd" ++ tm_scope: text.sfd ++ ace_mode: yaml ++ language_id: 767169629 ++Squirrel: ++ type: programming ++ color: "#800000" ++ extensions: ++ - ".nut" ++ tm_scope: source.c++ ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-c++src ++ language_id: 355 ++Stan: ++ type: programming ++ color: "#b2011d" ++ extensions: ++ - ".stan" ++ ace_mode: text ++ tm_scope: source.stan ++ language_id: 356 ++Standard ML: ++ type: programming ++ color: "#dc566d" ++ aliases: ++ - sml ++ extensions: ++ - ".ML" ++ - ".fun" ++ - ".sig" ++ - ".sml" ++ tm_scope: source.ml ++ ace_mode: text ++ codemirror_mode: mllike ++ codemirror_mime_type: text/x-ocaml ++ language_id: 357 ++Stata: ++ type: programming ++ extensions: ++ - ".do" ++ - ".ado" ++ - ".doh" ++ - ".ihlp" ++ - ".mata" ++ - ".matah" ++ - ".sthlp" ++ ace_mode: text ++ language_id: 358 ++Stylus: ++ type: markup ++ group: CSS ++ extensions: ++ - ".styl" ++ tm_scope: source.stylus ++ ace_mode: stylus ++ language_id: 359 ++SubRip Text: ++ type: data ++ extensions: ++ - ".srt" ++ ace_mode: text ++ tm_scope: text.srt ++ language_id: 360 ++SugarSS: ++ type: markup ++ tm_scope: source.css.postcss.sugarss ++ group: CSS ++ extensions: ++ - ".sss" ++ ace_mode: text ++ language_id: 826404698 ++SuperCollider: ++ type: programming ++ color: "#46390b" ++ extensions: ++ - ".sc" ++ - ".scd" ++ interpreters: ++ - sclang ++ - scsynth ++ tm_scope: source.supercollider ++ ace_mode: text ++ language_id: 361 ++Swift: ++ type: programming ++ color: "#ffac45" ++ extensions: ++ - ".swift" ++ ace_mode: text ++ codemirror_mode: swift ++ codemirror_mime_type: text/x-swift ++ language_id: 362 ++SystemVerilog: ++ type: programming ++ color: "#DAE1C2" ++ extensions: ++ - ".sv" ++ - ".svh" ++ - ".vh" ++ ace_mode: verilog ++ codemirror_mode: verilog ++ codemirror_mime_type: text/x-systemverilog ++ language_id: 363 ++TI Program: ++ type: programming ++ ace_mode: text ++ color: "#A0AA87" ++ extensions: ++ - ".8xp" ++ - ".8xk" ++ - ".8xk.txt" ++ - ".8xp.txt" ++ language_id: 422 ++ tm_scope: none ++TLA: ++ type: programming ++ extensions: ++ - ".tla" ++ tm_scope: source.tla ++ ace_mode: text ++ language_id: 364 ++TOML: ++ type: data ++ extensions: ++ - ".toml" ++ filenames: ++ - Cargo.lock ++ - Gopkg.lock ++ tm_scope: source.toml ++ ace_mode: toml ++ codemirror_mode: toml ++ codemirror_mime_type: text/x-toml ++ language_id: 365 ++TXL: ++ type: programming ++ extensions: ++ - ".txl" ++ tm_scope: source.txl ++ ace_mode: text ++ language_id: 366 ++Tcl: ++ type: programming ++ color: "#e4cc98" ++ extensions: ++ - ".tcl" ++ - ".adp" ++ - ".tm" ++ filenames: ++ - owh ++ - starfield ++ interpreters: ++ - tclsh ++ - wish ++ ace_mode: tcl ++ codemirror_mode: tcl ++ codemirror_mime_type: text/x-tcl ++ language_id: 367 ++Tcsh: ++ type: programming ++ group: Shell ++ extensions: ++ - ".tcsh" ++ - ".csh" ++ tm_scope: source.shell ++ ace_mode: sh ++ codemirror_mode: shell ++ codemirror_mime_type: text/x-sh ++ language_id: 368 ++TeX: ++ type: markup ++ color: "#3D6117" ++ ace_mode: tex ++ codemirror_mode: stex ++ codemirror_mime_type: text/x-stex ++ wrap: true ++ aliases: ++ - latex ++ extensions: ++ - ".tex" ++ - ".aux" ++ - ".bbx" ++ - ".bib" ++ - ".cbx" ++ - ".cls" ++ - ".dtx" ++ - ".ins" ++ - ".lbx" ++ - ".ltx" ++ - ".mkii" ++ - ".mkiv" ++ - ".mkvi" ++ - ".sty" ++ - ".toc" ++ language_id: 369 ++Tea: ++ type: markup ++ extensions: ++ - ".tea" ++ tm_scope: source.tea ++ ace_mode: text ++ language_id: 370 ++Terra: ++ type: programming ++ extensions: ++ - ".t" ++ color: "#00004c" ++ ace_mode: lua ++ codemirror_mode: lua ++ codemirror_mime_type: text/x-lua ++ interpreters: ++ - lua ++ language_id: 371 ++Text: ++ type: prose ++ wrap: true ++ aliases: ++ - fundamental ++ extensions: ++ - ".txt" ++ - ".fr" ++ - ".nb" ++ - ".ncl" ++ - ".no" ++ filenames: ++ - COPYING ++ - COPYING.regex ++ - COPYRIGHT.regex ++ - FONTLOG ++ - INSTALL ++ - INSTALL.mysql ++ - LICENSE ++ - LICENSE.mysql ++ - NEWS ++ - README.1ST ++ - README.me ++ - README.mysql ++ - click.me ++ - delete.me ++ - keep.me ++ - read.me ++ - readme.1st ++ - test.me ++ tm_scope: none ++ ace_mode: text ++ language_id: 372 ++Textile: ++ type: prose ++ ace_mode: textile ++ codemirror_mode: textile ++ codemirror_mime_type: text/x-textile ++ wrap: true ++ extensions: ++ - ".textile" ++ tm_scope: none ++ language_id: 373 ++Thrift: ++ type: programming ++ tm_scope: source.thrift ++ extensions: ++ - ".thrift" ++ ace_mode: text ++ language_id: 374 ++Turing: ++ type: programming ++ color: "#cf142b" ++ extensions: ++ - ".t" ++ - ".tu" ++ tm_scope: source.turing ++ ace_mode: text ++ language_id: 375 ++Turtle: ++ type: data ++ extensions: ++ - ".ttl" ++ tm_scope: source.turtle ++ ace_mode: text ++ codemirror_mode: turtle ++ codemirror_mime_type: text/turtle ++ language_id: 376 ++Twig: ++ type: markup ++ group: HTML ++ extensions: ++ - ".twig" ++ tm_scope: text.html.twig ++ ace_mode: twig ++ codemirror_mode: twig ++ codemirror_mime_type: text/x-twig ++ language_id: 377 ++Type Language: ++ type: data ++ aliases: ++ - tl ++ extensions: ++ - ".tl" ++ tm_scope: source.tl ++ ace_mode: text ++ language_id: 632765617 ++TypeScript: ++ type: programming ++ color: "#2b7489" ++ aliases: ++ - ts ++ extensions: ++ - ".ts" ++ - ".tsx" ++ tm_scope: source.ts ++ ace_mode: typescript ++ codemirror_mode: javascript ++ codemirror_mime_type: application/typescript ++ language_id: 378 ++Unified Parallel C: ++ type: programming ++ group: C ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csrc ++ extensions: ++ - ".upc" ++ tm_scope: source.c ++ language_id: 379 ++Unity3D Asset: ++ type: data ++ ace_mode: yaml ++ codemirror_mode: yaml ++ codemirror_mime_type: text/x-yaml ++ extensions: ++ - ".anim" ++ - ".asset" ++ - ".mat" ++ - ".meta" ++ - ".prefab" ++ - ".unity" ++ tm_scope: source.yaml ++ language_id: 380 ++Unix Assembly: ++ type: programming ++ group: Assembly ++ extensions: ++ - ".s" ++ - ".ms" ++ tm_scope: source.x86 ++ ace_mode: assembly_x86 ++ language_id: 120 ++Uno: ++ type: programming ++ extensions: ++ - ".uno" ++ ace_mode: csharp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csharp ++ tm_scope: source.cs ++ language_id: 381 ++UnrealScript: ++ type: programming ++ color: "#a54c4d" ++ extensions: ++ - ".uc" ++ tm_scope: source.java ++ ace_mode: java ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-java ++ language_id: 382 ++UrWeb: ++ type: programming ++ aliases: ++ - Ur/Web ++ - Ur ++ extensions: ++ - ".ur" ++ - ".urs" ++ tm_scope: source.ur ++ ace_mode: text ++ language_id: 383 ++VCL: ++ type: programming ++ color: "#148AA8" ++ extensions: ++ - ".vcl" ++ tm_scope: source.varnish.vcl ++ ace_mode: text ++ language_id: 384 ++VHDL: ++ type: programming ++ color: "#adb2cb" ++ extensions: ++ - ".vhdl" ++ - ".vhd" ++ - ".vhf" ++ - ".vhi" ++ - ".vho" ++ - ".vhs" ++ - ".vht" ++ - ".vhw" ++ ace_mode: vhdl ++ codemirror_mode: vhdl ++ codemirror_mime_type: text/x-vhdl ++ language_id: 385 ++Vala: ++ type: programming ++ color: "#fbe5cd" ++ extensions: ++ - ".vala" ++ - ".vapi" ++ ace_mode: vala ++ language_id: 386 ++Verilog: ++ type: programming ++ color: "#b2b7f8" ++ extensions: ++ - ".v" ++ - ".veo" ++ ace_mode: verilog ++ codemirror_mode: verilog ++ codemirror_mime_type: text/x-verilog ++ language_id: 387 ++Vim script: ++ type: programming ++ color: "#199f4b" ++ tm_scope: source.viml ++ aliases: ++ - vim ++ - viml ++ - nvim ++ extensions: ++ - ".vim" ++ filenames: ++ - ".gvimrc" ++ - ".nvimrc" ++ - ".vimrc" ++ - _vimrc ++ - gvimrc ++ - nvimrc ++ - vimrc ++ ace_mode: text ++ language_id: 388 ++Visual Basic: ++ type: programming ++ color: "#945db7" ++ extensions: ++ - ".vb" ++ - ".bas" ++ - ".cls" ++ - ".frm" ++ - ".frx" ++ - ".vba" ++ - ".vbhtml" ++ - ".vbs" ++ tm_scope: source.vbnet ++ aliases: ++ - vb.net ++ - vbnet ++ ace_mode: text ++ codemirror_mode: vb ++ codemirror_mime_type: text/x-vb ++ language_id: 389 ++Volt: ++ type: programming ++ color: "#1F1F1F" ++ extensions: ++ - ".volt" ++ tm_scope: source.d ++ ace_mode: d ++ codemirror_mode: d ++ codemirror_mime_type: text/x-d ++ language_id: 390 ++Vue: ++ type: markup ++ color: "#2c3e50" ++ extensions: ++ - ".vue" ++ tm_scope: text.html.vue ++ ace_mode: html ++ language_id: 391 ++Wavefront Material: ++ type: data ++ extensions: ++ - ".mtl" ++ tm_scope: source.wavefront.mtl ++ ace_mode: text ++ language_id: 392 ++Wavefront Object: ++ type: data ++ extensions: ++ - ".obj" ++ tm_scope: source.wavefront.obj ++ ace_mode: text ++ language_id: 393 ++Web Ontology Language: ++ type: data ++ extensions: ++ - ".owl" ++ tm_scope: text.xml ++ ace_mode: xml ++ language_id: 394 ++WebAssembly: ++ type: programming ++ color: "#04133b" ++ extensions: ++ - ".wast" ++ - ".wat" ++ aliases: ++ - wast ++ - wasm ++ tm_scope: source.webassembly ++ ace_mode: lisp ++ codemirror_mode: commonlisp ++ codemirror_mime_type: text/x-common-lisp ++ language_id: 956556503 ++WebIDL: ++ type: programming ++ extensions: ++ - ".webidl" ++ tm_scope: source.webidl ++ ace_mode: text ++ codemirror_mode: webidl ++ codemirror_mime_type: text/x-webidl ++ language_id: 395 ++World of Warcraft Addon Data: ++ type: data ++ extensions: ++ - ".toc" ++ tm_scope: source.toc ++ ace_mode: text ++ language_id: 396 ++X BitMap: ++ type: data ++ group: C ++ aliases: ++ - xbm ++ extensions: ++ - ".xbm" ++ ace_mode: c_cpp ++ tm_scope: source.c ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csrc ++ language_id: 782911107 ++X PixMap: ++ type: data ++ group: C ++ aliases: ++ - xpm ++ extensions: ++ - ".xpm" ++ - ".pm" ++ ace_mode: c_cpp ++ tm_scope: source.c ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csrc ++ language_id: 781846279 ++X10: ++ type: programming ++ aliases: ++ - xten ++ ace_mode: text ++ extensions: ++ - ".x10" ++ color: "#4B6BEF" ++ tm_scope: source.x10 ++ language_id: 397 ++XC: ++ type: programming ++ color: "#99DA07" ++ extensions: ++ - ".xc" ++ tm_scope: source.xc ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csrc ++ language_id: 398 ++XCompose: ++ type: data ++ filenames: ++ - ".XCompose" ++ - XCompose ++ - xcompose ++ tm_scope: config.xcompose ++ ace_mode: text ++ language_id: 225167241 ++XML: ++ type: data ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ aliases: ++ - rss ++ - xsd ++ - wsdl ++ extensions: ++ - ".xml" ++ - ".adml" ++ - ".admx" ++ - ".ant" ++ - ".axml" ++ - ".builds" ++ - ".ccproj" ++ - ".ccxml" ++ - ".clixml" ++ - ".cproject" ++ - ".cscfg" ++ - ".csdef" ++ - ".csl" ++ - ".csproj" ++ - ".ct" ++ - ".depproj" ++ - ".dita" ++ - ".ditamap" ++ - ".ditaval" ++ - ".dll.config" ++ - ".dotsettings" ++ - ".filters" ++ - ".fsproj" ++ - ".fxml" ++ - ".glade" ++ - ".gml" ++ - ".grxml" ++ - ".iml" ++ - ".ivy" ++ - ".jelly" ++ - ".jsproj" ++ - ".kml" ++ - ".launch" ++ - ".mdpolicy" ++ - ".mjml" ++ - ".mm" ++ - ".mod" ++ - ".mxml" ++ - ".natvis" ++ - ".ncl" ++ - ".ndproj" ++ - ".nproj" ++ - ".nuspec" ++ - ".odd" ++ - ".osm" ++ - ".pkgproj" ++ - ".plist" ++ - ".pluginspec" ++ - ".proj" ++ - ".props" ++ - ".ps1xml" ++ - ".psc1" ++ - ".pt" ++ - ".rdf" ++ - ".resx" ++ - ".rss" ++ - ".sch" ++ - ".scxml" ++ - ".sfproj" ++ - ".shproj" ++ - ".srdf" ++ - ".storyboard" ++ - ".stTheme" ++ - ".sublime-snippet" ++ - ".targets" ++ - ".tmCommand" ++ - ".tml" ++ - ".tmLanguage" ++ - ".tmPreferences" ++ - ".tmSnippet" ++ - ".tmTheme" ++ - ".ts" ++ - ".tsx" ++ - ".ui" ++ - ".urdf" ++ - ".ux" ++ - ".vbproj" ++ - ".vcxproj" ++ - ".vsixmanifest" ++ - ".vssettings" ++ - ".vstemplate" ++ - ".vxml" ++ - ".wixproj" ++ - ".wsdl" ++ - ".wsf" ++ - ".wxi" ++ - ".wxl" ++ - ".wxs" ++ - ".x3d" ++ - ".xacro" ++ - ".xaml" ++ - ".xib" ++ - ".xlf" ++ - ".xliff" ++ - ".xmi" ++ - ".xml.dist" ++ - ".xproj" ++ - ".xsd" ++ - ".xspec" ++ - ".xul" ++ - ".zcml" ++ filenames: ++ - ".classpath" ++ - ".cproject" ++ - ".project" ++ - App.config ++ - NuGet.config ++ - Settings.StyleCop ++ - Web.Debug.config ++ - Web.Release.config ++ - Web.config ++ - packages.config ++ language_id: 399 ++XPages: ++ type: data ++ extensions: ++ - ".xsp-config" ++ - ".xsp.metadata" ++ tm_scope: text.xml ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ language_id: 400 ++XProc: ++ type: programming ++ extensions: ++ - ".xpl" ++ - ".xproc" ++ tm_scope: text.xml ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ language_id: 401 ++XQuery: ++ type: programming ++ color: "#5232e7" ++ extensions: ++ - ".xquery" ++ - ".xq" ++ - ".xql" ++ - ".xqm" ++ - ".xqy" ++ ace_mode: xquery ++ codemirror_mode: xquery ++ codemirror_mime_type: application/xquery ++ tm_scope: source.xq ++ language_id: 402 ++XS: ++ type: programming ++ extensions: ++ - ".xs" ++ tm_scope: source.c ++ ace_mode: c_cpp ++ codemirror_mode: clike ++ codemirror_mime_type: text/x-csrc ++ language_id: 403 ++XSLT: ++ type: programming ++ aliases: ++ - xsl ++ extensions: ++ - ".xslt" ++ - ".xsl" ++ tm_scope: text.xml.xsl ++ ace_mode: xml ++ codemirror_mode: xml ++ codemirror_mime_type: text/xml ++ color: "#EB8CEB" ++ language_id: 404 ++Xojo: ++ type: programming ++ extensions: ++ - ".xojo_code" ++ - ".xojo_menu" ++ - ".xojo_report" ++ - ".xojo_script" ++ - ".xojo_toolbar" ++ - ".xojo_window" ++ tm_scope: source.vbnet ++ ace_mode: text ++ language_id: 405 ++Xtend: ++ type: programming ++ extensions: ++ - ".xtend" ++ ace_mode: text ++ language_id: 406 ++YAML: ++ type: data ++ tm_scope: source.yaml ++ aliases: ++ - yml ++ extensions: ++ - ".yml" ++ - ".mir" ++ - ".reek" ++ - ".rviz" ++ - ".sublime-syntax" ++ - ".syntax" ++ - ".yaml" ++ - ".yaml-tmlanguage" ++ - ".yml.mysql" ++ filenames: ++ - ".clang-format" ++ - ".clang-tidy" ++ - ".gemrc" ++ - glide.lock ++ ace_mode: yaml ++ codemirror_mode: yaml ++ codemirror_mime_type: text/x-yaml ++ language_id: 407 ++YANG: ++ type: data ++ extensions: ++ - ".yang" ++ tm_scope: source.yang ++ ace_mode: text ++ language_id: 408 ++YARA: ++ type: data ++ ace_mode: text ++ extensions: ++ - ".yar" ++ - ".yara" ++ tm_scope: source.yara ++ language_id: 805122868 ++Yacc: ++ type: programming ++ extensions: ++ - ".y" ++ - ".yacc" ++ - ".yy" ++ tm_scope: source.bison ++ ace_mode: text ++ color: "#4B6C4B" ++ language_id: 409 ++Zephir: ++ type: programming ++ color: "#118f9e" ++ extensions: ++ - ".zep" ++ tm_scope: source.php.zephir ++ ace_mode: php ++ language_id: 410 ++Zimpl: ++ type: programming ++ extensions: ++ - ".zimpl" ++ - ".zmpl" ++ - ".zpl" ++ tm_scope: none ++ ace_mode: text ++ language_id: 411 ++desktop: ++ type: data ++ extensions: ++ - ".desktop" ++ - ".desktop.in" ++ tm_scope: source.desktop ++ ace_mode: text ++ language_id: 412 ++eC: ++ type: programming ++ color: "#913960" ++ extensions: ++ - ".ec" ++ - ".eh" ++ tm_scope: source.c.ec ++ ace_mode: text ++ language_id: 413 ++edn: ++ type: data ++ ace_mode: clojure ++ codemirror_mode: clojure ++ codemirror_mime_type: text/x-clojure ++ extensions: ++ - ".edn" ++ tm_scope: source.clojure ++ language_id: 414 ++fish: ++ type: programming ++ group: Shell ++ interpreters: ++ - fish ++ extensions: ++ - ".fish" ++ tm_scope: source.fish ++ ace_mode: text ++ language_id: 415 ++mupad: ++ type: programming ++ extensions: ++ - ".mu" ++ ace_mode: text ++ language_id: 416 ++nesC: ++ type: programming ++ color: "#94B0C7" ++ extensions: ++ - ".nc" ++ ace_mode: text ++ tm_scope: source.nesc ++ language_id: 417 ++ooc: ++ type: programming ++ color: "#b0b77e" ++ extensions: ++ - ".ooc" ++ ace_mode: text ++ language_id: 418 ++q: ++ type: programming ++ extensions: ++ - ".q" ++ tm_scope: source.q ++ ace_mode: text ++ color: "#0040cd" ++ language_id: 970539067 ++reStructuredText: ++ type: prose ++ wrap: true ++ aliases: ++ - rst ++ extensions: ++ - ".rst" ++ - ".rest" ++ - ".rest.txt" ++ - ".rst.txt" ++ ace_mode: text ++ codemirror_mode: rst ++ codemirror_mime_type: text/x-rst ++ language_id: 419 ++sed: ++ type: programming ++ color: "#64b970" ++ extensions: ++ - ".sed" ++ interpreters: ++ - gsed ++ - minised ++ - sed ++ - ssed ++ ace_mode: text ++ tm_scope: source.sed ++ language_id: 847830017 ++wdl: ++ type: programming ++ color: "#42f1f4" ++ extensions: ++ - ".wdl" ++ tm_scope: source.wdl ++ ace_mode: text ++ language_id: 374521672 ++wisp: ++ type: programming ++ ace_mode: clojure ++ codemirror_mode: clojure ++ codemirror_mime_type: text/x-clojure ++ color: "#7582D1" ++ extensions: ++ - ".wisp" ++ tm_scope: source.clojure ++ language_id: 420 ++xBase: ++ type: programming ++ color: "#403a40" ++ aliases: ++ - advpl ++ - clipper ++ - foxpro ++ extensions: ++ - ".prg" ++ - ".ch" ++ - ".prw" ++ tm_scope: source.harbour ++ ace_mode: text ++ language_id: 421 +--- a/app/assets/javascripts/blob_edit/blob_bundle.js ++++ b/app/assets/javascripts/blob_edit/blob_bundle.js +@@ -13,10 +13,10 @@ + if (editBlobForm.length) { + const urlRoot = editBlobForm.data('relativeUrlRoot'); + const assetsPath = editBlobForm.data('assetsPrefix'); +- const blobLanguage = editBlobForm.data('blobLanguage'); ++ const filePath = editBlobForm.data('blobFilename') + const currentAction = $('.js-file-title').data('currentAction'); + +- new EditBlob(`${urlRoot}${assetsPath}`, blobLanguage, currentAction); ++ new EditBlob(`${urlRoot}${assetsPath}`, filePath, currentAction, projectId); + new NewCommitForm(editBlobForm); + } + +--- a/app/helpers/blob_helper.rb ++++ b/app/helpers/blob_helper.rb +@@ -210,7 +210,7 @@ + { + 'relative-url-root' => Rails.application.config.relative_url_root, + 'assets-prefix' => Gitlab::Application.config.assets.prefix, +- 'blob-language' => @blob && @blob.language.try(:ace_mode) ++ 'blob-filename' => @blob && @blob.path, + } + end + +--- a/app/models/concerns/blob_like.rb ++++ b/app/models/concerns/blob_like.rb +@@ -1,6 +1,6 @@ + module BlobLike + extend ActiveSupport::Concern +- include Linguist::BlobHelper ++ include Gitlab::BlobHelper + + def id + raise NotImplementedError diff --git a/debian/patches/series b/debian/patches/series index da4612a403..cfbb61ef9e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -18,3 +18,4 @@ 0650-fix-8-to-10-migration.patch 0660-fix-gitlab-yml-path.patch 0670-allow-doorkeepr-4_3.patch +0680-remove-linguist.patch