From 57e681e78401f8c6565de01e2f81470013679a5f Mon Sep 17 00:00:00 2001 From: Pirate Praveen Date: Tue, 20 Nov 2018 10:00:23 +0530 Subject: [PATCH] Revert to using github-linguist 5 --- debian/patches/0680-remove-linguist.patch | 6181 --------------------- debian/patches/series | 1 - 2 files changed, 6182 deletions(-) delete mode 100644 debian/patches/0680-remove-linguist.patch diff --git a/debian/patches/0680-remove-linguist.patch b/debian/patches/0680-remove-linguist.patch deleted file mode 100644 index 84ad728aa0..0000000000 --- a/debian/patches/0680-remove-linguist.patch +++ /dev/null @@ -1,6181 +0,0 @@ -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 cfbb61ef9e..da4612a403 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -18,4 +18,3 @@ 0650-fix-8-to-10-migration.patch 0660-fix-gitlab-yml-path.patch 0670-allow-doorkeepr-4_3.patch -0680-remove-linguist.patch