diff --git a/.gitignore b/.gitignore index c0ab5df0..4b360dba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /Gemfile.lock .bundle/ +.idea benchmark/ lib/linguist/samples.json /grammars diff --git a/.gitmodules b/.gitmodules index f245c920..832b6423 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,7 +12,7 @@ url = https://github.com/Drako/SublimeBrainfuck [submodule "vendor/grammars/awk-sublime"] path = vendor/grammars/awk-sublime - url = https://github.com/JohnNilsson/awk-sublime + url = https://github.com/github-linguist/awk-sublime [submodule "vendor/grammars/Sublime-SQF-Language"] path = vendor/grammars/Sublime-SQF-Language url = https://github.com/JonBons/Sublime-SQF-Language @@ -22,15 +22,15 @@ [submodule "vendor/grammars/Sublime-REBOL"] path = vendor/grammars/Sublime-REBOL url = https://github.com/Oldes/Sublime-REBOL -[submodule "vendor/grammars/Sublime-VimL"] - path = vendor/grammars/Sublime-VimL - url = https://github.com/SalGnt/Sublime-VimL +[submodule "vendor/grammars/language-viml"] + path = vendor/grammars/language-viml + url = https://github.com/Alhadis/language-viml [submodule "vendor/grammars/ColdFusion"] path = vendor/grammars/ColdFusion url = https://github.com/SublimeText/ColdFusion [submodule "vendor/grammars/NSIS"] path = vendor/grammars/NSIS - url = https://github.com/SublimeText/NSIS + url = https://github.com/github-linguist/NSIS [submodule "vendor/grammars/NimLime"] path = vendor/grammars/NimLime url = https://github.com/Varriount/NimLime @@ -412,9 +412,9 @@ [submodule "vendor/grammars/oz-tmbundle"] path = vendor/grammars/oz-tmbundle url = https://github.com/eregon/oz-tmbundle -[submodule "vendor/grammars/ebundles"] - path = vendor/grammars/ebundles - url = https://github.com/ericzou/ebundles +[submodule "vendor/grammars/language-batchfile"] + path = vendor/grammars/language-batchfile + url = https://github.com/mmims/language-batchfile [submodule "vendor/grammars/sublime-mask"] path = vendor/grammars/sublime-mask url = https://github.com/tenbits/sublime-mask @@ -559,7 +559,7 @@ url = https://github.com/ShaneWilton/sublime-smali [submodule "vendor/grammars/language-jsoniq"] path = vendor/grammars/language-jsoniq - url = http://github.com/wcandillon/language-jsoniq + url = https://github.com/wcandillon/language-jsoniq [submodule "vendor/grammars/atom-fsharp"] path = vendor/grammars/atom-fsharp url = https://github.com/fsprojects/atom-fsharp @@ -602,9 +602,6 @@ [submodule "vendor/grammars/X10"] path = vendor/grammars/X10 url = https://github.com/x10-lang/x10-highlighting -[submodule "vendor/grammars/language-babel"] - path = vendor/grammars/language-babel - url = https://github.com/gandm/language-babel [submodule "vendor/grammars/UrWeb-Language-Definition"] path = vendor/grammars/UrWeb-Language-Definition url = https://github.com/gwalborn/UrWeb-Language-Definition.git @@ -669,8 +666,8 @@ path = vendor/grammars/pig-latin url = https://github.com/goblindegook/sublime-text-pig-latin [submodule "vendor/grammars/sourcepawn"] -path = vendor/grammars/sourcepawn -url = https://github.com/austinwagner/sublime-sourcepawn + path = vendor/grammars/sourcepawn + url = https://github.com/github-linguist/sublime-sourcepawn [submodule "vendor/grammars/gdscript"] path = vendor/grammars/gdscript url = https://github.com/beefsack/GDScript-sublime @@ -785,3 +782,15 @@ url = https://github.com/austinwagner/sublime-sourcepawn [submodule "vendor/grammars/xquery"] path = vendor/grammars/xquery url = https://github.com/textmate/xquery.tmbundle +[submodule "vendor/grammars/language-rpm-spec"] + path = vendor/grammars/language-rpm-spec + url = https://github.com/waveclaw/language-rpm-spec +[submodule "vendor/grammars/language-emacs-lisp"] + path = vendor/grammars/language-emacs-lisp + url = https://github.com/Alhadis/language-emacs-lisp +[submodule "vendor/grammars/language-babel"] + path = vendor/grammars/language-babel + url = https://github.com/github-linguist/language-babel +[submodule "vendor/CodeMirror"] + path = vendor/CodeMirror + url = https://github.com/codemirror/CodeMirror diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec00ae14..eb7532e0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,6 +33,7 @@ To add support for a new language: 0. Add your grammar to [`grammars.yml`][grammars] by running `script/convert-grammars --add vendor/grammars/MyGrammar`. 0. Download the license for the grammar: `script/licensed`. Be careful to only commit the file for the new grammar, as this script may update licenses for other grammars as well. 0. Add samples for your language to the [samples directory][samples] in the correct subdirectory. +0. Add a `language_id` for your language. See `script/set-language-ids` for more information. **You should only ever need to run `script/set-language-ids --update`. Anything other than this risks breaking GitHub search :cry:** 0. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage. In addition, if your new language defines an extension that's already listed in [`languages.yml`][languages] (such as `.foo`) then sometimes a few more steps will need to be taken: @@ -84,7 +85,7 @@ Linguist is maintained with :heart: by: - @arfon (GitHub Staff) - @larsbrinkhoff - @pchaigno - + As Linguist is a production dependency for GitHub we have a couple of workflow restrictions: - Anyone with commit rights can merge Pull Requests provided that there is a :+1: from a GitHub member of staff diff --git a/bin/git-linguist b/bin/git-linguist index 9e525bb5..d390530e 100755 --- a/bin/git-linguist +++ b/bin/git-linguist @@ -23,7 +23,7 @@ class GitLinguist if @incremental && stats = load_language_stats old_commit_oid, old_stats = stats - # A cache with NULL oid means that we want to froze + # A cache with NULL oid means that we want to freeze # these language stats in place and stop computing # them (for performance reasons) return old_stats if old_commit_oid == NULL_OID @@ -111,7 +111,7 @@ def git_linguist(args) parser.parse!(args) git_dir = `git rev-parse --git-dir`.strip - raise "git-linguist must be ran in a Git repository (#{Dir.pwd})" unless $?.success? + raise "git-linguist must be run in a Git repository (#{Dir.pwd})" unless $?.success? wrapper = GitLinguist.new(git_dir, commit, incremental) case args.pop diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 10a85f34..f9f6ccc6 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -26,6 +26,6 @@ Gem::Specification.new do |s| s.add_development_dependency 'yajl-ruby' s.add_development_dependency 'color-proximity', '~> 0.2.1' s.add_development_dependency 'licensed' - s.add_development_dependency 'licensee', '>= 8.3.0' + s.add_development_dependency 'licensee', '>= 8.6.0' end diff --git a/grammars.yml b/grammars.yml index 72c5b422..3a38ca96 100755 --- a/grammars.yml +++ b/grammars.yml @@ -8,9 +8,9 @@ vendor/grammars/Agda.tmbundle: - source.agda vendor/grammars/Alloy.tmbundle: - source.alloy -vendor/grammars/AutoHotkey/: +vendor/grammars/AutoHotkey: - source.ahk -vendor/grammars/BrightScript.tmbundle/: +vendor/grammars/BrightScript.tmbundle: - source.brightauthorproject - source.brightscript vendor/grammars/ColdFusion: @@ -20,11 +20,13 @@ vendor/grammars/ColdFusion: - text.html.cfm vendor/grammars/Docker.tmbundle: - source.dockerfile -vendor/grammars/Elm/: +vendor/grammars/Elm/Syntaxes: - source.elm +- text.html.mediawiki.elm-build-output +- text.html.mediawiki.elm-documentation vendor/grammars/FreeMarker.tmbundle: - text.html.ftl -vendor/grammars/G-Code/: +vendor/grammars/G-Code: - source.LS - source.MCPOST - source.MOD @@ -37,7 +39,7 @@ vendor/grammars/IDL-Syntax: vendor/grammars/Isabelle.tmbundle: - source.isabelle.root - source.isabelle.theory -vendor/grammars/JSyntax/: +vendor/grammars/JSyntax: - source.j vendor/grammars/Julia.tmbundle: - source.julia @@ -48,7 +50,7 @@ vendor/grammars/LiveScript.tmbundle: vendor/grammars/MagicPython: - source.python - source.regexp.python -vendor/grammars/Modelica/: +vendor/grammars/Modelica: - source.modelica vendor/grammars/NSIS: - source.nsis @@ -58,7 +60,7 @@ vendor/grammars/NimLime: - source.nimcfg vendor/grammars/PHP-Twig.tmbundle: - text.html.twig -vendor/grammars/PogoScript.tmbundle/: +vendor/grammars/PogoScript.tmbundle: - source.pogoscript vendor/grammars/RDoc.tmbundle: - text.rdoc @@ -73,10 +75,10 @@ vendor/grammars/Scalate.tmbundle: - text.html.ssp vendor/grammars/Slash.tmbundle: - text.html.slash -vendor/grammars/Stata.tmbundle/: +vendor/grammars/Stata.tmbundle: - source.mata - source.stata -vendor/grammars/Stylus/: +vendor/grammars/Stylus: - source.stylus vendor/grammars/Sublime-Coq: - source.coq @@ -86,7 +88,7 @@ vendor/grammars/Sublime-Lasso: - file.lasso vendor/grammars/Sublime-Loom: - source.loomscript -vendor/grammars/Sublime-Modula-2/: +vendor/grammars/Sublime-Modula-2: - source.modula2 vendor/grammars/Sublime-Nit: - source.nit @@ -101,26 +103,24 @@ vendor/grammars/Sublime-SQF-Language: vendor/grammars/Sublime-Text-2-OpenEdge-ABL: - source.abl - text.html.abl -vendor/grammars/Sublime-VimL: -- source.viml vendor/grammars/SublimeBrainfuck: - source.bf -vendor/grammars/SublimeClarion/: +vendor/grammars/SublimeClarion: - source.clarion -vendor/grammars/SublimeGDB/: +vendor/grammars/SublimeGDB: - source.disasm - source.gdb - source.gdb.session - source.gdbregs -vendor/grammars/SublimePapyrus/: +vendor/grammars/SublimePapyrus: - source.papyrus.skyrim -vendor/grammars/SublimePuppet/: +vendor/grammars/SublimePuppet: - source.puppet vendor/grammars/SublimeXtend: - source.xtend vendor/grammars/TLA: - source.tla -vendor/grammars/TXL/: +vendor/grammars/TXL: - source.txl vendor/grammars/Textmate-Gosu-Bundle: - source.gosu.2 @@ -149,20 +149,20 @@ vendor/grammars/antlr.tmbundle: vendor/grammars/apache.tmbundle: - source.apache-config - source.apache-config.mod_perl -vendor/grammars/api-blueprint-sublime-plugin/: +vendor/grammars/api-blueprint-sublime-plugin: - text.html.markdown.source.gfm.apib - text.html.markdown.source.gfm.mson vendor/grammars/applescript.tmbundle: - source.applescript -vendor/grammars/asciidoc.tmbundle/: +vendor/grammars/asciidoc.tmbundle: - text.html.asciidoc vendor/grammars/asp.tmbundle: - source.asp - text.html.asp -vendor/grammars/assembly/: +vendor/grammars/assembly: - objdump.x86asm - source.x86asm -vendor/grammars/atom-fsharp/: +vendor/grammars/atom-fsharp: - source.fsharp - source.fsharp.fsi - source.fsharp.fsl @@ -172,16 +172,16 @@ vendor/grammars/atom-language-1c-bsl: - source.sdbl vendor/grammars/atom-language-clean: - source.clean -vendor/grammars/atom-language-purescript/: +vendor/grammars/atom-language-purescript: - source.purescript vendor/grammars/atom-language-srt: - text.srt -vendor/grammars/atom-language-stan/: +vendor/grammars/atom-language-stan: - source.stan vendor/grammars/atom-salt: - source.python.salt - source.yaml.salt -vendor/grammars/atomic-dreams/: +vendor/grammars/atomic-dreams: - source.dm - source.dmf vendor/grammars/ats: @@ -192,7 +192,7 @@ vendor/grammars/bison.tmbundle: - source.bison vendor/grammars/blitzmax: - source.blitzmax -vendor/grammars/boo/: +vendor/grammars/boo: - source.boo vendor/grammars/bro-sublime: - source.bro @@ -217,7 +217,7 @@ vendor/grammars/cool-tmbundle: vendor/grammars/cpp-qt.tmbundle: - source.c++.qt - source.qmake -vendor/grammars/creole/: +vendor/grammars/creole: - text.html.creole vendor/grammars/css.tmbundle: - source.css @@ -241,9 +241,7 @@ vendor/grammars/dylan.tmbundle: - source.dylan - source.lid - source.makegen -vendor/grammars/ebundles/Bundles/MSDOS batch file.tmbundle: -- source.dosbatch -vendor/grammars/ec.tmbundle/: +vendor/grammars/ec.tmbundle: - source.c.ec vendor/grammars/eiffel.tmbundle: - source.eiffel @@ -268,9 +266,9 @@ vendor/grammars/forth: vendor/grammars/fortran.tmbundle: - source.fortran - source.fortran.modern -vendor/grammars/gap-tmbundle/: +vendor/grammars/gap-tmbundle: - source.gap -vendor/grammars/gdscript/: +vendor/grammars/gdscript: - source.gdscript vendor/grammars/gettext.tmbundle: - source.po @@ -298,7 +296,7 @@ vendor/grammars/idl.tmbundle: - source.idl - source.idl-dlm - text.idl-idldoc -vendor/grammars/idris/: +vendor/grammars/idris: - source.idris vendor/grammars/ini.tmbundle: - source.ini @@ -330,12 +328,14 @@ vendor/grammars/language-apl: - source.apl vendor/grammars/language-asn1: - source.asn -vendor/grammars/language-babel/: +vendor/grammars/language-babel: - source.js.jsx - source.regexp.babel -vendor/grammars/language-blade/: +vendor/grammars/language-batchfile: +- source.batchfile +vendor/grammars/language-blade: - text.html.php.blade -vendor/grammars/language-click/: +vendor/grammars/language-click: - source.click vendor/grammars/language-clojure: - source.clojure @@ -354,6 +354,8 @@ vendor/grammars/language-csound: - source.csound - source.csound-document - source.csound-score +vendor/grammars/language-emacs-lisp: +- source.emacs.lisp vendor/grammars/language-gfm: - source.gfm vendor/grammars/language-graphql: @@ -375,10 +377,10 @@ vendor/grammars/language-javascript: - source.js - source.js.regexp - source.js.regexp.replacement -vendor/grammars/language-jsoniq/: +vendor/grammars/language-jsoniq: - source.jq - source.xq -vendor/grammars/language-less/: +vendor/grammars/language-less: - source.css.less vendor/grammars/language-maxscript: - source.maxscript @@ -398,6 +400,9 @@ vendor/grammars/language-roff: - source.pic - text.roff - text.runoff +vendor/grammars/language-rpm-spec: +- source.changelogs.rpm-spec +- source.rpm-spec vendor/grammars/language-shellscript: - source.shell - text.shell-session @@ -407,6 +412,8 @@ vendor/grammars/language-toc-wow: - source.toc vendor/grammars/language-turing: - source.turing +vendor/grammars/language-viml: +- source.viml vendor/grammars/language-wavefront: - source.wavefront.mtl - source.wavefront.obj @@ -414,7 +421,7 @@ vendor/grammars/language-xbase: - source.harbour vendor/grammars/language-yaml: - source.yaml -vendor/grammars/language-yang/: +vendor/grammars/language-yang: - source.yang vendor/grammars/latex.tmbundle: - text.bibtex @@ -448,11 +455,11 @@ vendor/grammars/matlab.tmbundle: - source.octave vendor/grammars/maven.tmbundle: - text.xml.pom -vendor/grammars/mediawiki.tmbundle/: +vendor/grammars/mediawiki.tmbundle: - text.html.mediawiki vendor/grammars/mercury-tmlanguage: - source.mercury -vendor/grammars/monkey/: +vendor/grammars/monkey: - source.monkey vendor/grammars/moonscript-tmbundle: - source.moonscript @@ -486,9 +493,9 @@ vendor/grammars/parrot: - source.parrot.pir vendor/grammars/pascal.tmbundle: - source.pascal -vendor/grammars/pawn-sublime-language/: +vendor/grammars/pawn-sublime-language: - source.pawn -vendor/grammars/perl.tmbundle/: +vendor/grammars/perl.tmbundle: - source.perl - source.perl.6 vendor/grammars/perl6fe: @@ -499,7 +506,7 @@ vendor/grammars/php-smarty.tmbundle: - text.html.smarty vendor/grammars/php.tmbundle: - text.html.php -vendor/grammars/pig-latin/: +vendor/grammars/pig-latin: - source.pig_latin vendor/grammars/pike-textmate: - source.pike @@ -538,11 +545,11 @@ vendor/grammars/scilab.tmbundle: - source.scilab vendor/grammars/secondlife-lsl: - source.lsl -vendor/grammars/smali-sublime/smali.tmLanguage: +vendor/grammars/smali-sublime: - source.smali vendor/grammars/smalltalk-tmbundle: - source.smalltalk -vendor/grammars/sourcepawn/: +vendor/grammars/sourcepawn: - source.sp vendor/grammars/sql.tmbundle: - source.sql @@ -553,9 +560,9 @@ vendor/grammars/standard-ml.tmbundle: - source.ml vendor/grammars/sublime-MuPAD: - source.mupad -vendor/grammars/sublime-aspectj/: +vendor/grammars/sublime-aspectj: - source.aspectj -vendor/grammars/sublime-autoit/: +vendor/grammars/sublime-autoit: - source.autoit vendor/grammars/sublime-befunge: - source.befunge @@ -563,12 +570,12 @@ vendor/grammars/sublime-bsv: - source.bsv vendor/grammars/sublime-cirru: - source.cirru -vendor/grammars/sublime-clips/: +vendor/grammars/sublime-clips: - source.clips vendor/grammars/sublime-glsl: - source.essl - source.glsl -vendor/grammars/sublime-golo/: +vendor/grammars/sublime-golo: - source.golo vendor/grammars/sublime-mask: - source.mask @@ -577,29 +584,31 @@ vendor/grammars/sublime-netlinx: - source.netlinx.erb vendor/grammars/sublime-nginx: - source.nginx -vendor/grammars/sublime-opal/: +vendor/grammars/sublime-opal: - source.opal - source.opalsysdefs vendor/grammars/sublime-pony: - source.pony -vendor/grammars/sublime-rexx/: +vendor/grammars/sublime-rexx: - source.rexx vendor/grammars/sublime-robot-plugin: - text.robot vendor/grammars/sublime-rust: - source.rust -vendor/grammars/sublime-spintools/: +vendor/grammars/sublime-spintools: - source.regexp.spin - source.spin vendor/grammars/sublime-tea: - source.tea vendor/grammars/sublime-terra: - source.terra -vendor/grammars/sublime-text-ox/: +vendor/grammars/sublime-text-ox: - source.ox -vendor/grammars/sublime-typescript/: +vendor/grammars/sublime-typescript: - source.ts - source.tsx +- text.error-list +- text.find-refs vendor/grammars/sublime-varnish: - source.varnish.vcl vendor/grammars/sublime_cobol: @@ -607,9 +616,9 @@ vendor/grammars/sublime_cobol: - source.cobol - source.jcl - source.opencobol -vendor/grammars/sublimeassembly/: +vendor/grammars/sublimeassembly: - source.assembly -vendor/grammars/sublimeprolog/: +vendor/grammars/sublimeprolog: - source.prolog - source.prolog.eclipse vendor/grammars/sublimetext-cuda-cpp: @@ -632,7 +641,7 @@ vendor/grammars/vhdl: - source.vhdl vendor/grammars/vue-syntax-highlight: - text.html.vue -vendor/grammars/xc.tmbundle/: +vendor/grammars/xc.tmbundle: - source.xc vendor/grammars/xml.tmbundle: - text.xml diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 48b7e54f..7216003f 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -144,10 +144,22 @@ module Linguist end end - disambiguate ".for", ".f" do |data| + fortran_rx = /^([c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)/i + + disambiguate ".f" do |data| if /^: /.match(data) Language["Forth"] - elsif /^([c*][^abd-z]| (subroutine|program|end)\s|\s*!)/i.match(data) + elsif data.include?("flowop") + Language["Filebench WML"] + elsif fortran_rx.match(data) + Language["FORTRAN"] + end + end + + disambiguate ".for" do |data| + if /^: /.match(data) + Language["Forth"] + elsif fortran_rx.match(data) Language["FORTRAN"] end end @@ -190,6 +202,8 @@ module Linguist disambiguate ".inc" do |data| if /^<\?(?:php)?/.match(data) Language["PHP"] + elsif /^\s*#(declare|local|macro|while)\s/.match(data) + Language["POV-Ray SDL"] end end @@ -230,7 +244,7 @@ module Linguist Language["MUF"] elsif /^\s*;/.match(data) Language["M"] - elsif /^\s*\(\*/.match(data) + elsif /\*\)$/.match(data) Language["Mathematica"] elsif /^\s*%/.match(data) Language["Matlab"] @@ -240,7 +254,7 @@ module Linguist end disambiguate ".md" do |data| - if /^[-a-z0-9=#!\*\[|]/i.match(data) + if /(^[-a-z0-9=#!\*\[|])|<\//i.match(data) || data.empty? Language["Markdown"] elsif /^(;;|\(define_)/.match(data) Language["GCC machine description"] @@ -354,7 +368,7 @@ module Linguist disambiguate ".r" do |data| if /\bRebol\b/i.match(data) Language["Rebol"] - elsif data.include?("<-") + elsif /<-|^\s*#/.match(data) Language["R"] end end diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 9498e5a8..875ef956 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -20,10 +20,11 @@ module Linguist # # Languages are defined in `lib/linguist/languages.yml`. class Language - @languages = [] - @index = {} - @name_index = {} - @alias_index = {} + @languages = [] + @index = {} + @name_index = {} + @alias_index = {} + @language_id_index = {} @extension_index = Hash.new { |h,k| h[k] = [] } @interpreter_index = Hash.new { |h,k| h[k] = [] } @@ -84,6 +85,8 @@ module Linguist @filename_index[filename] << language end + @language_id_index[language.language_id] = language + language end @@ -193,6 +196,19 @@ module Linguist @interpreter_index[interpreter] end + # Public: Look up Languages by its language_id. + # + # language_id - Integer of language_id + # + # Examples + # + # Language.find_by_id(100) + # # => [#] + # + # Returns the matching Language + def self.find_by_id(language_id) + @language_id_index[language_id.to_i] + end # Public: Look up Language by its name. # @@ -251,6 +267,7 @@ module Linguist # Returns an Array of Languages. def self.ace_modes warn "This method will be deprecated in a future 5.x release. Every language now has an `ace_mode` set." + warn caller @ace_modes ||= all.select(&:ace_mode).sort_by { |lang| lang.name.downcase } end @@ -284,11 +301,16 @@ module Linguist end @ace_mode = attributes[:ace_mode] + @codemirror_mode = attributes[:codemirror_mode] + @codemirror_mime_type = attributes[:codemirror_mime_type] @wrap = attributes[:wrap] || false # Set legacy search term @search_term = attributes[:search_term] || default_alias_name + # Set the language_id + @language_id = attributes[:language_id] + # Set extensions or default to []. @extensions = attributes[:extensions] || [] @interpreters = attributes[:interpreters] || [] @@ -351,6 +373,17 @@ module Linguist # Returns the name String attr_reader :search_term + # Public: Get language_id (used in GitHub search) + # + # Examples + # + # # => "1" + # # => "2" + # # => "3" + # + # Returns the integer language_id + attr_reader :language_id + # Public: Get the name of a TextMate-compatible scope # # Returns the scope @@ -367,6 +400,31 @@ module Linguist # Returns a String name or nil attr_reader :ace_mode + # Public: Get CodeMirror mode + # + # Maps to a directory in the `mode/` source code. + # https://github.com/codemirror/CodeMirror/tree/master/mode + # + # Examples + # + # # => "nil" + # # => "javascript" + # # => "clike" + # + # Returns a String name or nil + attr_reader :codemirror_mode + + # Public: Get CodeMirror MIME type mode + # + # Examples + # + # # => "nil" + # # => "text/x-javascript" + # # => "text/x-csrc" + # + # Returns a String name or nil + attr_reader :codemirror_mime_type + # Public: Should language lines be wrapped # # Returns true or false @@ -543,10 +601,13 @@ module Linguist :aliases => options['aliases'], :tm_scope => options['tm_scope'], :ace_mode => options['ace_mode'], + :codemirror_mode => options['codemirror_mode'], + :codemirror_mime_type => options['codemirror_mime_type'], :wrap => options['wrap'], :group_name => options['group'], :searchable => options.fetch('searchable', true), :search_term => options['search_term'], + :language_id => options['language_id'], :extensions => Array(options['extensions']), :interpreters => options['interpreters'].sort, :filenames => options['filenames'], diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index ad13c8f9..f3823f2c 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -6,14 +6,19 @@ # 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 # 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) # interpreters - An Array of associated interpreters # searchable - Boolean flag to enable searching (defaults to true) -# search_term - Deprecated: Some languages maybe indexed under a +# search_term - Deprecated: Some languages may be indexed under a # different alias. Avoid defining new exceptions. +# 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. # tm_scope - The TextMate scope that represents this programming # language. This should match one of the scopes listed in @@ -23,83 +28,90 @@ # in the statistics as the parent language. # # Any additions or modifications (even trivial) should have corresponding -# test change in `test/test_blob.rb`. +# test changes in `test/test_blob.rb`. # -# Please keep this list alphabetized. Capitalization comes before lower case. +# Please keep this list alphabetized. Capitalization comes before lowercase. +--- 1C Enterprise: type: programming color: "#814CCC" extensions: - - .bsl - - .os + - ".bsl" + - ".os" tm_scope: source.bsl ace_mode: text - + language_id: 0 ABAP: type: programming color: "#E8274B" extensions: - - .abap + - ".abap" ace_mode: abap - + language_id: 1 AGS Script: type: programming color: "#B9D9FF" aliases: - ags extensions: - - .asc - - .ash + - ".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 + - ".ampl" + - ".mod" tm_scope: source.ampl ace_mode: text - + language_id: 3 ANTLR: type: programming color: "#9DC3FF" extensions: - - .g4 + - ".g4" ace_mode: text - + language_id: 4 API Blueprint: type: markup color: "#2ACCA8" ace_mode: markdown extensions: - - .apib + - ".apib" tm_scope: text.html.markdown.source.gfm.apib - + language_id: 5 APL: type: programming color: "#5A8164" extensions: - - .apl - - .dyalog + - ".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 color: "#aeead0" extensions: - - .asn - - .asn1 + - ".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" @@ -109,27 +121,29 @@ ASP: - aspx - aspx-vb extensions: - - .asp - - .asax - - .ascx - - .ashx - - .asmx - - .aspx - - .axd + - ".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 + - ".dats" + - ".hats" + - ".sats" tm_scope: source.ats ace_mode: ocaml - + language_id: 9 ActionScript: type: programming tm_scope: source.actionscript.3 @@ -140,35 +154,35 @@ ActionScript: - actionscript3 - as3 extensions: - - .as + - ".as" ace_mode: actionscript - + language_id: 10 Ada: type: programming color: "#02f88c" extensions: - - .adb - - .ada - - .ads + - ".adb" + - ".ada" + - ".ads" aliases: - ada95 - ada2005 ace_mode: ada - + language_id: 11 Agda: type: programming color: "#315665" extensions: - - .agda + - ".agda" ace_mode: text - + language_id: 12 Alloy: - type: programming # 'modeling' would be more appropiate + type: programming color: "#64C800" extensions: - - .als + - ".als" ace_mode: text - + language_id: 13 Alpine Abuild: type: programming group: Shell @@ -179,7 +193,9 @@ Alpine Abuild: - APKBUILD tm_scope: source.shell ace_mode: sh - + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 14 Ant Build System: type: data tm_scope: text.xml.ant @@ -187,80 +203,86 @@ Ant Build System: - ant.xml - build.xml ace_mode: xml - + codemirror_mode: xml + codemirror_mime_type: application/xml + language_id: 15 ApacheConf: type: markup aliases: - aconf - apache extensions: - - .apacheconf - - .vhost + - ".apacheconf" + - ".vhost" tm_scope: source.apache-config ace_mode: apache_conf - + language_id: 16 Apex: type: programming extensions: - - .cls + - ".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 color: "#0B3D91" group: Assembly extensions: - - .agc + - ".agc" tm_scope: source.agc ace_mode: assembly_x86 - + language_id: 18 AppleScript: type: programming aliases: - osascript extensions: - - .applescript - - .scpt + - ".applescript" + - ".scpt" interpreters: - osascript ace_mode: applescript color: "#101F1F" - + language_id: 19 Arc: type: programming color: "#aa2afe" extensions: - - .arc + - ".arc" tm_scope: none ace_mode: text - + language_id: 20 Arduino: type: programming color: "#bd79d1" extensions: - - .ino + - ".ino" tm_scope: source.c++ ace_mode: c_cpp - + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 21 AsciiDoc: type: prose ace_mode: asciidoc wrap: true extensions: - - .asciidoc - - .adoc - - .asc + - ".asciidoc" + - ".adoc" + - ".asc" tm_scope: text.html.asciidoc - + language_id: 22 AspectJ: type: programming color: "#a957b0" extensions: - - .aj + - ".aj" tm_scope: source.aspectj ace_mode: text - + language_id: 23 Assembly: type: programming color: "#6E4C13" @@ -268,31 +290,31 @@ Assembly: aliases: - nasm extensions: - - .asm - - .a51 - - .inc - - .nasm + - ".asm" + - ".a51" + - ".inc" + - ".nasm" tm_scope: source.assembly ace_mode: assembly_x86 - + language_id: 24 Augeas: type: programming extensions: - - .aug + - ".aug" tm_scope: none ace_mode: text - + language_id: 25 AutoHotkey: type: programming color: "#6594b9" aliases: - ahk extensions: - - .ahk - - .ahkl + - ".ahk" + - ".ahkl" tm_scope: source.ahk ace_mode: autohotkey - + language_id: 26 AutoIt: type: programming color: "#1C3552" @@ -301,25 +323,25 @@ AutoIt: - AutoIt3 - AutoItScript extensions: - - .au3 + - ".au3" tm_scope: source.autoit ace_mode: autohotkey - + language_id: 27 Awk: type: programming extensions: - - .awk - - .auk - - .gawk - - .mawk - - .nawk + - ".awk" + - ".auk" + - ".gawk" + - ".mawk" + - ".nawk" interpreters: - awk - gawk - mawk - nawk ace_mode: text - + language_id: 28 Batchfile: type: programming search_term: bat @@ -329,43 +351,43 @@ Batchfile: - dosbatch - winbatch extensions: - - .bat - - .cmd - tm_scope: source.dosbatch + - ".bat" + - ".cmd" + tm_scope: source.batchfile ace_mode: batchfile color: "#C1F12E" - + language_id: 29 Befunge: type: programming extensions: - - .befunge + - ".befunge" ace_mode: text - + language_id: 30 Bison: type: programming group: Yacc tm_scope: source.bison extensions: - - .bison + - ".bison" ace_mode: text color: "#6A463F" - + language_id: 31 BitBake: type: programming tm_scope: none extensions: - - .bb + - ".bb" ace_mode: text - + language_id: 32 Blade: type: markup group: HTML extensions: - - .blade - - .blade.php + - ".blade" + - ".blade.php" tm_scope: text.html.php.blade ace_mode: text - + language_id: 33 BlitzBasic: type: programming aliases: @@ -374,295 +396,321 @@ BlitzBasic: - blitzplus - bplus extensions: - - .bb - - .decls + - ".bb" + - ".decls" tm_scope: source.blitzmax ace_mode: text - + language_id: 34 BlitzMax: type: programming color: "#cd6400" extensions: - - .bmx + - ".bmx" aliases: - bmax ace_mode: text - + language_id: 35 Bluespec: type: programming extensions: - - .bsv + - ".bsv" tm_scope: source.bsv ace_mode: verilog - + language_id: 36 Boo: type: programming color: "#d4bec1" extensions: - - .boo + - ".boo" ace_mode: text tm_scope: source.boo - + language_id: 37 Brainfuck: type: programming color: "#2F2530" extensions: - - .b - - .bf + - ".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 + - ".brs" tm_scope: source.brightscript ace_mode: text - + language_id: 39 Bro: type: programming extensions: - - .bro + - ".bro" ace_mode: text - + language_id: 40 C: type: programming color: "#555555" extensions: - - .c - - .cats - - .h - - .idc - - .w + - ".c" + - ".cats" + - ".h" + - ".idc" + - ".w" 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 search_term: csharp color: "#178600" aliases: - csharp extensions: - - .cs - - .cake - - .cshtml - - .csx - + - ".cs" + - ".cake" + - ".cshtml" + - ".csx" + language_id: 42 C++: type: programming ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src search_term: cpp color: "#f34b7d" aliases: - cpp extensions: - - .cpp - - .c++ - - .cc - - .cp - - .cxx - - .h - - .h++ - - .hh - - .hpp - - .hxx - - .inc - - .inl - - .ipp - - .tcc - - .tpp - + - ".cpp" + - ".c++" + - ".cc" + - ".cp" + - ".cxx" + - ".h" + - ".h++" + - ".hh" + - ".hpp" + - ".hxx" + - ".inc" + - ".inl" + - ".ipp" + - ".tcc" + - ".tpp" + language_id: 43 C-ObjDump: type: data extensions: - - .c-objdump + - ".c-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - + language_id: 44 C2hs Haskell: type: programming group: Haskell aliases: - c2hs extensions: - - .chs + - ".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 + - ".clp" tm_scope: source.clips ace_mode: text - + language_id: 46 CMake: type: programming extensions: - - .cmake - - .cmake.in + - ".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 + - ".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 + - ".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 - + - ".cson" + language_id: 422 CSS: type: markup tm_scope: source.css ace_mode: css + codemirror_mode: css + codemirror_mime_type: text/css color: "#563d7c" extensions: - - .css - + - ".css" + language_id: 50 CSV: type: data ace_mode: text tm_scope: none extensions: - - .csv - + - ".csv" + language_id: 51 Cap'n Proto: type: programming tm_scope: source.capnp extensions: - - .capnp + - ".capnp" ace_mode: text - + language_id: 52 CartoCSS: type: programming aliases: - Carto extensions: - - .mss + - ".mss" ace_mode: text tm_scope: source.css.mss - + language_id: 53 Ceylon: type: programming extensions: - - .ceylon + - ".ceylon" ace_mode: text - + language_id: 54 Chapel: type: programming color: "#8dc63f" aliases: - chpl extensions: - - .chpl + - ".chpl" ace_mode: text - + language_id: 55 Charity: type: programming extensions: - - .ch + - ".ch" tm_scope: none ace_mode: text - + language_id: 56 ChucK: type: programming extensions: - - .ck + - ".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 - + - ".cirru" + language_id: 58 Clarion: type: programming color: "#db901e" ace_mode: text extensions: - - .clw + - ".clw" tm_scope: source.clarion - + language_id: 59 Clean: type: programming color: "#3F85AF" extensions: - - .icl - - .dcl + - ".icl" + - ".dcl" tm_scope: source.clean ace_mode: text - + language_id: 60 Click: type: programming color: "#E4E6F3" extensions: - - .click + - ".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 + - ".clj" + - ".boot" + - ".cl2" + - ".cljc" + - ".cljs" + - ".cljs.hl" + - ".cljscm" + - ".cljx" + - ".hic" filenames: - riemann.config - + language_id: 62 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 + - ".coffee" + - "._coffee" + - ".cake" + - ".cjsx" + - ".iced" filenames: - Cakefile interpreters: - coffee - + language_id: 63 ColdFusion: type: programming group: ColdFusion @@ -674,10 +722,10 @@ ColdFusion: - cfml - coldfusion html extensions: - - .cfm - - .cfml + - ".cfm" + - ".cfml" tm_scope: text.html.cfm - + language_id: 64 ColdFusion CFC: type: programming group: ColdFusion @@ -687,9 +735,9 @@ ColdFusion CFC: aliases: - cfc extensions: - - .cfc + - ".cfc" tm_scope: source.cfscript - + language_id: 65 Common Lisp: type: programming tm_scope: source.lisp @@ -697,14 +745,14 @@ Common Lisp: aliases: - lisp extensions: - - .lisp - - .asd - - .cl - - .l - - .lsp - - .ny - - .podsl - - .sexp + - ".lisp" + - ".asd" + - ".cl" + - ".l" + - ".lsp" + - ".ny" + - ".podsl" + - ".sexp" interpreters: - lisp - sbcl @@ -712,371 +760,420 @@ Common Lisp: - clisp - ecl ace_mode: lisp - + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 66 Component Pascal: type: programming color: "#B0CE4E" extensions: - - .cp - - .cps + - ".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 + - ".cl" tm_scope: source.cool ace_mode: text - + language_id: 68 Coq: type: programming extensions: - - .coq - - .v + - ".coq" + - ".v" ace_mode: text - + language_id: 69 Cpp-ObjDump: type: data extensions: - - .cppobjdump - - .c++-objdump - - .c++objdump - - .cpp-objdump - - .cxx-objdump + - ".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 + - ".creole" tm_scope: text.html.creole ace_mode: text - + language_id: 71 Crystal: type: programming color: "#776791" extensions: - - .cr + - ".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 + - ".orc" + - ".udo" tm_scope: source.csound ace_mode: text - + language_id: 73 Csound Document: type: programming aliases: - csound-csd extensions: - - .csd + - ".csd" tm_scope: source.csound-document ace_mode: text - + language_id: 74 Csound Score: type: programming aliases: - csound-sco extensions: - - .sco + - ".sco" tm_scope: source.csound-score ace_mode: text - + language_id: 75 Cucumber: type: programming extensions: - - .feature + - ".feature" tm_scope: text.gherkin.feature aliases: - gherkin ace_mode: text color: "#5B2063" - + language_id: 76 Cuda: type: programming extensions: - - .cu - - .cuh + - ".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 + - ".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 + - ".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 + - ".d" + - ".di" ace_mode: d - + codemirror_mode: d + codemirror_mime_type: text/x-d + language_id: 80 D-ObjDump: type: data extensions: - - .d-objdump + - ".d-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - + language_id: 81 DIGITAL Command Language: type: programming aliases: - dcl extensions: - - .com + - ".com" tm_scope: none ace_mode: text - + language_id: 82 DM: type: programming color: "#447265" extensions: - - .dm + - ".dm" aliases: - byond tm_scope: source.dm ace_mode: c_cpp - + language_id: 83 DNS Zone: type: data extensions: - - .zone - - .arpa + - ".zone" + - ".arpa" tm_scope: text.zone_file ace_mode: text - + language_id: 84 DTrace: type: programming aliases: - dtrace-script extensions: - - .d + - ".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 search_term: dpatch aliases: - dpatch extensions: - - .darcspatch - - .dpatch + - ".darcspatch" + - ".dpatch" tm_scope: none ace_mode: text - + language_id: 86 Dart: type: programming color: "#00B4AB" extensions: - - .dart + - ".dart" interpreters: - dart ace_mode: dart - + codemirror_mode: dart + codemirror_mime_type: application/dart + language_id: 87 Diff: type: data extensions: - - .diff - - .patch + - ".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: data tm_scope: source.dockerfile extensions: - - .dockerfile + - ".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 + - ".djs" tm_scope: none ace_mode: text - + language_id: 90 Dylan: type: programming color: "#6c616e" extensions: - - .dylan - - .dyl - - .intr - - .lid + - ".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 + - ".E" interpreters: - rune tm_scope: none ace_mode: text - + language_id: 92 ECL: type: programming color: "#8a1267" extensions: - - .ecl - - .eclxml + - ".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 + - ".ecl" tm_scope: source.prolog.eclipse ace_mode: prolog - + language_id: 94 EJS: type: markup color: "#a91e50" group: HTML extensions: - - .ejs + - ".ejs" tm_scope: text.html.js ace_mode: ejs - + language_id: 95 EQ: type: programming color: "#a78649" extensions: - - .eq + - ".eq" tm_scope: source.cs ace_mode: csharp - + codemirror_mode: clike + codemirror_mime_type: text/x-csharp + language_id: 96 Eagle: type: markup color: "#814C05" extensions: - - .sch - - .brd + - ".sch" + - ".brd" tm_scope: text.xml ace_mode: xml - + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 97 Ecere Projects: type: data group: JavaScript extensions: - - .epj + - ".epj" tm_scope: source.json ace_mode: json - + codemirror_mode: javascript + codemirror_mime_type: application/json + language_id: 98 Eiffel: type: programming color: "#946d57" extensions: - - .e + - ".e" ace_mode: eiffel - + codemirror_mode: eiffel + codemirror_mime_type: text/x-eiffel + language_id: 99 Elixir: type: programming color: "#6e4a7e" extensions: - - .ex - - .exs + - ".ex" + - ".exs" ace_mode: elixir filenames: - mix.lock interpreters: - elixir - + language_id: 100 Elm: type: programming color: "#60B5CC" extensions: - - .elm + - ".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.lisp + tm_scope: source.emacs.lisp color: "#c065db" aliases: - elisp - emacs filenames: - - .emacs - - .emacs.desktop + - ".abbrev_defs" + - ".emacs" + - ".emacs.desktop" + - ".gnus" + - ".spacemacs" + - ".viper" + - "Project.ede" + - "_emacs" + - "abbrev_defs" extensions: - - .el - - .emacs - - .emacs.desktop + - ".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 + - ".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 + - ".erl" + - ".app.src" + - ".es" + - ".escript" + - ".hrl" + - ".xrl" + - ".yrl" filenames: - 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" @@ -1084,225 +1181,250 @@ F#: aliases: - fsharp extensions: - - .fs - - .fsi - - .fsx + - ".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 + - ".fx" + - ".flux" tm_scope: none ace_mode: text - + language_id: 106 FORTRAN: type: programming color: "#4d41b1" extensions: - - .f90 - - .f - - .f03 - - .f08 - - .f77 - - .f95 - - .for - - .fpp + - ".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 Factor: type: programming color: "#636746" extensions: - - .factor + - ".factor" filenames: - - .factor-boot-rc - - .factor-rc + - ".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 + - ".fy" + - ".fancypack" filenames: - Fakefile ace_mode: text - + language_id: 109 Fantom: type: programming color: "#dbded5" extensions: - - .fan + - ".fan" tm_scope: none 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 + - ".fs" tm_scope: none ace_mode: text - + language_id: 112 Formatted: type: data extensions: - - .for - - .eam.fs + - ".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 + - ".fth" + - ".4th" + - ".f" + - ".for" + - ".forth" + - ".fr" + - ".frt" + - ".fs" ace_mode: forth - + codemirror_mode: forth + codemirror_mime_type: text/x-forth + language_id: 114 FreeMarker: type: programming color: "#0050b2" aliases: - ftl extensions: - - .ftl + - ".ftl" tm_scope: text.html.ftl ace_mode: ftl - + language_id: 115 Frege: type: programming color: "#00cafe" extensions: - - .fr + - ".fr" tm_scope: source.haskell ace_mode: haskell - + language_id: 116 G-code: type: data extensions: - - .g - - .gco - - .gcode + - ".g" + - ".gco" + - ".gcode" tm_scope: source.gcode ace_mode: gcode - + language_id: 117 GAMS: type: programming extensions: - - .gms + - ".gms" tm_scope: none ace_mode: text - + language_id: 118 GAP: type: programming extensions: - - .g - - .gap - - .gd - - .gi - - .tst + - ".g" + - ".gap" + - ".gd" + - ".gi" + - ".tst" tm_scope: source.gap ace_mode: text - + language_id: 119 GAS: type: programming group: Assembly extensions: - - .s - - .ms + - ".s" + - ".ms" tm_scope: source.assembly ace_mode: assembly_x86 - + language_id: 120 GCC Machine Description: type: programming extensions: - - .md + - ".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 + - ".gdb" + - ".gdbinit" tm_scope: source.gdb ace_mode: text - + language_id: 122 GDScript: type: programming extensions: - - .gd + - ".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 - - .vert - - .vrx - - .vsh - - .vshader + - ".glsl" + - ".fp" + - ".frag" + - ".frg" + - ".fs" + - ".fsh" + - ".fshader" + - ".geo" + - ".geom" + - ".glslv" + - ".gshader" + - ".shader" + - ".vert" + - ".vrx" + - ".vsh" + - ".vshader" ace_mode: glsl - + language_id: 124 Game Maker Language: type: programming color: "#8fb200" extensions: - - .gml + - ".gml" tm_scope: source.c++ ace_mode: c_cpp - + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 125 Genshi: type: programming extensions: - - .kid + - ".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 + - ".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 + - ".eclass" tm_scope: source.shell ace_mode: sh - + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 128 Gettext Catalog: type: prose search_term: pot @@ -1310,134 +1432,140 @@ Gettext Catalog: aliases: - pot extensions: - - .po - - .pot + - ".po" + - ".pot" tm_scope: source.po ace_mode: text - + language_id: 129 Glyph: type: programming color: "#e4cc98" extensions: - - .glf + - ".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 + - ".gp" + - ".gnu" + - ".gnuplot" + - ".plot" + - ".plt" interpreters: - gnuplot ace_mode: text - + language_id: 131 Go: type: programming color: "#375eab" extensions: - - .go + - ".go" ace_mode: golang - + codemirror_mode: go + codemirror_mime_type: text/x-go + language_id: 132 Golo: type: programming color: "#88562A" extensions: - - .golo + - ".golo" tm_scope: source.golo ace_mode: text - + language_id: 133 Gosu: type: programming color: "#82937f" extensions: - - .gs - - .gst - - .gsx - - .vark + - ".gs" + - ".gst" + - ".gsx" + - ".vark" tm_scope: source.gosu.2 ace_mode: text - + language_id: 134 Grace: type: programming extensions: - - .grace + - ".grace" tm_scope: source.grace ace_mode: text - + language_id: 135 Gradle: type: data extensions: - - .gradle + - ".gradle" tm_scope: source.groovy.gradle ace_mode: text - + language_id: 136 Grammatical Framework: type: programming aliases: - gf wrap: false extensions: - - .gf + - ".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 + - ".gml" tm_scope: none ace_mode: text - + language_id: 138 GraphQL: type: data extensions: - - .graphql + - ".graphql" tm_scope: source.graphql ace_mode: text - + language_id: 139 Graphviz (DOT): type: data tm_scope: source.dot extensions: - - .dot - - .gv + - ".dot" + - ".gv" ace_mode: text - + language_id: 140 Groff: 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 - - .rno - - .roff - - .tmac + - ".man" + - ".1" + - ".1in" + - ".1m" + - ".1x" + - ".2" + - ".3" + - ".3in" + - ".3m" + - ".3qt" + - ".3x" + - ".4" + - ".5" + - ".6" + - ".7" + - ".8" + - ".9" + - ".l" + - ".me" + - ".ms" + - ".n" + - ".rno" + - ".roff" + - ".tmac" filenames: - mmn - mmt @@ -1446,21 +1574,25 @@ Groff: - nroff - troff ace_mode: text - + codemirror_mode: troff + codemirror_mime_type: text/troff + language_id: 141 Groovy: type: programming ace_mode: groovy + codemirror_mode: groovy + codemirror_mime_type: text/x-groovy color: "#e69f56" extensions: - - .groovy - - .grt - - .gtpl - - .gvy + - ".groovy" + - ".grt" + - ".gtpl" + - ".gvy" interpreters: - groovy filenames: - Jenkinsfile - + language_id: 142 Groovy Server Pages: type: programming group: Groovy @@ -1468,58 +1600,66 @@ Groovy Server Pages: - gsp - java server page extensions: - - .gsp + - ".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 + - ".hcl" + - ".tf" ace_mode: ruby + codemirror_mode: ruby + codemirror_mime_type: text/x-ruby tm_scope: source.ruby - + language_id: 144 HLSL: type: programming extensions: - - .hlsl - - .fx - - .fxh - - .hlsli + - ".hlsl" + - ".fx" + - ".fxh" + - ".hlsli" ace_mode: text tm_scope: none - + language_id: 145 HTML: type: markup tm_scope: text.html.basic ace_mode: html + codemirror_mode: htmlmixed + codemirror_mime_type: text/html color: "#e44b23" aliases: - xhtml extensions: - - .html - - .htm - - .html.hl - - .inc - - .st - - .xht - - .xhtml - + - ".html" + - ".htm" + - ".html.hl" + - ".inc" + - ".st" + - ".xht" + - ".xhtml" + language_id: 146 HTML+Django: type: markup tm_scope: text.html.django group: HTML extensions: - - .mustache - - .jinja + - ".mustache" + - ".jinja" aliases: - django - html+django/jinja - html+jinja - htmldjango ace_mode: django - + codemirror_mode: django + codemirror_mime_type: text/x-django + language_id: 147 HTML+ECR: type: markup tm_scope: text.html.ecr @@ -1527,9 +1667,11 @@ HTML+ECR: aliases: - ecr extensions: - - .ecr + - ".ecr" ace_mode: text - + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + language_id: 148 HTML+EEX: type: markup tm_scope: text.html.elixir @@ -1537,9 +1679,11 @@ HTML+EEX: aliases: - eex extensions: - - .eex + - ".eex" ace_mode: text - + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + language_id: 149 HTML+ERB: type: markup tm_scope: text.html.erb @@ -1547,43 +1691,53 @@ HTML+ERB: aliases: - erb extensions: - - .erb - - .erb.deface + - ".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 + - ".phtml" ace_mode: php - + codemirror_mode: php + codemirror_mime_type: application/x-httpd-php + language_id: 151 HTTP: type: data extensions: - - .http + - ".http" tm_scope: source.httpspec ace_mode: text - + codemirror_mode: http + codemirror_mime_type: message/http + language_id: 152 Hack: type: programming ace_mode: php + codemirror_mode: php + codemirror_mime_type: application/x-httpd-php extensions: - - .hh - - .php + - ".hh" + - ".php" tm_scope: text.html.php color: "#878787" - + language_id: 153 Haml: group: HTML type: markup extensions: - - .haml - - .haml.deface + - ".haml" + - ".haml.deface" ace_mode: haml + codemirror_mode: haml + codemirror_mime_type: text/x-haml color: "#ECE2A9" - + language_id: 154 Handlebars: type: markup color: "#01a9d6" @@ -1592,86 +1746,94 @@ Handlebars: - hbs - htmlbars extensions: - - .handlebars - - .hbs + - ".handlebars" + - ".hbs" tm_scope: text.html.handlebars ace_mode: handlebars - + language_id: 155 Harbour: type: programming color: "#0e60e3" extensions: - - .hb + - ".hb" tm_scope: source.harbour ace_mode: text - + language_id: 156 Haskell: type: programming color: "#29b544" extensions: - - .hs - - .hsc + - ".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 + - ".hx" + - ".hxsl" tm_scope: source.haxe.2 - + language_id: 158 Hy: type: programming ace_mode: text color: "#7790B2" extensions: - - .hy + - ".hy" aliases: - hylang tm_scope: source.hy - + language_id: 159 HyPhy: type: programming ace_mode: text extensions: - - .bf + - ".bf" tm_scope: none - + language_id: 160 IDL: type: programming color: "#a3522f" extensions: - - .pro - - .dlm + - ".pro" + - ".dlm" ace_mode: text - + codemirror_mode: idl + codemirror_mime_type: text/x-idl + language_id: 161 IGOR Pro: type: programming extensions: - - .ipf + - ".ipf" aliases: - igor - igorpro tm_scope: none ace_mode: text - + language_id: 162 INI: type: data extensions: - - .ini - - .cfg - - .prefs - - .pro - - .properties + - ".ini" + - ".cfg" + - ".prefs" + - ".pro" + - ".properties" 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 search_term: irc @@ -1679,64 +1841,64 @@ IRC log: - irc - irc logs extensions: - - .irclog - - .weechatlog + - ".irclog" + - ".weechatlog" tm_scope: none ace_mode: text - + language_id: 164 Idris: type: programming extensions: - - .idr - - .lidr + - ".idr" + - ".lidr" ace_mode: text tm_scope: source.idris - + language_id: 165 Inform 7: type: programming wrap: true extensions: - - .ni - - .i7x + - ".ni" + - ".i7x" tm_scope: source.inform7 aliases: - i7 - inform7 ace_mode: text - + language_id: 166 Inno Setup: type: programming extensions: - - .iss + - ".iss" tm_scope: none ace_mode: text - + language_id: 167 Io: type: programming color: "#a9188d" extensions: - - .io + - ".io" interpreters: - io ace_mode: io - + language_id: 168 Ioke: type: programming color: "#078193" extensions: - - .ik + - ".ik" interpreters: - ioke ace_mode: text - + language_id: 169 Isabelle: type: programming color: "#FEFE00" extensions: - - .thy + - ".thy" tm_scope: source.isabelle.theory ace_mode: text - + language_id: 170 Isabelle ROOT: type: programming group: Isabelle @@ -1744,98 +1906,110 @@ Isabelle ROOT: - ROOT tm_scope: source.isabelle.root ace_mode: text - + language_id: 171 J: type: programming color: "#9EEDFF" extensions: - - .ijs + - ".ijs" interpreters: - jconsole tm_scope: source.j ace_mode: text - + language_id: 172 JFlex: type: programming color: "#DBCA00" group: Lex extensions: - - .flex - - .jflex + - ".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 - - .geojson - - .JSON-tmLanguage - - .topojson + - ".json" + - ".geojson" + - ".JSON-tmLanguage" + - ".topojson" filenames: - - .arcconfig - - .jshintrc + - ".arcconfig" + - ".jshintrc" - composer.lock - mcmod.info - + language_id: 174 JSON5: type: data extensions: - - .json5 + - ".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 + - ".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 + - ".jq" tm_scope: source.jq - + language_id: 177 JSX: type: programming group: JavaScript extensions: - - .jsx + - ".jsx" tm_scope: source.js.jsx ace_mode: javascript - + codemirror_mode: jsx + codemirror_mime_type: text/jsx + language_id: 178 Jade: group: HTML type: markup extensions: - - .jade - - .pug + - ".jade" + - ".pug" tm_scope: text.jade ace_mode: jade - + codemirror_mode: pug + codemirror_mime_type: text/x-pug + language_id: 179 Jasmin: type: programming ace_mode: java extensions: - - .j + - ".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 - + - ".java" + language_id: 181 Java Server Pages: type: programming group: Java @@ -1843,260 +2017,279 @@ Java Server Pages: aliases: - jsp extensions: - - .jsp + - ".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 - - .njs - - .pac - - .sjs - - .ssjs - - .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 - - .xsjs - - .xsjslib + - ".js" + - "._js" + - ".bones" + - ".es" + - ".es6" + - ".frag" + - ".gs" + - ".jake" + - ".jsb" + - ".jscad" + - ".jsfl" + - ".jsm" + - ".jss" + - ".njs" + - ".pac" + - ".sjs" + - ".ssjs" + - ".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" + - ".xsjs" + - ".xsjslib" filenames: - Jakefile interpreters: - node - + language_id: 183 Julia: type: programming extensions: - - .jl + - ".jl" 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 + - ".ipynb" filenames: - Notebook aliases: - IPython Notebook - + language_id: 185 KRL: type: programming color: "#28431f" extensions: - - .krl + - ".krl" tm_scope: none ace_mode: text - + language_id: 186 KiCad: type: programming extensions: - - .sch - - .brd - - .kicad_pcb + - ".sch" + - ".brd" + - ".kicad_pcb" tm_scope: none ace_mode: text - + language_id: 187 Kit: type: markup ace_mode: html + codemirror_mode: htmlmixed + codemirror_mime_type: text/html extensions: - - .kit + - ".kit" tm_scope: text.html.basic - + language_id: 188 Kotlin: type: programming color: "#F18E33" extensions: - - .kt - - .ktm - - .kts + - ".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 extensions: - - .lfe + - ".lfe" color: "#004200" group: Erlang 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 + - ".ll" ace_mode: text color: "#185619" - + language_id: 191 LOLCODE: type: programming extensions: - - .lol + - ".lol" color: "#cc9900" tm_scope: none ace_mode: text - + language_id: 192 LSL: type: programming ace_mode: lsl extensions: - - .lsl - - .lslp + - ".lsl" + - ".lslp" interpreters: - lsl - color: '#3d9970' - + color: "#3d9970" + language_id: 193 LabVIEW: type: programming extensions: - - .lvproj + - ".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 + - ".lasso" + - ".las" + - ".lasso8" + - ".lasso9" + - ".ldml" tm_scope: file.lasso aliases: - lassoscript ace_mode: text - + language_id: 195 Latte: type: markup color: "#A8FF97" group: HTML extensions: - - .latte + - ".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 + - ".lean" + - ".hlean" ace_mode: text - + language_id: 197 Less: type: markup group: CSS extensions: - - .less + - ".less" tm_scope: source.css.less ace_mode: less + codemirror_mode: css + codemirror_mime_type: text/css color: "#A1D9A1" - + language_id: 198 Lex: type: programming color: "#DBCA00" aliases: - flex extensions: - - .l - - .lex + - ".l" + - ".lex" tm_scope: none ace_mode: text - + language_id: 199 LilyPond: type: programming extensions: - - .ly - - .ily + - ".ly" + - ".ily" ace_mode: text - + language_id: 200 Limbo: type: programming extensions: - - .b - - .m + - ".b" + - ".m" tm_scope: none ace_mode: text - + language_id: 201 Linker Script: type: data extensions: - - .ld - - .lds + - ".ld" + - ".lds" filenames: - ld.script tm_scope: none ace_mode: text - + language_id: 202 Linux Kernel Module: type: data extensions: - - .mod + - ".mod" tm_scope: none ace_mode: text - + language_id: 203 Liquid: type: markup extensions: - - .liquid + - ".liquid" tm_scope: text.html.liquid ace_mode: liquid - + language_id: 204 Literate Agda: type: programming group: Agda extensions: - - .lagda + - ".lagda" tm_scope: none ace_mode: text - + language_id: 205 Literate CoffeeScript: type: programming tm_scope: source.litcoffee group: CoffeeScript - ace_mode: markdown + ace_mode: text wrap: true search_term: litcoffee aliases: - litcoffee extensions: - - .litcoffee - ace_mode: text - + - ".litcoffee" + language_id: 206 Literate Haskell: type: programming group: Haskell @@ -2105,10 +2298,12 @@ Literate Haskell: - lhaskell - lhs extensions: - - .lhs + - ".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" @@ -2116,112 +2311,124 @@ LiveScript: - live-script - ls extensions: - - .ls - - ._ls + - ".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 + - ".xm" + - ".x" + - ".xi" ace_mode: text tm_scope: source.logos - + language_id: 209 Logtalk: type: programming extensions: - - .lgt - - .logtalk + - ".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 + - ".lookml" tm_scope: source.yaml - + language_id: 211 LoomScript: type: programming extensions: - - .ls + - ".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 - - .pd_lua - - .rbxs - - .wlua + - ".lua" + - ".fcgi" + - ".nse" + - ".pd_lua" + - ".rbxs" + - ".wlua" interpreters: - lua - + language_id: 213 M: type: programming aliases: - mumps extensions: - - .mumps - - .m - tm_scope: source.lisp - ace_mode: lisp - + - ".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 + - ".m4" tm_scope: none ace_mode: text - + language_id: 215 M4Sugar: type: programming group: M4 aliases: - autoconf extensions: - - .m4 + - ".m4" filenames: - configure.ac tm_scope: none ace_mode: text - + language_id: 216 MAXScript: type: programming color: "#00a6a6" extensions: - - .ms - - .mcr + - ".ms" + - ".mcr" tm_scope: source.maxscript ace_mode: text - + language_id: 217 MTML: type: markup color: "#b7e1f4" extensions: - - .mtml + - ".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 + - ".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" @@ -2230,10 +2437,10 @@ Makefile: - make - mf extensions: - - .mak - - .d - - .mk - - .mkfile + - ".mak" + - ".d" + - ".mk" + - ".mkfile" filenames: - BSDmakefile - GNUmakefile @@ -2249,69 +2456,79 @@ Makefile: interpreters: - make ace_mode: makefile - + codemirror_mode: cmake + codemirror_mime_type: text/x-cmake + language_id: 220 Mako: type: programming extensions: - - .mako - - .mao + - ".mako" + - ".mao" tm_scope: text.html.mako ace_mode: text - + language_id: 221 Markdown: type: prose ace_mode: markdown + codemirror_mode: gfm + codemirror_mime_type: text/x-gfm wrap: true extensions: - - .md - - .markdown - - .mkd - - .mkdn - - .mkdown - - .ron + - ".md" + - ".markdown" + - ".mkd" + - ".mkdn" + - ".mkdown" + - ".ron" tm_scope: source.gfm - + language_id: 222 Mask: type: markup color: "#f97732" ace_mode: mask extensions: - - .mask + - ".mask" tm_scope: source.mask - + language_id: 223 Mathematica: type: programming extensions: - - .mathematica - - .cdf - - .m - - .ma - - .mt - - .nb - - .nbp - - .wl - - .wlt + - ".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: "#bb92ac" aliases: - octave extensions: - - .matlab - - .m + - ".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" @@ -2320,23 +2537,25 @@ Max: - maxmsp search_term: max/msp extensions: - - .maxpat - - .maxhelp - - .maxproj - - .mxt - - .pat + - ".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 + - ".mediawiki" + - ".wiki" tm_scope: text.html.mediawiki ace_mode: text - + language_id: 228 Mercury: type: programming color: "#ff2b2b" @@ -2344,258 +2563,277 @@ Mercury: interpreters: - mmi extensions: - - .m - - .moo + - ".m" + - ".moo" tm_scope: source.mercury - ace_mode: prolog - + language_id: 229 Metal: type: programming color: "#8f14e9" extensions: - - .metal + - ".metal" tm_scope: source.c++ ace_mode: c_cpp - -MiniD: # Legacy + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 230 +MiniD: type: programming searchable: false extensions: - - .minid # Dummy extension + - ".minid" tm_scope: none ace_mode: text - + language_id: 231 Mirah: type: programming search_term: mirah color: "#c7a938" extensions: - - .druby - - .duby - - .mir - - .mirah + - ".druby" + - ".duby" + - ".mir" + - ".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 + - ".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 + - ".mod" tm_scope: source.modula2 ace_mode: text - + language_id: 234 Module Management System: type: programming extensions: - - .mms - - .mmk + - ".mms" + - ".mmk" filenames: - descrip.mmk - descrip.mms tm_scope: none ace_mode: text - + language_id: 235 Monkey: type: programming extensions: - - .monkey + - ".monkey" ace_mode: text tm_scope: source.monkey - + language_id: 236 Moocode: type: programming extensions: - - .moo + - ".moo" tm_scope: none ace_mode: text - + language_id: 237 MoonScript: type: programming extensions: - - .moon + - ".moon" interpreters: - moon ace_mode: text - + language_id: 238 Myghty: type: programming extensions: - - .myt + - ".myt" tm_scope: none ace_mode: text - + language_id: 239 NCL: type: programming color: "#28431f" extensions: - - .ncl + - ".ncl" tm_scope: source.ncl ace_mode: text - + language_id: 240 NL: type: data extensions: - - .nl + - ".nl" tm_scope: none ace_mode: text - + language_id: 241 NSIS: type: programming extensions: - - .nsi - - .nsh + - ".nsi" + - ".nsh" ace_mode: text - + codemirror_mode: nsis + codemirror_mime_type: text/x-nsis + language_id: 242 Nemerle: type: programming color: "#3d3c6e" extensions: - - .n + - ".n" ace_mode: text - + language_id: 243 NetLinx: type: programming color: "#0aa0ff" extensions: - - .axs - - .axi + - ".axs" + - ".axi" tm_scope: source.netlinx ace_mode: text - + language_id: 244 NetLinx+ERB: type: programming color: "#747faa" extensions: - - .axs.erb - - .axi.erb + - ".axs.erb" + - ".axi.erb" tm_scope: source.netlinx.erb ace_mode: text - + language_id: 245 NetLogo: type: programming color: "#ff6375" extensions: - - .nlogo + - ".nlogo" tm_scope: source.lisp ace_mode: lisp - + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 246 NewLisp: type: programming lexer: NewLisp color: "#87AED7" extensions: - - .nl - - .lisp - - .lsp + - ".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 Nginx: type: markup extensions: - - .nginxconf - - .vhost + - ".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 color: "#9469E9" - + language_id: 248 Nimrod: type: programming color: "#37775b" extensions: - - .nim - - .nimrod + - ".nim" + - ".nimrod" ace_mode: text tm_scope: source.nim - + language_id: 249 Ninja: type: data tm_scope: source.ninja extensions: - - .ninja + - ".ninja" ace_mode: text - + language_id: 250 Nit: type: programming color: "#009917" extensions: - - .nit + - ".nit" tm_scope: source.nit ace_mode: text - + language_id: 251 Nix: type: programming color: "#7e7eff" extensions: - - .nix + - ".nix" aliases: - nixos tm_scope: source.nix ace_mode: nix - + language_id: 252 Nu: type: programming color: "#c9df40" aliases: - nush extensions: - - .nu + - ".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 + - ".numpy" + - ".numpyw" + - ".numsc" tm_scope: none ace_mode: text + codemirror_mode: python + codemirror_mime_type: text/x-python color: "#9C8AF9" - + 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 + - ".ml" + - ".eliom" + - ".eliomi" + - ".ml4" + - ".mli" + - ".mll" + - ".mly" interpreters: - ocaml - ocamlrun - ocamlscript tm_scope: source.ocaml - + language_id: 255 ObjDump: type: data extensions: - - .objdump + - ".objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - + language_id: 256 Objective-C: type: programming tm_scope: source.objc @@ -2605,10 +2843,12 @@ Objective-C: - objc - objectivec extensions: - - .m - - .h + - ".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++ @@ -2618,9 +2858,11 @@ Objective-C++: - objc++ - objectivec++ extensions: - - .mm + - ".mm" ace_mode: objectivec - + codemirror_mode: clike + codemirror_mime_type: text/x-objectivec + language_id: 258 Objective-J: type: programming color: "#ff0c5a" @@ -2629,42 +2871,44 @@ Objective-J: - objectivej - objj extensions: - - .j - - .sj + - ".j" + - ".sj" tm_scope: source.js.objj ace_mode: text - + language_id: 259 Omgrofl: type: programming extensions: - - .omgrofl + - ".omgrofl" color: "#cabbff" tm_scope: none ace_mode: text - + language_id: 260 Opa: type: programming extensions: - - .opa + - ".opa" ace_mode: text - + language_id: 261 Opal: type: programming color: "#f7ede0" extensions: - - .opal + - ".opal" tm_scope: source.opal ace_mode: text - + language_id: 262 OpenCL: type: programming group: C extensions: - - .cl - - .opencl + - ".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: @@ -2672,11 +2916,11 @@ OpenEdge ABL: - openedge - abl extensions: - - .p - - .cls + - ".p" + - ".cls" tm_scope: source.abl ace_mode: text - + language_id: 264 OpenRC runscript: type: programming group: Shell @@ -2686,148 +2930,156 @@ OpenRC runscript: - 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 + - ".scad" tm_scope: none ace_mode: scad - + language_id: 266 Org: type: prose wrap: true extensions: - - .org + - ".org" tm_scope: none ace_mode: text - + language_id: 267 Ox: type: programming extensions: - - .ox - - .oxh - - .oxo + - ".ox" + - ".oxh" + - ".oxo" tm_scope: source.ox ace_mode: text - + language_id: 268 Oxygene: type: programming color: "#cdd0e3" extensions: - - .oxygene + - ".oxygene" tm_scope: none ace_mode: text - + language_id: 269 Oz: type: programming color: "#fab738" extensions: - - .oz + - ".oz" tm_scope: source.oz ace_mode: text - + codemirror_mode: oz + codemirror_mime_type: text/x-oz + language_id: 270 PAWN: type: programming color: "#dbb284" extensions: - - .pwn - - .inc + - ".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 + - ".php" + - ".aw" + - ".ctp" + - ".fcgi" + - ".inc" + - ".php3" + - ".php4" + - ".php5" + - ".phps" + - ".phpt" filenames: - Phakefile interpreters: - php aliases: - inc - -#Oracle + 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 - - .pck - - .pkb - - .pks - - .plb - - .plsql - - .sql - -#Postgres + - ".pls" + - ".pck" + - ".pkb" + - ".pks" + - ".plb" + - ".plsql" + - ".sql" + language_id: 273 PLpgSQL: type: programming ace_mode: pgsql + codemirror_mode: sql + codemirror_mime_type: text/x-sql tm_scope: source.sql extensions: - - .sql - + - ".sql" + language_id: 274 POV-Ray SDL: type: programming aliases: - pov-ray - povray extensions: - - .pov - - .inc + - ".pov" + - ".inc" ace_mode: text - + language_id: 275 Pan: type: programming - color: '#cc0000' + color: "#cc0000" extensions: - - .pan + - ".pan" tm_scope: none ace_mode: text - + language_id: 276 Papyrus: type: programming color: "#6600cc" extensions: - - .psc + - ".psc" tm_scope: source.papyrus.skyrim ace_mode: text - + language_id: 277 Parrot: type: programming color: "#f3ca0a" extensions: - - .parrot # Dummy extension + - ".parrot" tm_scope: none ace_mode: text - + language_id: 278 Parrot Assembly: group: Parrot type: programming aliases: - pasm extensions: - - .pasm + - ".pasm" interpreters: - parrot tm_scope: none ace_mode: text - + language_id: 279 Parrot Internal Representation: group: Parrot tm_scope: source.parrot.pir @@ -2835,259 +3087,278 @@ Parrot Internal Representation: aliases: - pir extensions: - - .pir + - ".pir" interpreters: - parrot ace_mode: text - + language_id: 280 Pascal: type: programming color: "#E3F171" extensions: - - .pas - - .dfm - - .dpr - - .inc - - .lpr - - .pascal - - .pp + - ".pas" + - ".dfm" + - ".dpr" + - ".inc" + - ".lpr" + - ".pascal" + - ".pp" interpreters: - instantfpc ace_mode: pascal - + codemirror_mode: pascal + codemirror_mime_type: text/x-pascal + language_id: 281 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 - - .pod - - .psgi - - .t + - ".pl" + - ".al" + - ".cgi" + - ".fcgi" + - ".perl" + - ".ph" + - ".plx" + - ".pm" + - ".pod" + - ".psgi" + - ".t" interpreters: - perl - + language_id: 282 Perl6: type: programming color: "#0000fb" extensions: - - .6pl - - .6pm - - .nqp - - .p6 - - .p6l - - .p6m - - .pl - - .pl6 - - .pm - - .pm6 - - .t + - ".6pl" + - ".6pm" + - ".nqp" + - ".p6" + - ".p6l" + - ".p6m" + - ".pl" + - ".pl6" + - ".pm" + - ".pm6" + - ".t" filenames: - Rexfile interpreters: - perl6 tm_scope: source.perl6fe ace_mode: perl - + codemirror_mode: perl + codemirror_mime_type: text/x-perl + language_id: 283 Pickle: type: data extensions: - - .pkl + - ".pkl" tm_scope: none ace_mode: text - + language_id: 284 PicoLisp: type: programming extensions: - - .l + - ".l" interpreters: - picolisp - pil tm_scope: source.lisp ace_mode: lisp - + language_id: 285 PigLatin: type: programming color: "#fcd7de" extensions: - - .pig + - ".pig" tm_scope: source.pig_latin ace_mode: text - + language_id: 286 Pike: type: programming color: "#005390" extensions: - - .pike - - .pmod + - ".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 + - ".pod" tm_scope: none - + language_id: 288 PogoScript: type: programming color: "#d80074" extensions: - - .pogo + - ".pogo" tm_scope: source.pogoscript ace_mode: text - + language_id: 289 Pony: type: programming extensions: - - .pony + - ".pony" tm_scope: source.pony ace_mode: text - + language_id: 290 PostScript: type: markup color: "#da291c" extensions: - - .ps - - .eps + - ".ps" + - ".eps" tm_scope: source.postscript aliases: - postscr ace_mode: text - + language_id: 291 PowerBuilder: type: programming color: "#8f0f8d" extensions: - - .pbt - - .sra - - .sru - - .srw + - ".pbt" + - ".sra" + - ".sru" + - ".srw" tm_scope: none ace_mode: text - + language_id: 292 PowerShell: type: programming ace_mode: powershell + codemirror_mode: powershell + codemirror_mime_type: application/x-powershell aliases: - posh extensions: - - .ps1 - - .psd1 - - .psm1 - + - ".ps1" + - ".psd1" + - ".psm1" + language_id: 293 Processing: type: programming color: "#0096D8" extensions: - - .pde + - ".pde" ace_mode: text - + language_id: 294 Prolog: type: programming color: "#74283c" extensions: - - .pl - - .pro - - .prolog - - .yap + - ".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 + - ".spin" tm_scope: source.spin ace_mode: text - + language_id: 296 Protocol Buffer: type: markup aliases: - protobuf - Protocol Buffers extensions: - - .proto + - ".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 + - ".asc" + - ".pub" tm_scope: none ace_mode: text - + language_id: 298 Puppet: type: programming color: "#302B6D" extensions: - - .pp + - ".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: programming color: "#91de79" extensions: - - .pd + - ".pd" tm_scope: none ace_mode: text - + language_id: 300 PureBasic: type: programming color: "#5a6986" extensions: - - .pb - - .pbi + - ".pb" + - ".pbi" tm_scope: none ace_mode: text - + language_id: 301 PureScript: type: programming color: "#1D222D" extensions: - - .purs + - ".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 - - .lmi - - .pyde - - .pyp - - .pyt - - .pyw - - .rpy - - .tac - - .wsgi - - .xpy + - ".py" + - ".bzl" + - ".cgi" + - ".fcgi" + - ".gyp" + - ".lmi" + - ".pyde" + - ".pyp" + - ".pyt" + - ".pyw" + - ".rpy" + - ".spec" + - ".tac" + - ".wsgi" + - ".xpy" filenames: - BUCK - BUILD @@ -3101,34 +3372,34 @@ Python: - python3 aliases: - rusthon - + language_id: 303 Python traceback: type: data group: Python searchable: false extensions: - - .pytb + - ".pytb" tm_scope: text.python.traceback ace_mode: text - + language_id: 304 QML: type: programming color: "#44a51c" extensions: - - .qml - - .qbs + - ".qml" + - ".qbs" tm_scope: source.qml ace_mode: text - + language_id: 305 QMake: type: programming extensions: - - .pro - - .pri + - ".pro" + - ".pri" interpreters: - qmake ace_mode: text - + language_id: 306 R: type: programming color: "#198CE7" @@ -3137,182 +3408,204 @@ R: - Rscript - splus extensions: - - .r - - .rd - - .rsx + - ".r" + - ".rd" + - ".rsx" filenames: - - .Rprofile + - ".Rprofile" 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 - + - ".raml" + language_id: 308 RDoc: type: prose ace_mode: rdoc wrap: true extensions: - - .rdoc + - ".rdoc" tm_scope: text.rdoc - + language_id: 309 REALbasic: type: programming extensions: - - .rbbas - - .rbfrm - - .rbmnu - - .rbres - - .rbtbar - - .rbuistate + - ".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 + - ".rexx" + - ".pprx" + - ".rex" tm_scope: source.rexx ace_mode: text - + language_id: 311 RHTML: type: markup group: HTML extensions: - - .rhtml + - ".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 + - ".rmd" tm_scope: source.gfm - + language_id: 313 +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 + - ".rnh" + - ".rno" tm_scope: text.runoff ace_mode: text - + language_id: 315 Racket: type: programming color: "#22228f" extensions: - - .rkt - - .rktd - - .rktl - - .scrbl + - ".rkt" + - ".rktd" + - ".rktl" + - ".scrbl" interpreters: - racket tm_scope: source.racket ace_mode: lisp - + language_id: 316 Ragel in Ruby Host: type: programming color: "#9d5200" extensions: - - .rl + - ".rl" aliases: - ragel-rb - ragel-ruby tm_scope: none ace_mode: text - + language_id: 317 Raw token data: type: data search_term: raw aliases: - raw extensions: - - .raw + - ".raw" tm_scope: none ace_mode: text - + language_id: 318 Rebol: type: programming color: "#358a5b" extensions: - - .reb - - .r - - .r2 - - .r3 - - .rebol + - ".reb" + - ".r" + - ".r2" + - ".r3" + - ".rebol" ace_mode: text tm_scope: source.rebol - + language_id: 319 Red: type: programming color: "#f50000" extensions: - - .red - - .reds + - ".red" + - ".reds" aliases: - red/system tm_scope: source.red ace_mode: text - + language_id: 320 Redcode: type: programming extensions: - - .cw + - ".cw" tm_scope: none ace_mode: text - + language_id: 321 Ren'Py: type: programming aliases: - renpy color: "#ff7f7f" extensions: - - .rpy + - ".rpy" tm_scope: source.renpy ace_mode: python - + language_id: 322 RenderScript: type: programming extensions: - - .rs - - .rsh + - ".rs" + - ".rsh" tm_scope: none ace_mode: text - + language_id: 323 RobotFramework: type: programming extensions: - - .robot - # - .txt + - ".robot" tm_scope: text.robot ace_mode: text - + language_id: 324 Rouge: type: programming ace_mode: clojure + codemirror_mode: clojure + codemirror_mime_type: text/x-clojure color: "#cc0088" extensions: - - .rg + - ".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 @@ -3321,25 +3614,26 @@ Ruby: - rb - rbx extensions: - - .rb - - .builder - - .fcgi - - .gemspec - - .god - - .irbrc - - .jbuilder - - .mspec - - .pluginspec - - .podspec - - .rabl - - .rake - - .rbuild - - .rbw - - .rbx - - .ru - - .ruby - - .thor - - .watchr + - ".rb" + - ".builder" + - ".fcgi" + - ".gemspec" + - ".god" + - ".irbrc" + - ".jbuilder" + - ".mspec" + - ".pluginspec" + - ".podspec" + - ".rabl" + - ".rake" + - ".rbuild" + - ".rbw" + - ".rbx" + - ".ru" + - ".ruby" + - ".spec" + - ".thor" + - ".watchr" interpreters: - ruby - macruby @@ -3347,7 +3641,7 @@ Ruby: - jruby - rbx filenames: - - .pryrc + - ".pryrc" - Appraisals - Berksfile - Brewfile @@ -3365,37 +3659,43 @@ Ruby: - Thorfile - Vagrantfile - buildfile - + language_id: 326 Rust: type: programming color: "#dea584" extensions: - - .rs - - .rs.in + - ".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 + - ".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 + - ".scss" color: "#CF649A" - + language_id: 329 SMT: type: programming extensions: - - .smt2 - - .smt + - ".smt2" + - ".smt" interpreters: - boolector - cvc4 @@ -3409,79 +3709,90 @@ SMT: - 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 - + - ".sparql" + - ".rq" + language_id: 331 SQF: type: programming color: "#3F3F3F" extensions: - - .sqf - - .hqf + - ".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 - - .prc - - .tab - - .udf - - .viw - -#IBM DB2 + - ".sql" + - ".cql" + - ".ddl" + - ".inc" + - ".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 - + - ".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 - + - ".srt" + language_id: 335 STON: type: data group: Smalltalk extensions: - - .ston + - ".ston" tm_scope: source.smalltalk ace_mode: text - + language_id: 336 SVG: type: data extensions: - - .svg + - ".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 + - ".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" @@ -3489,47 +3800,53 @@ SaltStack: - saltstate - salt extensions: - - .sls + - ".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 + - ".sass" ace_mode: sass + codemirror_mode: sass + codemirror_mime_type: text/x-sass color: "#CF649A" - + language_id: 340 Scala: type: programming ace_mode: scala + codemirror_mode: clike + codemirror_mime_type: text/x-scala color: "#c22d40" extensions: - - .scala - - .sbt - - .sc + - ".scala" + - ".sbt" + - ".sc" interpreters: - scala - + language_id: 341 Scaml: group: HTML type: markup extensions: - - .scaml + - ".scaml" tm_scope: source.scaml ace_mode: text - + language_id: 342 Scheme: type: programming color: "#1e4aec" extensions: - - .scm - - .sld - - .sls - - .sps - - .ss + - ".scm" + - ".sld" + - ".sls" + - ".sps" + - ".ss" interpreters: - guile - bigloo @@ -3538,23 +3855,25 @@ Scheme: - gosh - r6rs ace_mode: scheme - + codemirror_mode: scheme + codemirror_mime_type: text/x-scheme + language_id: 343 Scilab: type: programming extensions: - - .sci - - .sce - - .tst + - ".sci" + - ".sce" + - ".tst" ace_mode: text - + language_id: 344 Self: type: programming color: "#0579aa" extensions: - - .self + - ".self" tm_scope: none ace_mode: text - + language_id: 345 Shell: type: programming search_term: bash @@ -3565,22 +3884,22 @@ Shell: - bash - zsh extensions: - - .sh - - .bash - - .bats - - .cgi - - .command - - .fcgi - - .ksh - - .sh.in - - .tmux - - .tool - - .zsh + - ".sh" + - ".bash" + - ".bats" + - ".cgi" + - ".command" + - ".fcgi" + - ".ksh" + - ".sh.in" + - ".tmux" + - ".tool" + - ".zsh" filenames: - - .bash_history - - .bash_logout - - .bash_profile - - .bashrc + - ".bash_history" + - ".bash_logout" + - ".bash_profile" + - ".bashrc" - PKGBUILD - gradlew interpreters: @@ -3589,255 +3908,283 @@ Shell: - sh - zsh ace_mode: sh - + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 346 ShellSession: type: programming extensions: - - .sh-session + - ".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 + - ".shen" tm_scope: none ace_mode: text - + language_id: 348 Slash: type: programming color: "#007eff" extensions: - - .sl + - ".sl" tm_scope: text.html.slash ace_mode: text - + language_id: 349 Slim: group: HTML type: markup color: "#ff8f77" extensions: - - .slim + - ".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 + - ".smali" ace_mode: text tm_scope: source.smali - + language_id: 351 Smalltalk: type: programming color: "#596706" extensions: - - .st - - .cs + - ".st" + - ".cs" aliases: - squeak ace_mode: text - + codemirror_mode: smalltalk + codemirror_mime_type: text/x-stsrc + language_id: 352 Smarty: type: programming extensions: - - .tpl + - ".tpl" ace_mode: smarty + codemirror_mode: smarty + codemirror_mime_type: text/x-smarty tm_scope: text.html.smarty - + language_id: 353 SourcePawn: type: programming color: "#5c7611" aliases: - sourcemod extensions: - - .sp - - .inc - - .sma + - ".sp" + - ".inc" + - ".sma" tm_scope: source.sp ace_mode: text - + language_id: 354 Squirrel: type: programming color: "#800000" extensions: - - .nut + - ".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 + - ".stan" ace_mode: text tm_scope: source.stan - + language_id: 356 Standard ML: type: programming color: "#dc566d" aliases: - sml extensions: - - .ML - - .fun - - .sig - - .sml + - ".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 + - ".do" + - ".ado" + - ".doh" + - ".ihlp" + - ".mata" + - ".matah" + - ".sthlp" ace_mode: text - + language_id: 358 Stylus: type: markup group: CSS extensions: - - .styl + - ".styl" tm_scope: source.stylus ace_mode: stylus - + language_id: 359 SubRip Text: type: data extensions: - - .srt + - ".srt" ace_mode: text tm_scope: text.srt - + language_id: 360 SuperCollider: type: programming color: "#46390b" extensions: - - .sc - - .scd + - ".sc" + - ".scd" interpreters: - sclang - scsynth tm_scope: source.supercollider ace_mode: text - + language_id: 361 Swift: type: programming color: "#ffac45" extensions: - - .swift + - ".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 + - ".sv" + - ".svh" + - ".vh" ace_mode: verilog - + codemirror_mode: verilog + codemirror_mime_type: text/x-systemverilog + language_id: 363 TLA: type: programming extensions: - - .tla + - ".tla" tm_scope: source.tla ace_mode: text - + language_id: 364 TOML: type: data extensions: - - .toml + - ".toml" tm_scope: source.toml ace_mode: toml - + codemirror_mode: toml + codemirror_mime_type: text/x-toml + language_id: 365 TXL: type: programming extensions: - - .txl + - ".txl" tm_scope: source.txl ace_mode: text - + language_id: 366 Tcl: type: programming color: "#e4cc98" extensions: - - .tcl - - .adp - - .tm + - ".tcl" + - ".adp" + - ".tm" 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 + - ".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 - + - ".tex" + - ".aux" + - ".bbx" + - ".bib" + - ".cbx" + - ".cls" + - ".dtx" + - ".ins" + - ".lbx" + - ".ltx" + - ".mkii" + - ".mkiv" + - ".mkvi" + - ".sty" + - ".toc" + language_id: 369 Tea: type: markup extensions: - - .tea + - ".tea" tm_scope: source.tea ace_mode: text - + language_id: 370 Terra: type: programming extensions: - - .t + - ".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 + - ".txt" + - ".fr" + - ".nb" + - ".ncl" + - ".no" filenames: - COPYING - INSTALL @@ -3852,343 +4199,375 @@ Text: - 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 + - ".textile" tm_scope: none - + language_id: 373 Thrift: type: programming tm_scope: source.thrift extensions: - - .thrift + - ".thrift" ace_mode: text - + language_id: 374 Turing: type: programming color: "#cf142b" extensions: - - .t - - .tu + - ".t" + - ".tu" tm_scope: source.turing ace_mode: text - + language_id: 375 Turtle: type: data extensions: - - .ttl + - ".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 + - ".twig" tm_scope: text.html.twig ace_mode: twig - + codemirror_mode: twig + codemirror_mime_type: text/x-twig + language_id: 377 TypeScript: type: programming color: "#2b7489" aliases: - ts extensions: - - .ts - - .tsx + - ".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 color: "#4e3617" extensions: - - .upc + - ".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 + - ".anim" + - ".asset" + - ".mat" + - ".meta" + - ".prefab" + - ".unity" tm_scope: source.yaml - + language_id: 380 Uno: type: programming extensions: - - .uno + - ".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 + - ".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 + - ".ur" + - ".urs" tm_scope: source.ur ace_mode: text - + language_id: 383 VCL: group: Perl type: programming extensions: - - .vcl + - ".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 + - ".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 + - ".vala" + - ".vapi" ace_mode: vala - + language_id: 386 Verilog: type: programming color: "#b2b7f8" extensions: - - .v - - .veo + - ".v" + - ".veo" ace_mode: verilog - + codemirror_mode: verilog + codemirror_mime_type: text/x-verilog + language_id: 387 VimL: type: programming color: "#199f4b" search_term: vim + tm_scope: source.viml aliases: - vim - nvim extensions: - - .vim + - ".vim" filenames: - - .nvimrc - - .vimrc + - ".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 + - ".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 + - ".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 + - ".vue" tm_scope: text.html.vue ace_mode: html - + language_id: 391 Wavefront Material: type: data extensions: - - .mtl + - ".mtl" tm_scope: source.wavefront.mtl ace_mode: text - + language_id: 392 Wavefront Object: type: data extensions: - - .obj + - ".obj" tm_scope: source.wavefront.obj ace_mode: text - + language_id: 393 Web Ontology Language: type: markup color: "#9cc9dd" extensions: - - .owl + - ".owl" tm_scope: text.xml ace_mode: xml - + language_id: 394 WebIDL: type: programming extensions: - - .webidl + - ".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 + - ".toc" tm_scope: source.toc ace_mode: text - + language_id: 396 X10: type: programming aliases: - xten ace_mode: text extensions: - - .x10 + - ".x10" color: "#4B6BEF" tm_scope: source.x10 - + language_id: 397 XC: type: programming color: "#99DA07" extensions: - - .xc + - ".xc" tm_scope: source.xc ace_mode: c_cpp - + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 398 XML: type: data ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml aliases: - rss - xsd - wsdl extensions: - - .xml - - .ant - - .axml - - .builds - - .ccxml - - .clixml - - .cproject - - .csl - - .csproj - - .ct - - .dita - - .ditamap - - .ditaval - - .dll.config - - .dotsettings - - .filters - - .fsproj - - .fxml - - .glade - - .gml - - .grxml - - .iml - - .ivy - - .jelly - - .jsproj - - .kml - - .launch - - .mdpolicy - - .mm - - .mod - - .mxml - - .nproj - - .nuspec - - .odd - - .osm - - .pkgproj - - .plist - - .pluginspec - - .props - - .ps1xml - - .psc1 - - .pt - - .rdf - - .resx - - .rss - - .scxml - - .sfproj - - .srdf - - .storyboard - - .stTheme - - .sublime-snippet - - .targets - - .tmCommand - - .tml - - .tmLanguage - - .tmPreferences - - .tmSnippet - - .tmTheme - - .ts - - .tsx - - .ui - - .urdf - - .ux - - .vbproj - - .vcxproj - - .vssettings - - .vxml - - .wsdl - - .wsf - - .wxi - - .wxl - - .wxs - - .x3d - - .xacro - - .xaml - - .xib - - .xlf - - .xliff - - .xmi - - .xml.dist - - .xproj - - .xsd - - .xul - - .zcml + - ".xml" + - ".ant" + - ".axml" + - ".builds" + - ".ccxml" + - ".clixml" + - ".cproject" + - ".csl" + - ".csproj" + - ".ct" + - ".dita" + - ".ditamap" + - ".ditaval" + - ".dll.config" + - ".dotsettings" + - ".filters" + - ".fsproj" + - ".fxml" + - ".glade" + - ".gml" + - ".grxml" + - ".iml" + - ".ivy" + - ".jelly" + - ".jsproj" + - ".kml" + - ".launch" + - ".mdpolicy" + - ".mm" + - ".mod" + - ".mxml" + - ".nproj" + - ".nuspec" + - ".odd" + - ".osm" + - ".pkgproj" + - ".plist" + - ".pluginspec" + - ".props" + - ".ps1xml" + - ".psc1" + - ".pt" + - ".rdf" + - ".resx" + - ".rss" + - ".sch" + - ".scxml" + - ".sfproj" + - ".srdf" + - ".storyboard" + - ".stTheme" + - ".sublime-snippet" + - ".targets" + - ".tmCommand" + - ".tml" + - ".tmLanguage" + - ".tmPreferences" + - ".tmSnippet" + - ".tmTheme" + - ".ts" + - ".tsx" + - ".ui" + - ".urdf" + - ".ux" + - ".vbproj" + - ".vcxproj" + - ".vssettings" + - ".vxml" + - ".wsdl" + - ".wsf" + - ".wxi" + - ".wxl" + - ".wxs" + - ".x3d" + - ".xacro" + - ".xaml" + - ".xib" + - ".xlf" + - ".xliff" + - ".xmi" + - ".xml.dist" + - ".xproj" + - ".xsd" + - ".xul" + - ".zcml" filenames: - - .classpath - - .project + - ".classpath" + - ".project" - App.config - NuGet.config - Settings.StyleCop @@ -4196,178 +4575,192 @@ XML: - Web.Release.config - Web.config - packages.config - + language_id: 399 XPages: type: programming extensions: - - .xsp-config - - .xsp.metadata + - ".xsp-config" + - ".xsp.metadata" tm_scope: none ace_mode: xml - + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 400 XProc: type: programming extensions: - - .xpl - - .xproc + - ".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 + - ".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 + - ".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 + - ".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 + - ".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 + - ".xtend" ace_mode: text - + language_id: 406 YAML: type: data tm_scope: source.yaml aliases: - yml extensions: - - .yml - - .reek - - .rviz - - .sublime-syntax - - .syntax - - .yaml - - .yaml-tmlanguage + - ".yml" + - ".reek" + - ".rviz" + - ".sublime-syntax" + - ".syntax" + - ".yaml" + - ".yaml-tmlanguage" filenames: - - .clang-format + - ".clang-format" ace_mode: yaml - + codemirror_mode: yaml + codemirror_mime_type: text/x-yaml + language_id: 407 YANG: type: data extensions: - - .yang + - ".yang" tm_scope: source.yang ace_mode: text - + language_id: 408 Yacc: type: programming extensions: - - .y - - .yacc - - .yy + - ".y" + - ".yacc" + - ".yy" tm_scope: source.bison ace_mode: text color: "#4B6C4B" - + language_id: 409 Zephir: type: programming color: "#118f9e" extensions: - - .zep + - ".zep" tm_scope: source.php.zephir ace_mode: php - + language_id: 410 Zimpl: type: programming extensions: - - .zimpl - - .zmpl - - .zpl + - ".zimpl" + - ".zmpl" + - ".zpl" tm_scope: none ace_mode: text - + language_id: 411 desktop: type: data extensions: - - .desktop - - .desktop.in + - ".desktop" + - ".desktop.in" tm_scope: source.desktop ace_mode: text - + language_id: 412 eC: type: programming color: "#913960" search_term: ec extensions: - - .ec - - .eh + - ".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 + - ".edn" tm_scope: source.clojure - + language_id: 414 fish: type: programming group: Shell interpreters: - fish extensions: - - .fish + - ".fish" tm_scope: source.fish ace_mode: text - + language_id: 415 mupad: type: programming extensions: - - .mu + - ".mu" ace_mode: text - + language_id: 416 nesC: type: programming color: "#94B0C7" extensions: - - .nc + - ".nc" ace_mode: text tm_scope: source.nesc - + language_id: 417 ooc: type: programming color: "#b0b77e" extensions: - - .ooc + - ".ooc" ace_mode: text - + language_id: 418 reStructuredText: type: prose wrap: true @@ -4375,20 +4768,24 @@ reStructuredText: aliases: - rst extensions: - - .rst - - .rest - - .rest.txt - - .rst.txt + - ".rst" + - ".rest" + - ".rest.txt" + - ".rst.txt" ace_mode: text - + codemirror_mode: rst + codemirror_mime_type: text/x-rst + language_id: 419 wisp: type: programming ace_mode: clojure + codemirror_mode: clojure + codemirror_mime_type: text/x-clojure color: "#7582D1" extensions: - - .wisp + - ".wisp" tm_scope: source.clojure - + language_id: 420 xBase: type: programming color: "#403a40" @@ -4397,8 +4794,9 @@ xBase: - clipper - foxpro extensions: - - .prg - - .ch - - .prw + - ".prg" + - ".ch" + - ".prw" tm_scope: source.harbour ace_mode: text + language_id: 421 diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 4e16a03c..5d63a6a0 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,19 +1,98 @@ module Linguist module Strategy class Modeline - EMACS_MODELINE = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i + EMACS_MODELINE = / + -\*- + (?: + # Short form: `-*- ruby -*-` + \s* (?= [^:;\s]+ \s* -\*-) + | + # Longer form: `-*- foo:bar; mode: ruby; -*-` + (?: + .*? # Preceding variables: `-*- foo:bar bar:baz;` + [;\s] # Which are delimited by spaces or semicolons + | + (?<=-\*-) # Not preceded by anything: `-*-mode:ruby-*-` + ) + mode # Major mode indicator + \s*:\s* # Allow whitespace around colon: `mode : ruby` + ) + ([^:;\s]+) # Name of mode - # First form vim modeline - # [text]{white}{vi:|vim:|ex:}[white]{options} - # ex: 'vim: syntax=ruby' - VIM_MODELINE_1 = /(?:vim|vi|ex):\s*(?:ft|filetype|syntax)=(\w+)\s?/i + # Ensure the mode is terminated correctly + (?= + # Followed by semicolon or whitespace + [\s;] + | + # Touching the ending sequence: `ruby-*-` + (?]?\d+|m)? # Version-specific modeline + | + [\t\x20] # `ex:` requires whitespace, because "ex:" might be short for "example:" + ex + ) + + # If the option-list begins with `set ` or `se `, it indicates an alternative + # modeline syntax partly-compatible with older versions of Vi. Here, the colon + # serves as a terminator for an option sequence, delimited by whitespace. + (?= + # So we have to ensure the modeline ends with a colon + : (?=\s* set? \s [^\n:]+ :) | + + # Otherwise, it isn't valid syntax and should be ignored + : (?!\s* set? \s) + ) + + # Possible (unrelated) `option=value` pairs to skip past + (?: + # Option separator. Vim uses whitespace or colons to separate options (except if + # the alternate "vim: set " form is used, where only whitespace is used) + (?: + \s + | + \s* : \s* # Note that whitespace around colons is accepted too: + ) # vim: noai : ft=ruby:noexpandtab + + # Option's name. All recognised Vim options have an alphanumeric form. + \w* + + # Possible value. Not every option takes an argument. + (?: + # Whitespace between name and value is allowed: `vim: ft =ruby` + \s*= + + # Option's value. Might be blank; `vim: ft= ` says "use no filetype". + (?: + [^\\\s] # Beware of escaped characters: titlestring=\ ft=ruby + | # will be read by Vim as { titlestring: " ft=ruby" }. + \\. + )* + )? + )* + + # The actual filetype declaration + [\s:] (?:filetype|ft|syntax) \s*= + + # Language's name + (\w+) + + # Ensure it's followed by a legal separator + (?=\s|:|$) + /xi + + MODELINES = [EMACS_MODELINE, VIM_MODELINE] # Scope of the search for modelines # Number of lines to check at the beginning and at the end of the file diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 6b8c7364..0e6daa27 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -165,7 +165,7 @@ # Chart.js - (^|/)Chart\.js$ -# Codemirror +# CodeMirror - (^|/)[Cc]ode[Mm]irror/(\d+\.\d+/)?(lib|mode|theme|addon|keymap|demo) # SyntaxHighlighter - http://alexgorbatchev.com/ @@ -229,6 +229,9 @@ # Fabric - Fabric.framework/ +# BuddyBuild +- BuddyBuildSDK.framework/ + # git config files - gitattributes$ - gitignore$ diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 8c15a584..8218aafe 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.8.9" + VERSION = "4.8.15" end diff --git a/package.json b/package.json index 827997e5..c2e22111 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "repository": "https://github.com/github/linguist", "dependencies": { - "season": "~>5.0" + "season": "~>5.4" }, "license": "MIT" } diff --git a/samples/Emacs Lisp/filenames/.abbrev_defs b/samples/Emacs Lisp/filenames/.abbrev_defs new file mode 100644 index 00000000..dc29dfde --- /dev/null +++ b/samples/Emacs Lisp/filenames/.abbrev_defs @@ -0,0 +1,6 @@ +(define-abbrev-table 'c-mode-abbrev-table '( + )) +(define-abbrev-table 'fundamental-mode-abbrev-table '( + ("TM" "™" nil 0) + ("(R)" "®" nil 0) + ("C=" "€" nil 0))) diff --git a/samples/Emacs Lisp/filenames/.gnus b/samples/Emacs Lisp/filenames/.gnus new file mode 100644 index 00000000..bfd859dd --- /dev/null +++ b/samples/Emacs Lisp/filenames/.gnus @@ -0,0 +1,20 @@ +(setq user-full-name "Alhadis") +(setq user-mail-address "fake.account@gmail.com") + +(auto-image-file-mode) +(setq mm-inline-large-images t) +(add-to-list 'mm-attachment-override-types "image/*") + +(setq gnus-select-method + '(nnimap "gmail" + (nnimap-address "imap.gmail.com") + (nnimap-server-port 777) + (nnimap-stream ssl))) + +(setq message-send-mail-function 'smtpmail-send-it + smtpmail-starttls-credentials '(("smtp.gmail.com" 600 nil nil)) + smtpmail-auth-credentials '(("smtp.gmail.com" 700 "me@lisp.com" nil)) + smtpmail-default-smtp-server "smtp.gmail.com" + smtpmail-smtp-server "smtp.gmail.com" + smtpmail-smtp-service 800 + setq gnus-ignored-from-addresses "^from\\.Telstra[ \t\r\n]+Thanks") diff --git a/samples/Emacs Lisp/filenames/.spacemacs b/samples/Emacs Lisp/filenames/.spacemacs new file mode 100644 index 00000000..a646eba0 --- /dev/null +++ b/samples/Emacs Lisp/filenames/.spacemacs @@ -0,0 +1,197 @@ +;; -*- mode: emacs-lisp -*- +;; This file is loaded by Spacemacs at startup. +;; It must be stored in your home directory. + +(defun dotspacemacs/layers () + "Configuration Layers declaration." + (setq-default + ;; List of additional paths where to look for configuration layers. + ;; Paths must have a trailing slash (i.e. `~/.mycontribs/') + dotspacemacs-configuration-layer-path '() + ;; List of configuration layers to load. If it is the symbol `all' instead + ;; of a list then all discovered layers will be installed. + dotspacemacs-configuration-layers + '( + ;; ---------------------------------------------------------------- + ;; Example of useful layers you may want to use right away. + ;; Uncomment some layer names and press (Vim style) or + ;; (Emacs style) to install them. + ;; ---------------------------------------------------------------- + emacs-lisp + charlock_holmes + escape_utils + mime-types + rugged + minitest + mocha + plist + pry + rake + yajl-ruby + colour-proximity + licensed + licensee + ;; List of additional packages that will be installed without being + ;; wrapped in a layer. If you need some configuration for these + ;; packages then consider to create a layer, you can also put the + ;; configuration in `dotspacemacs/config'. + dotspacemacs-additional-packages '() + ;; A list of packages and/or extensions that will not be install and loaded. + dotspacemacs-excluded-packages '() + ;; If non-nil spacemacs will delete any orphan packages, i.e. packages that + ;; are declared in a layer which is not a member of + ;; the list `dotspacemacs-configuration-layers' + dotspacemacs-delete-orphan-packages t)) + +(defun dotspacemacs/init () + "Initialization function. +This function is called at the very startup of Spacemacs initialization +before layers configuration." + ;; This setq-default sexp is an exhaustive list of all the supported + ;; spacemacs settings. + (setq-default + ;; Either `vim' or `emacs'. Evil is always enabled but if the variable + ;; is `emacs' then the `holy-mode' is enabled at startup. + dotspacemacs-editing-style 'vim + ;; If non nil output loading progress in `*Messages*' buffer. + dotspacemacs-verbose-loading nil + ;; Specify the startup banner. Default value is `official', it displays + ;; the official spacemacs logo. An integer value is the index of text + ;; banner, `random' chooses a random text banner in `core/banners' + ;; directory. A string value must be a path to an image format supported + ;; by your Emacs build. + ;; If the value is nil then no banner is displayed. + dotspacemacs-startup-banner 'official + ;; List of items to show in the startup buffer. If nil it is disabled. + ;; Possible values are: `recents' `bookmarks' `projects'." + dotspacemacs-startup-lists '(bookmarks projects recents) + ;; List of themes, the first of the list is loaded when spacemacs starts. + ;; Press T n to cycle to the next theme in the list (works great + ;; with 2 themes variants, one dark and one light) + dotspacemacs-themes '( + spacemacs-dark + spacemacs-light + solarized-dark + solarized-light + atom-light-ui + atom-dark-ui + atom-material-ui + zenburn + ;; If non nil the cursor colour matches the state colour. + dotspacemacs-colorize-cursor-according-to-state t + ;; Default font. `powerline-scale' allows to quickly tweak the mode-line + ;; size to make separators look not too crappy. + dotspacemacs-default-font '("Menloco" + :size 11 + :weight normal + :width normal + :powerline-scale 1.1) + ;; The leader key + dotspacemacs-leader-key "SPC" + ;; The leader key accessible in `emacs state' and `insert state' + dotspacemacs-emacs-leader-key "M-m" + ;; Major mode leader key is a shortcut key which is the equivalent of + ;; pressing ` m`. Set it to `nil` to disable it. + dotspacemacs-major-mode-leader-key "," + ;; Major mode leader key accessible in `emacs state' and `insert state' + dotspacemacs-major-mode-emacs-leader-key "C-M-m" + ;; The command key used for Evil commands (ex-commands) and + ;; Emacs commands (M-x). + ;; By default the command key is `:' so ex-commands are executed like in Vim + ;; with `:' and Emacs commands are executed with ` :'. + dotspacemacs-command-key ":" + ;; Location where to auto-save files. Possible values are `original' to + ;; auto-save the file in-place, `cache' to auto-save the file to another + ;; file stored in the cache directory and `nil' to disable auto-saving. + ;; Default value is `cache'. + dotspacemacs-auto-save-file-location 'cache + ;; If non nil then `ido' replaces `helm' for some commands. For now only + ;; `find-files' (SPC f f) is replaced. + dotspacemacs-use-ido nil + ;; If non nil the paste micro-state is enabled. When enabled pressing `p` + ;; several times cycle between the kill ring content. + dotspacemacs-enable-paste-micro-state nil + ;; Guide-key delay in seconds. The Guide-key is the popup buffer listing + ;; the commands bound to the current keystrokes. + dotspacemacs-guide-key-delay 0.4 + ;; If non nil a progress bar is displayed when spacemacs is loading. This + ;; may increase the boot time on some systems and emacs builds, set it to + ;; nil ;; to boost the loading time. + dotspacemacs-loading-progress-bar t + ;; If non nil the frame is fullscreen when Emacs starts up. + ;; (Emacs 24.4+ only) + dotspacemacs-fullscreen-at-startup nil + ;; If non nil `spacemacs/toggle-fullscreen' will not use native fullscreen. + ;; Use to disable fullscreen animations in OSX." + dotspacemacs-fullscreen-use-non-native nil + ;; If non nil the frame is maximized when Emacs starts up. + ;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil. + ;; (Emacs 24.4+ only) + dotspacemacs-maximized-at-startup nil + ;; A value from the range (0..100), in increasing opacity, which describes + ;; the transparency level of a frame when it's active or selected. + ;; Transparency can be toggled through `toggle-transparency'. + dotspacemacs-active-transparency 90 + ;; A value from the range (0..100), in increasing opacity, which describes + ;; the transparency level of a frame when it's inactive or deselected. + ;; Transparency can be toggled through `toggle-transparency'. + dotspacemacs-inactive-transparency 90 + ;; If non nil unicode symbols are displayed in the mode line. + dotspacemacs-mode-line-unicode-symbols t + ;; If non nil smooth scrolling (native-scrolling) is enabled. Smooth + ;; scrolling overrides the default behavior of Emacs which recenters the + ;; point when it reaches the top or bottom of the screen. + dotspacemacs-smooth-scrolling t + ;; If non-nil smartparens-strict-mode will be enabled in programming modes. + dotspacemacs-smartparens-strict-mode nil + ;; Select a scope to highlight delimiters. Possible value is `all', + ;; `current' or `nil'. Default is `all' + dotspacemacs-highlight-delimiters 'all + ;; If non nil advises quit functions to keep server open when quitting. + dotspacemacs-persistent-server nil + ;; List of search tool executable names. Spacemacs uses the first installed + ;; tool of the list. Supported tools are `ag', `pt', `ack' and `grep'. + dotspacemacs-search-tools '("ag" "pt" "ack" "grep") + ;; The default package repository used if no explicit repository has been + ;; specified with an installed package. + ;; Not used for now. + dotspacemacs-default-package-repository nil + + ;; If non nil line numbers are turned on in all `prog-mode' and `text-mode' + ;; derivatives. If set to `relative', also turns on relative line numbers. + ;; (default nil) + dotspacemacs-line-numbers 'relative + + ;; Delete whitespace while saving buffer. Possible values are `all', + ;; `trailing', `changed' or `nil'. Default is `changed' (cleanup whitespace + ;; on changed lines) (default 'changed) + dotspacemacs-whitespace-cleanup 'changed + ) + ;; User initialization goes here + ) + +(defun dotspacemacs/user-config () + "Configuration function. + This function is called at the very end of Spacemacs initialization after +layers configuration." + (add-hook 'alchemist-mode-hook 'company-mode) + + (add-hook 'projectile-mode-hook 'projectile-rails-on) + (setq ruby-insert-encoding-magic-comment nil) + + (setq web-mode-markup-indent-offset 2) + (setq web-mode-code-indent-offset 2) + + (spacemacs/toggle-golden-ratio-on) + (spacemacs/toggle-indent-guide-globally-on) + (spacemacs/toggle-centered-point-globally-on) +) + +;; Do not write anything past this comment. This is where Emacs will +;; auto-generate custom variable definitions. +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. +) diff --git a/samples/Emacs Lisp/filenames/.viper b/samples/Emacs Lisp/filenames/.viper new file mode 100644 index 00000000..c3eeb658 --- /dev/null +++ b/samples/Emacs Lisp/filenames/.viper @@ -0,0 +1,10 @@ +(setq viper-inhibit-startup-message 't) +(setq viper-expert-level '5) + +; Key bindings +(define-key viper-vi-global-user-map "\C-d" 'end-of-line) + +; Return to top of window +(defun my-viper-return-to-top () + (interactive) + (beginning-of-buffer)) diff --git a/samples/Emacs Lisp/filenames/Project.ede b/samples/Emacs Lisp/filenames/Project.ede new file mode 100644 index 00000000..36a0c8bd --- /dev/null +++ b/samples/Emacs Lisp/filenames/Project.ede @@ -0,0 +1,34 @@ +;; Object EDE +(ede-proj-project "Linguist" + :name "Linguist" + :version "4.9" + :file "Project.ede" + :targets (list + (ede-proj-target-elisp-autoloads "autoloads" + :name "autoloads" + :path "test/samples/Emacs Lisp" + :autoload-file "dude.el" + ) + (ede-proj-target-elisp "init" + :name "init" + :path "" + :source '("ede-load.el" "wait-what.el") + :compiler 'ede-emacs-preload-compiler + :pre-load-packages '("sample-names") + ) + (ede-proj-target-elisp "what" + :name "the" + :path "" + :source '("h.el" "am-i-writing.el") + :versionsource '("hell.el") + :compiler 'ede-emacs-preload-compiler + :aux-packages '("what" "the" "hell-files" "am-i-writing") + ) + ) + :web-site-url "https://github.com/github/linguist" + :web-site-directory "../" + :web-site-file "CONTRIBUTING.md" + :ftp-upload-site "/ftp@git.hub.com:/madeup" + :configuration-variables 'nil + :metasubproject 't + ) diff --git a/samples/Emacs Lisp/filenames/_emacs b/samples/Emacs Lisp/filenames/_emacs new file mode 100644 index 00000000..4968f8eb --- /dev/null +++ b/samples/Emacs Lisp/filenames/_emacs @@ -0,0 +1,70 @@ +;; UTF-8 support +;; (set-language-environment "UTF-8") +(setenv "LANG" "en_AU.UTF-8") +(setenv "LC_ALL" "en_AU.UTF-8") +(setq default-tab-width 4) + + +;;; Function to load all ".el" files in ~/.emacs.d/config +(defun load-directory (directory) + "Recursively load all Emacs Lisp files in a directory." + (dolist (element (directory-files-and-attributes directory nil nil nil)) + (let* ((path (car element)) + (fullpath (concat directory "/" path)) + (isdir (car (cdr element))) + (ignore-dir (or (string= path ".") (string= path "..")))) + (cond + ((and (eq isdir t) (not ignore-dir)) + (load-directory fullpath)) + ((and (eq isdir nil) (string= (substring path -3) ".el")) + (load (file-name-sans-extension fullpath))))))) + +;; Tell Emacs we'd like to use Hunspell for spell-checking +(setq ispell-program-name (executable-find "hunspell")) + +;; Load Homebrew-installed packages +(let ((default-directory "/usr/local/share/emacs/site-lisp/")) + (normal-top-level-add-subdirs-to-load-path)) +(load "aggressive-indent") +(add-hook 'emacs-lisp-mode-hook #'aggressive-indent-mode) +(autoload 'rust-mode "rust-mode" nil t) +(add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode)) + +;; Load Git-related syntax highlighting +(add-to-list 'load-path "~/.emacs.d/lisp/") +(load "git-modes") +(load "git-commit") + +;; Keybindings +(global-set-key (kbd "C-u") (lambda () + (interactive) + (kill-line 0))) + +;; Show cursor's current column number +(setq column-number-mode t) + +;; Disable autosave +(setq auto-save-default nil) + +;; Use a single directory for storing backup files +(setq backup-directory-alist `(("." . "~/.emacs.d/auto-save-list"))) +(setq backup-by-copying t) +(setq delete-old-versions t + kept-new-versions 6 + kept-old-versions 2 + version-control t) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(blink-cursor-mode nil) + '(column-number-mode t) + '(show-paren-mode t)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) diff --git a/samples/Emacs Lisp/filenames/abbrev_defs b/samples/Emacs Lisp/filenames/abbrev_defs new file mode 100644 index 00000000..87dfad8c --- /dev/null +++ b/samples/Emacs Lisp/filenames/abbrev_defs @@ -0,0 +1,8 @@ +(define-abbrev-table 'fundamental-mode-abbrev-table '( + ("cat" "Concatenate" nil 0) + ("WTF" "World Trade Federation " nil 0) + ("rtbtm" "Read that back to me" nil 0))) + +(define-abbrev-table 'shell-script-mode-abbrev-table '( + ("brake", "bundle rake exec" nil 0) + ("pls", "warning: setting Encoding.default_external"))) diff --git a/samples/FORTRAN/bug-185631.f b/samples/FORTRAN/bug-185631.f new file mode 100644 index 00000000..abdf87b0 --- /dev/null +++ b/samples/FORTRAN/bug-185631.f @@ -0,0 +1,6 @@ +! Codes/HYCOM/hycom/ATLb2.00/src_2.0.01_22_one/ + real onemu, twomu + data onemu/0.0098/ + data twomu/1./ + data threemu/0.e9/ + end diff --git a/samples/Filebench WML/copyfiles.f b/samples/Filebench WML/copyfiles.f new file mode 100644 index 00000000..dc7f66fa --- /dev/null +++ b/samples/Filebench WML/copyfiles.f @@ -0,0 +1,51 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +set $dir=/tmp +set $nfiles=1000 +set $meandirwidth=20 +set $meanfilesize=16k +set $iosize=1m +set $nthreads=1 + +set mode quit firstdone + +define fileset name=bigfileset,path=$dir,size=$meanfilesize,entries=$nfiles,dirwidth=$meandirwidth,prealloc=100,paralloc +define fileset name=destfiles,path=$dir,size=$meanfilesize,entries=$nfiles,dirwidth=$meandirwidth + +define process name=filereader,instances=1 +{ + thread name=filereaderthread,memsize=10m,instances=$nthreads + { + flowop openfile name=openfile1,filesetname=bigfileset,fd=1 + flowop readwholefile name=readfile1,fd=1,iosize=$iosize + flowop createfile name=createfile2,filesetname=destfiles,fd=2 + flowop writewholefile name=writefile2,fd=2,srcfd=1,iosize=$iosize + flowop closefile name=closefile1,fd=1 + flowop closefile name=closefile2,fd=2 + } +} + +echo "Copyfiles Version 3.0 personality successfully loaded" diff --git a/samples/Objective-C/cocoa_monitor.m b/samples/Objective-C/cocoa_monitor.m new file mode 100644 index 00000000..9a384b69 --- /dev/null +++ b/samples/Objective-C/cocoa_monitor.m @@ -0,0 +1,413 @@ +//======================================================================== +// GLFW 3.3 OS X - www.glfw.org +//------------------------------------------------------------------------ +// Copyright (c) 2002-2006 Marcus Geelnard +// Copyright (c) 2006-2016 Camilla Berglund +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would +// be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not +// be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source +// distribution. +// +//======================================================================== + +#include "internal.h" + +#include +#include + +#include +#include +#include +#include + + +// Get the name of the specified display +// +static char* getDisplayName(CGDirectDisplayID displayID) +{ + char* name; + CFDictionaryRef info, names; + CFStringRef value; + CFIndex size; + + // NOTE: This uses a deprecated function because Apple has + // (as of January 2015) not provided any alternative + info = IODisplayCreateInfoDictionary(CGDisplayIOServicePort(displayID), + kIODisplayOnlyPreferredName); + names = CFDictionaryGetValue(info, CFSTR(kDisplayProductName)); + + if (!names || !CFDictionaryGetValueIfPresent(names, CFSTR("en_US"), + (const void**) &value)) + { + // This may happen if a desktop Mac is running headless + _glfwInputError(GLFW_PLATFORM_ERROR, + "Cocoa: Failed to retrieve display name"); + + CFRelease(info); + return strdup("Unknown"); + } + + size = CFStringGetMaximumSizeForEncoding(CFStringGetLength(value), + kCFStringEncodingUTF8); + name = calloc(size + 1, 1); + CFStringGetCString(value, name, size, kCFStringEncodingUTF8); + + CFRelease(info); + + return name; +} + +// Check whether the display mode should be included in enumeration +// +static GLFWbool modeIsGood(CGDisplayModeRef mode) +{ + uint32_t flags = CGDisplayModeGetIOFlags(mode); + if (!(flags & kDisplayModeValidFlag) || !(flags & kDisplayModeSafeFlag)) + return GLFW_FALSE; + + if (flags & kDisplayModeInterlacedFlag) + return GLFW_FALSE; + + if (flags & kDisplayModeStretchedFlag) + return GLFW_FALSE; + + CFStringRef format = CGDisplayModeCopyPixelEncoding(mode); + if (CFStringCompare(format, CFSTR(IO16BitDirectPixels), 0) && + CFStringCompare(format, CFSTR(IO32BitDirectPixels), 0)) + { + CFRelease(format); + return GLFW_FALSE; + } + + CFRelease(format); + return GLFW_TRUE; +} + +// Convert Core Graphics display mode to GLFW video mode +// +static GLFWvidmode vidmodeFromCGDisplayMode(CGDisplayModeRef mode, + CVDisplayLinkRef link) +{ + GLFWvidmode result; + result.width = (int) CGDisplayModeGetWidth(mode); + result.height = (int) CGDisplayModeGetHeight(mode); + result.refreshRate = (int) CGDisplayModeGetRefreshRate(mode); + + if (result.refreshRate == 0) + { + const CVTime time = CVDisplayLinkGetNominalOutputVideoRefreshPeriod(link); + if (!(time.flags & kCVTimeIsIndefinite)) + result.refreshRate = (int) (time.timeScale / (double) time.timeValue); + } + + CFStringRef format = CGDisplayModeCopyPixelEncoding(mode); + + if (CFStringCompare(format, CFSTR(IO16BitDirectPixels), 0) == 0) + { + result.redBits = 5; + result.greenBits = 5; + result.blueBits = 5; + } + else + { + result.redBits = 8; + result.greenBits = 8; + result.blueBits = 8; + } + + CFRelease(format); + return result; +} + +// Starts reservation for display fading +// +static CGDisplayFadeReservationToken beginFadeReservation(void) +{ + CGDisplayFadeReservationToken token = kCGDisplayFadeReservationInvalidToken; + + if (CGAcquireDisplayFadeReservation(5, &token) == kCGErrorSuccess) + CGDisplayFade(token, 0.3, kCGDisplayBlendNormal, kCGDisplayBlendSolidColor, 0.0, 0.0, 0.0, TRUE); + + return token; +} + +// Ends reservation for display fading +// +static void endFadeReservation(CGDisplayFadeReservationToken token) +{ + if (token != kCGDisplayFadeReservationInvalidToken) + { + CGDisplayFade(token, 0.5, kCGDisplayBlendSolidColor, kCGDisplayBlendNormal, 0.0, 0.0, 0.0, FALSE); + CGReleaseDisplayFadeReservation(token); + } +} + + +////////////////////////////////////////////////////////////////////////// +////// GLFW internal API ////// +////////////////////////////////////////////////////////////////////////// + +// Change the current video mode +// +GLFWbool _glfwSetVideoModeNS(_GLFWmonitor* monitor, const GLFWvidmode* desired) +{ + CFArrayRef modes; + CFIndex count, i; + CVDisplayLinkRef link; + CGDisplayModeRef native = NULL; + GLFWvidmode current; + const GLFWvidmode* best; + + best = _glfwChooseVideoMode(monitor, desired); + _glfwPlatformGetVideoMode(monitor, ¤t); + if (_glfwCompareVideoModes(¤t, best) == 0) + return GLFW_TRUE; + + CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link); + + modes = CGDisplayCopyAllDisplayModes(monitor->ns.displayID, NULL); + count = CFArrayGetCount(modes); + + for (i = 0; i < count; i++) + { + CGDisplayModeRef dm = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, i); + if (!modeIsGood(dm)) + continue; + + const GLFWvidmode mode = vidmodeFromCGDisplayMode(dm, link); + if (_glfwCompareVideoModes(best, &mode) == 0) + { + native = dm; + break; + } + } + + if (native) + { + if (monitor->ns.previousMode == NULL) + monitor->ns.previousMode = CGDisplayCopyDisplayMode(monitor->ns.displayID); + + CGDisplayFadeReservationToken token = beginFadeReservation(); + CGDisplaySetDisplayMode(monitor->ns.displayID, native, NULL); + endFadeReservation(token); + } + + CFRelease(modes); + CVDisplayLinkRelease(link); + + if (!native) + { + _glfwInputError(GLFW_PLATFORM_ERROR, + "Cocoa: Monitor mode list changed"); + return GLFW_FALSE; + } + + return GLFW_TRUE; +} + +// Restore the previously saved (original) video mode +// +void _glfwRestoreVideoModeNS(_GLFWmonitor* monitor) +{ + if (monitor->ns.previousMode) + { + CGDisplayFadeReservationToken token = beginFadeReservation(); + CGDisplaySetDisplayMode(monitor->ns.displayID, + monitor->ns.previousMode, NULL); + endFadeReservation(token); + + CGDisplayModeRelease(monitor->ns.previousMode); + monitor->ns.previousMode = NULL; + } +} + + +////////////////////////////////////////////////////////////////////////// +////// GLFW platform API ////// +////////////////////////////////////////////////////////////////////////// + +_GLFWmonitor** _glfwPlatformGetMonitors(int* count) +{ + uint32_t i, found = 0, displayCount; + _GLFWmonitor** monitors; + CGDirectDisplayID* displays; + + *count = 0; + + CGGetOnlineDisplayList(0, NULL, &displayCount); + displays = calloc(displayCount, sizeof(CGDirectDisplayID)); + monitors = calloc(displayCount, sizeof(_GLFWmonitor*)); + + CGGetOnlineDisplayList(displayCount, displays, &displayCount); + + for (i = 0; i < displayCount; i++) + { + _GLFWmonitor* monitor; + + if (CGDisplayIsAsleep(displays[i])) + continue; + + const CGSize size = CGDisplayScreenSize(displays[i]); + char* name = getDisplayName(displays[i]); + + monitor = _glfwAllocMonitor(name, size.width, size.height); + monitor->ns.displayID = displays[i]; + monitor->ns.unitNumber = CGDisplayUnitNumber(displays[i]); + + free(name); + + found++; + monitors[found - 1] = monitor; + } + + free(displays); + + *count = found; + return monitors; +} + +GLFWbool _glfwPlatformIsSameMonitor(_GLFWmonitor* first, _GLFWmonitor* second) +{ + // HACK: Compare unit numbers instead of display IDs to work around display + // replacement on machines with automatic graphics switching + return first->ns.unitNumber == second->ns.unitNumber; +} + +void _glfwPlatformGetMonitorPos(_GLFWmonitor* monitor, int* xpos, int* ypos) +{ + const CGRect bounds = CGDisplayBounds(monitor->ns.displayID); + + if (xpos) + *xpos = (int) bounds.origin.x; + if (ypos) + *ypos = (int) bounds.origin.y; +} + +GLFWvidmode* _glfwPlatformGetVideoModes(_GLFWmonitor* monitor, int* count) +{ + CFArrayRef modes; + CFIndex found, i, j; + GLFWvidmode* result; + CVDisplayLinkRef link; + + *count = 0; + + CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link); + + modes = CGDisplayCopyAllDisplayModes(monitor->ns.displayID, NULL); + found = CFArrayGetCount(modes); + result = calloc(found, sizeof(GLFWvidmode)); + + for (i = 0; i < found; i++) + { + CGDisplayModeRef dm = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, i); + if (!modeIsGood(dm)) + continue; + + const GLFWvidmode mode = vidmodeFromCGDisplayMode(dm, link); + + for (j = 0; j < *count; j++) + { + if (_glfwCompareVideoModes(result + j, &mode) == 0) + break; + } + + // Skip duplicate modes + if (i < *count) + continue; + + (*count)++; + result[*count - 1] = mode; + } + + CFRelease(modes); + CVDisplayLinkRelease(link); + return result; +} + +void _glfwPlatformGetVideoMode(_GLFWmonitor* monitor, GLFWvidmode *mode) +{ + CGDisplayModeRef displayMode; + CVDisplayLinkRef link; + + CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link); + + displayMode = CGDisplayCopyDisplayMode(monitor->ns.displayID); + *mode = vidmodeFromCGDisplayMode(displayMode, link); + CGDisplayModeRelease(displayMode); + + CVDisplayLinkRelease(link); +} + +void _glfwPlatformGetGammaRamp(_GLFWmonitor* monitor, GLFWgammaramp* ramp) +{ + uint32_t i, size = CGDisplayGammaTableCapacity(monitor->ns.displayID); + CGGammaValue* values = calloc(size * 3, sizeof(CGGammaValue)); + + CGGetDisplayTransferByTable(monitor->ns.displayID, + size, + values, + values + size, + values + size * 2, + &size); + + _glfwAllocGammaArrays(ramp, size); + + for (i = 0; i < size; i++) + { + ramp->red[i] = (unsigned short) (values[i] * 65535); + ramp->green[i] = (unsigned short) (values[i + size] * 65535); + ramp->blue[i] = (unsigned short) (values[i + size * 2] * 65535); + } + + free(values); +} + +void _glfwPlatformSetGammaRamp(_GLFWmonitor* monitor, const GLFWgammaramp* ramp) +{ + int i; + CGGammaValue* values = calloc(ramp->size * 3, sizeof(CGGammaValue)); + + for (i = 0; i < ramp->size; i++) + { + values[i] = ramp->red[i] / 65535.f; + values[i + ramp->size] = ramp->green[i] / 65535.f; + values[i + ramp->size * 2] = ramp->blue[i] / 65535.f; + } + + CGSetDisplayTransferByTable(monitor->ns.displayID, + ramp->size, + values, + values + ramp->size, + values + ramp->size * 2); + + free(values); +} + + +////////////////////////////////////////////////////////////////////////// +////// GLFW native API ////// +////////////////////////////////////////////////////////////////////////// + +GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* handle) +{ + _GLFWmonitor* monitor = (_GLFWmonitor*) handle; + _GLFW_REQUIRE_INIT_OR_RETURN(kCGNullDirectDisplay); + return monitor->ns.displayID; +} + diff --git a/samples/Python/spec.linux.spec b/samples/Python/spec.linux.spec new file mode 100644 index 00000000..c5806cd3 --- /dev/null +++ b/samples/Python/spec.linux.spec @@ -0,0 +1,22 @@ +a = Analysis(['portablizer.pyqt4.py'], + hiddenimports=[], + hookspath=None, + runtime_hooks=None) +pyz = PYZ(a.pure) +exe = EXE(pyz, + a.scripts, + exclude_binaries=True, + name='Portablizer', + debug=False, + strip=None, + upx=True, + console=False) +node = Tree('node', prefix='node') +collect = COLLECT(exe, + a.binaries, + a.zipfiles, + a.datas, + node, + strip=None, + upx=True, + name='Portablizer') diff --git a/samples/RPM Spec/apache.spec b/samples/RPM Spec/apache.spec new file mode 100644 index 00000000..6e34ba98 --- /dev/null +++ b/samples/RPM Spec/apache.spec @@ -0,0 +1,673 @@ +%define _prefix /usr/local +%define _mandir /usr/local/man +%define _sysconfdir /etc + +%define apache_ver 1.3.42 +%define mod_ssl_ver 2.8.31 +%define mod_perl_ver 1.31 +%define libapreq_ver 1.34 + + +%define aname apache +%define pname httpd13 +%define contentdir %{_var}/www +%define suexec_caller apache + +Summary: The 1.x Apache webserver (with static mod_perl, mod_ssl) +Name: apache +Version: %{apache_ver} +Release: 4%{?dist} +License: Apache Software License 2.0 +URL: http://httpd.apache.org/ +Group: System Environment/Daemons + +Requires: initscripts >= 3.25 +Requires: openssl >= 0.9.6 + +BuildRequires: openssl-devel mm-devel krb5-devel pkgconfig +BuildRequires: perl-ExtUtils-MakeMaker perl-libwww-perl perl-HTML-Parser perl-ExtUtils-Embed +BuildRequires: gdbm-devel flex +Requires: /sbin/chkconfig /bin/mktemp /usr/sbin/useradd +Requires: findutils procps + +Provides: webserver +Provides: mod_perl = %{mod_perl_ver} +Provides: perl(mod_perl) = %{mod_perl_ver} +Provides: mod_ssl = %{mod_ssl_ver} +Provides: apache = %{apache_ver} + +Source0: http://httpd.apache.org/dist/apache_%{apache_ver}.tar.bz2 +Source1: http://www.modssl.org/source/mod_ssl-%{mod_ssl_ver}-%{apache_ver}.tar.gz +Source2: http://perl.apache.org/dist/mod_perl-%{mod_perl_ver}.tar.gz +Source3: httpd.init +Source4: apache.logrotate +Source5: SSL-Certificate-Creation +Source6: ftp://ftp.cpan.org/authors/id/J/JO/JOESUF/libapreq-%{libapreq_ver}.tar.gz + +Patch0: sslcfg.patch +Patch1: apache_1.3.39-config.patch +Patch3: apache_1.3.39-Makefile.patch +Patch5: apache_1.3.20-apachectl-init.patch +Patch11: mod_ssl-2.8.4-openssl.patch +Patch12: apache_1.3.42-db.patch +Patch13: apache-1.3.39-gcc44.patch +Patch14: mod_ssl-2.8.31-STACK.patch +Patch15: apache_1.3.39-ap_getline.patch +Patch16: mod_ssl-openssl-x86_64.patch +Patch17: mp1+perl5.14.diff +Patch18: apache_1.3.42-64bits.patch + + +%description +This package contains a powerful, full-featured, efficient, and +freely-available Web server based on work done by the Apache Software +Foundation. It is also the most popular Web server on the Internet. + +------------------------------------------------------------------------------ +This package is a custom release containing the httpd server (v%{apache_ver}) +bundled with: mod_perl v.%{mod_ssl_ver}, +and mod_ssl v%{mod_ssl_ver}, all BUILT-IN. +------------------------------------------------------------------------------ + + The Apache/Perl integration project brings together the full power +of the Perl programming language and the Apache HTTP server. + With mod_perl it is possible to write Apache modules entirely in Perl. +In addition, the persistent interpreter embedded in the server avoids the +overhead of starting an external interpreter and the penalty of Perl +start-up time. + Mod_SSL provides strong cryptography for the Apache 1.3 webserver +via the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security +(TLSv1) protocols by the help of the Open Source SSL/TLS toolkit OpenSSL. + + +%package devel +Group: Development/Libraries +Summary: Module development tools for apache-mod_ssl +Provides: eapi = %{mod_ssl_ver} +Requires: %{name} = %{version} +Provides: mod_perl-devel = %{mod_perl_ver} +Provides: mod_ssl-devel = %{mod_ssl_ver} +Provides: apache-devel = %{apache_ver} + +%description devel +The apache-devel package contains the APXS binary and other files +that you need to build Dynamic Shared Objects (DSOs) for Apache. +If you are installing the Apache Web server and you want to be able +to compile or develop additional modules for Apache, you need to install +this package. + + +%package manual +Group: Documentation +Summary: Documentation for the Apache Web server + +%description manual +The apache-manual package contains the complete manual and reference +guide for the Apache Web server. +It also contains the basic web content (icons, default welcome messages, +etc) provided with Apache's HTTPD distribution. + + +%prep +%setup -q -c -T -n %{name}-%{version} -a 0 +%setup -q -c -T -D -n %{name}-%{version} -a 1 +%setup -q -c -T -D -n %{name}-%{version} -a 2 +%setup -q -c -T -D -n %{name}-%{version} -a 6 + +pushd %{aname}_%{apache_ver} +%patch0 -p0 -b .sslcfg +%patch1 -p1 -b .config +%patch3 -p0 -b .make +%patch5 -p1 -b .apachectl-init +%ifarch x86_64 +%patch18 -p1 -b .apache-x86_64 +%endif + +#patch12 -p1 -b .dbmdb +%patch13 -p1 -b .compile +%patch15 -p0 -b .ap_getline + + +patch -p0 < ../libapreq-%{libapreq_ver}/patches/apache-1.3+apreq.patch +cp ../libapreq-%{libapreq_ver}/c/*.[ch] src/lib/apreq/ +popd + +pushd mod_ssl-%{mod_ssl_ver}-%{apache_ver} +%patch11 -p1 -b .openssl +%patch14 -p0 -b .stack +%ifarch x86_64 +%patch16 -p1 -b .openssl-x86_64 +%endif +popd + +pushd mod_perl-%{mod_perl_ver} +%patch17 -p1 -b .mp1+perl5.14.diff +popd + +# Substitute values to match the configuration. The first two are +# for the default httpd.conf file, the rest is for the mod_ssl +# additions. +pushd %{aname}_%{apache_ver} +sed -e 's,@@ServerRoot@@,%{_sysconfdir}/%{pname},g' \ + -e 's,@@ContentRoot@@,%{contentdir},g' \ + -e 's,^DocumentRoot "@@ContentRoot@@",#DocumentRoot "%{_sysconfdir}/%{pname}/htdocs",g' \ + -e 's,^,,g' \ + -e 's,^ServerName new.host.name,#ServerName new.host.name,g' \ + -e 's,^ServerAdmin you@your.address,#ServerAdmin you@your.address,g' \ + -e 's,^SSLCipherSuite,#SSLCipherSuite,g' \ + -e 's,^SSLLogLevel info,SSLLogLevel error,g' \ + -e 's,^SSLSessionCache dbm:logs/ssl_scache,SSLSessionCache shm:logs/ssl_scache(512000),g' \ + conf/httpd.conf-dist > conf/httpd.conf +popd + +cp %{SOURCE5} . + +#cp %{_tmppath}/rpm-tmp* /tmp/01prep.sh + +%build +export CFLAGS="$RPM_OPT_FLAGS -fPIC $(pkg-config --cflags openssl)" +export LIBS="-lpthread" +export EAPI_MM=SYSTEM + +############################################### +echo mod_perl ... +pushd mod_perl-%{mod_perl_ver} + perl Makefile.PL CCFLAGS="$RPM_OPT_FLAGS -fPIC" \ + APACHE_SRC=../%{aname}_%{apache_ver}/src \ + DO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1 + make %{?_smp_mflags} + ## put mod_perl docs in a safe place ;-]~ + mkdir mod_perl-doc + cp -a eg/ faq/ mod_perl-doc/ + cp {CREDITS,LICENSE,README,SUPPORT,STATUS,Changes,INSTALL*} mod_perl-doc/ + cp *.{pod,html,gif} mod_perl-doc/ + find mod_perl-doc -type f -exec chmod 644 {} \; +popd + +############################################### +echo mod_ssl ... +export SSL_COMPAT=yes +export SSL_EXPERIMENTAL=yes +pushd mod_ssl-%{mod_ssl_ver}-%{apache_ver} + ./configure --with-apache=../apache_%{apache_ver} \ + --with-mm=SYSTEM --force +popd + +############################################### +echo apache ... +pushd %{aname}_%{apache_ver} + ./configure \ + --prefix=%{_prefix} \ + --exec-prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --sbindir=%{_sbindir} \ + --mandir=%{_mandir} \ + --sysconfdir=%{_sysconfdir}/%{pname}/conf \ + --libexecdir=%{_libdir}/apache \ + --datadir=%{contentdir} \ + --iconsdir=%{contentdir}/icons \ + --htdocsdir=%{contentdir}/html \ + --manualdir=%{contentdir}/html/manual \ + --cgidir=%{contentdir}/cgi-bin \ + --localstatedir=%{_localstatedir} \ + --runtimedir=%{_sysconfdir}/%{pname}/run \ + --logfiledir=logs \ + --proxycachedir=%{_localstatedir}/cache/%{pname} \ + --with-perl=%{__perl} \ + --enable-rule=EAPI \ + --enable-rule=SSL_COMPAT \ + --enable-rule=SSL_EXPERIMENTAL \ + --disable-rule=SSL_VENDOR \ + --disable-rule=WANTHSREGEX \ + --disable-rule=EXPAT \ + %{?_with_backtrace:--activate-module=src/modules/experimental/mod_backtrace.c} \ + %{?_with_whatkilledus:--activate-module=src/modules/experimental/mod_whatkilledus.c} \ + --activate-module=src/modules/perl/libperl.a \ + --enable-module=auth_dbm \ + --enable-module=ssl \ + --enable-module=all \ + --enable-shared=max \ + --disable-shared=perl \ + --disable-shared=ssl \ + --disable-module=example \ + --disable-module=auth_db \ + --without-execstrip \ + %{?_with_suexec:--enable-suexec --suexec-docroot=%{contentdir}} \ + %{?_with_suexec:--suexec-uidmin=300 --suexec-gidmin=300} \ + %{?_with_suexec:--suexec-umask=022 --suexec-caller=%{suexec_caller}} + + make %{?_smp_mflags} + +popd +#cp %{_tmppath}/rpm-tmp* /tmp/02build.sh + +%install +############################################################################### +### install basic apache stuff +pushd apache_%{apache_ver} + make install root="$RPM_BUILD_ROOT" +popd + +### rename +mv $RPM_BUILD_ROOT%{_sbindir}/httpd $RPM_BUILD_ROOT%{_sbindir}/%{pname} + +### install SYSV init stuff +mkdir -p $RPM_BUILD_ROOT%{_initrddir} +install -m755 %{SOURCE3} $RPM_BUILD_ROOT%{_initrddir}/%{pname} + +### install log rotation stuff +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d +install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/apache + +### default rootdir links +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/%{pname} +pushd $RPM_BUILD_ROOT%{_sysconfdir}/%{pname} + ln -s %{_localstatedir}/log/%{pname} logs + ln -s %{_libdir}/%{aname} modules + ln -s %{_localstatedir}/run run +popd + +### replace Apache's default config file with our patched version +install -m644 apache_%{apache_ver}/conf/httpd.conf \ + $RPM_BUILD_ROOT%{_sysconfdir}/%{pname}/conf/httpd.conf + +# fix up apxs so that it doesn't think it's in the build root +perl -pi -e "s^$RPM_BUILD_ROOT^^g" $RPM_BUILD_ROOT%{_sbindir}/apxs + +# fixup the documentation file naming +find $RPM_BUILD_ROOT%{contentdir} -name "*.html.html" | xargs rename .html.html .html + +############################################################################### +### install mod_perl files +pushd mod_perl-%{mod_perl_ver} + export PERL_INSTALL_ROOT=$RPM_BUILD_ROOT + make pure_install PREFIX=/usr INSTALLDIRS=vendor + + # convert man pages to UTF-8 + recode() { + iconv -f "$2" -t utf-8 < "$1" > "${1}_" + %{__mv} -f "${1}_" "$1" + } + pushd $RPM_BUILD_ROOT/usr/share/man/man3/ + for i in * ; do + recode "${i}" iso-8859-1 + done + popd + + # fix files mod + find $RPM_BUILD_ROOT%{perl_vendorarch} -iname '*.pm' -exec chmod 0644 {} \; + + # bake web docs... + mkdir -p $RPM_BUILD_ROOT%{contentdir}/html/manual/mod/mod_perl + install -c -m 644 htdocs/manual/mod/mod_perl.html \ + $RPM_BUILD_ROOT%{contentdir}/html/manual/mod/mod_perl/ + make -C faq + rm -f faq/pod2htm* + install -m644 faq/*.html \ + $RPM_BUILD_ROOT%{contentdir}/html/manual/mod/mod_perl/ + +popd + +# remove special perl files this is specific for rpms , already have in own .packlist +find $RPM_BUILD_ROOT%{perl_vendorarch}/.. -name perllocal.pod -o -name .packlist \ + -o -name '*.bs' | xargs -r -i rm -f {} + +### ssl leftovers +# point to the right makefile. +ln -sf ../../../etc/pki/tls/certs/Makefile $RPM_BUILD_ROOT%{_sysconfdir}/%{pname}/conf +# create a prototype session cache +touch $RPM_BUILD_ROOT%{_localstatedir}/cache/ssl_gcache_data.{dir,pag,sem} + +# drop shellbang from .exp files +for exp in $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Apache/mod_perl.exp $RPM_BUILD_ROOT%{_libdir}/%{aname}/httpd.exp +do + sed -i '/^#!/ d' $exp +done + +#cp %{_tmppath}/rpm-tmp* /tmp/03install.sh + +%post +/sbin/chkconfig --add %{pname} +/sbin/ldconfig + +# safely build a test certificate +umask 077 +if [ ! -f %{_sysconfdir}/%{pname}/conf/ssl.key/server.key ] ; then +openssl genrsa -rand /proc/apm:/proc/cpuinfo:/proc/dma:/proc/filesystems:/proc/interrupts:/proc/ioports:/proc/pci:/proc/rtc:/proc/uptime 1024 > %{_sysconfdir}/%{pname}/conf/ssl.key/server.key 2> /dev/null +fi + +if [ ! -f %{_sysconfdir}/%{pname}/conf/ssl.crt/server.crt ] ; then +cat << EOF | openssl req -new -key %{_sysconfdir}/%{pname}/conf/ssl.key/server.key -x509 -days 365 -out %{_sysconfdir}/%{pname}/conf/ssl.crt/server.crt 2>/dev/null +-- +SomeState +SomeCity +SomeOrganization +SomeOrganizationalUnit +localhost.localdomain +root@localhost.localdomain +EOF +fi + +# safely add .htm to mime types if it is not already there +[ -f %{_sysconfdir}/mime.types ] || exit 0 +TEMPTYPES=`/bin/mktemp /tmp/mimetypes.XXXXXX` +[ -z "$TEMPTYPES" ] && { + echo "could not make temporary file, htm not added to %{_sysconfdir}/mime.types" >&2 + exit 1 +} +( grep -v "^text/html" %{_sysconfdir}/mime.types + types=$(grep "^text/html" %{_sysconfdir}/mime.types | cut -f2-) + echo -en "text/html\t\t\t" + for val in $types ; do + if [ "$val" = "htm" ] ; then + continue + fi + echo -n "$val " + done + echo "htm" +) > $TEMPTYPES +cat $TEMPTYPES > %{_sysconfdir}/mime.types && /bin/rm -f $TEMPTYPES + +cp %{_tmppath}/rpm-tmp* /tmp/04post.sh + +%pre +# Add the "apache" user +/usr/sbin/useradd -c "Apache" -u 48 \ + -s /sbin/nologin -r -d "%{contentdir}" apache 2> /dev/null || : + +%preun +if [ $1 = 0 ]; then + if [ -f /var/lock/subsys/%{pname} ]; then + %{_initrddir}/%{pname} stop + fi + if [ -f %{_initrddir}/%{pname} ]; then + /sbin/chkconfig --del %{pname} + fi +fi + +%files +%defattr(-,root,root) +%dir %{_sysconfdir}/%{pname} +%dir %{_sysconfdir}/%{pname}/conf +%config(noreplace) %{_sysconfdir}/%{pname}/conf/*.conf +%config(noreplace) %{_sysconfdir}/%{pname}/conf/Makefile +%config(noreplace) %{_sysconfdir}/%{pname}/conf/magic +%config(noreplace) %{_sysconfdir}/%{pname}/conf/mime.types +%config(noreplace) %{_sysconfdir}/logrotate.d/* +%config(noreplace) %{_sysconfdir}/%{pname}/conf/ssl.* +%doc %{_sysconfdir}/%{pname}/conf/*.default +%attr(755,root,root) %{_initrddir}/* +%{_sysconfdir}/%{pname}/logs +%{_sysconfdir}/%{pname}/modules +%{_sysconfdir}/%{pname}/run +%{_libdir}/%{aname} +%{perl_vendorarch}/Apache +%{perl_vendorarch}/Bundle +%{perl_vendorarch}/*.pm +%{perl_vendorarch}/*.PL +%dir %{perl_vendorarch}/auto/Apache +%{perl_vendorarch}/auto/Apache/Leak +%{perl_vendorarch}/auto/Apache/Symbol +%{perl_vendorarch}/auto/Apache/mod_perl.exp +%{perl_vendorarch}/auto/Apache/typemap +%attr(0755,root,root) %{_bindir}/* +%attr(0755,root,root) %{_sbindir}/ab +%attr(0755,root,root) %{_sbindir}/apachectl +%attr(0755,root,root) %{_sbindir}/httpd13 +%attr(0755,root,root) %{_sbindir}/logresolve +%attr(0755,root,root) %{_sbindir}/rotatelogs +%{?_with_suexec:%attr(4710,root,%{suexec_caller}) %{_sbindir}/suexec} +%{_mandir}/man1*/* +%{_mandir}/man8/ab.8* +%{_mandir}/man8/apachectl.8* +%{_mandir}/man8/httpd.8* +%{_mandir}/man8/logresolve.8* +%{_mandir}/man8/rotatelogs.8* +%{?_with_suexec:%{_mandir}/man8/suexec.8*} +%attr(0755,apache,root) %dir %{_localstatedir}/cache/%{pname} +%attr(0640,apache,root) %{_localstatedir}/cache/ssl_* +%attr(0750,root,apache) %dir %{_localstatedir}/log/%{pname} + + +%files devel +%defattr(-,root,root) +%{_includedir} +%attr(0755,root,root) %{_sbindir}/apxs +%{_mandir}/man8/apxs.8* +%doc %{perl_vendorarch}/*.pod +%{perl_vendorarch}/auto/Apache/include + +%files manual +%defattr(-,root,root) +%doc apache_%{apache_ver}/cgi-bin +%dir %{contentdir} +%dir %{contentdir}/cgi-bin +%config(noreplace) %{contentdir}/cgi-bin/* +%dir %{contentdir}/html +%config(noreplace) %{contentdir}/html/*.html* +%config(noreplace) %{contentdir}/html/*.gif +%dir %{contentdir}/icons +%dir %{contentdir}/icons/small +%config(noreplace) %{contentdir}/icons/*.* +%config(noreplace) %{contentdir}/icons/small/*.* +%doc %{contentdir}/icons/README + +%doc apache_%{apache_ver}/{ABOUT_APACHE,LICENSE*,NOTICE,README*,cgi-bin} +%doc apache_%{apache_ver}/src/{CHANGES,README}* +%doc mod_ssl-%{mod_ssl_ver}-%{apache_ver}/README.* +%doc mod_ssl-%{mod_ssl_ver}-%{apache_ver}/NEWS +%doc mod_perl-%{mod_perl_ver}/mod_perl-doc +%doc SSL-Certificate-Creation + +%doc %{contentdir}/html/manual +%exclude %{contentdir}/html/manual/mod/mod_ssl/ssl_cover.wml +#man3 conflicts with mod_perl2 +/usr/share/man/man3*/* + + +%changelog +* Sun May 13 2012 Sérgio Basto - 1.3.42-4 +- Many improvements on defaults directories +- Separate libapreq in other package, to compile libapreq is need other sources installed. +- more cleanups. + +* Wed Nov 16 2011 Sérgio Basto +- build for F16 +- mp1+perl5.14.diff (mod_perl1 + perl5.14) +- many improvents. + +* Sat Oct 29 2011 Sérgio Basto +- mock build add many buildrequires +- many improvemts on confs + +* Tue Oct 16 2007 Sérgio Basto +- UNDROPPED CONFIGURATION COMPLETELY: rpm it suposed do all alone. +- rename httpd to http13 to work independently of apache 2.2 +- add patch to Makefile.tmp, resolve all problems at once +- change server port number to run out of the box. +- Update link to certs/Makefile. + +* Tue Sep 11 2007 Marius FERARU - 1.3.39-1.n0i.23.MPSSL +- apache 1.3.39 +- mod_ssl 2.8.29 + +* Mon Apr 02 2007 Marius FERARU - 1.3.37-3.n0i.22.MPSSL +- mod_perl 1.30 +- initscript: use a "$pidfile" variable for all operations +- initscript: added a dummy "alias" for "reload" (will do a 'restart'!) +- initscript: added missing "fullstatus" option (will run through "apachectl") +- dropped shellbang from .exp files +- dropped 2 explicit provides (mod_perl and Apache::Constants) + +* Fri Sep 08 2006 Marius FERARU - 1.3.37-2.n0i.21.MPSSL +- BR: gdbm-devel, db4-devel + +* Mon Aug 21 2006 Marius FERARU - 1.3.37-1.n0i.20.MPSSL +- apache 1.3.37 +- mod_ssl 2.8.28 +- Dist macro +- URL update +- updated description +- spec cleanups +- use "--with backtrace" to activate "mod_backtrace" +- use "--with whatkilledus" to activate "mod_whatkilledus" +- use "--with suexec" to activate suexec functionality +- moved default web content into documentation package + +* Tue Jun 06 2006 Marius FERARU - 1.3.36-2.n0i.19.MPSSL +- changed "runtimedir" and "logfiledir" to relative paths, + letting users run apache on their own + +* Tue Jun 06 2006 Marius FERARU - 1.3.36-1.n0i.19.MPSSL +- apache 1.3.36 +- mod_ssl version 2.8.27 +- spec cleanups + +* Mon Mar 13 2006 Marius FERARU - 1.3.34-2.n0i.18.MPSSL +- rebuild + +* Thu Nov 24 2005 Marius FERARU 1.3.34-1.n0i.17.MPSSL +- apache 1.3.34 +- mod_ssl version 2.8.25 + +* Tue Sep 20 2005 Marius FERARU 1.3.33-5.n0i.16.MPSSL +- mod_ssl version 2.8.24 + +* Fri Sep 02 2005 Marius FERARU 1.3.33-4.n0i.15.MPSSL +- rebuild +- dropped more requirements (which Fedora considers to "always have") + +* Sat Jul 23 2005 Marius FERARU 1.3.33-3.n0i.14.MPSSL +- dropped Epoch +- changed Summary and Description +- rebuild (perl 5.8.7) + +* Tue Jan 04 2005 Marius FERARU 1.3.33-2.n0i.13.MPSSL +- libapreq version 1.33 + +* Mon Dec 06 2004 Marius FERARU 1.3.33-1.n0i.12.MPSSL +- apache version 1.3.33 +- mod_ssl version 2.8.22 +- description update + +* Tue Aug 17 2004 Marius FERARU 1.3.31-5.n0i.11.MPSSL +- mod_ssl version 2.8.19 + +* Thu Jul 15 2004 Marius FERARU 1.3.31-4.n0i.10.MPSSL +- mod_ssl version 2.8.18 + +* Tue Jul 13 2004 Marius FERARU 1.3.31-3.n0i.9.MPSSL +- tweaked rotatelog's build: drop linking with apache libs + +* Tue Jul 13 2004 Marius FERARU 1.3.31-2.n0i.8.MPSSL +- applied some fixing patches from current CVS version + +* Thu May 13 2004 Marius FERARU 1.3.31-1.n0i.7.MPSSL +- apache version 1.3.31 +- mod_ssl version 2.8.17 +- updated apxs patch +- slight spec tweaks +- enabled backtrace experimental module +- updated config patch + +* Fri Apr 30 2004 Marius Feraru 1.3.29-6.n0i.6.MPSSL +- automatic rebuild + +* Thu Apr 22 2004 Marius FERARU 1.3.29-5.n0i.5.MPSSL +- rebuild (perl 5.8.4) + +* Tue Feb 10 2004 Marius FERARU 1.3.29-4.n0i.4.MPSSL +- fixed the shameful bugs from my httpd.init script + +* Fri Jan 23 2004 Marius FERARU 1.3.29-3.n0i.3.MPSSL +- rebuild (perl 5.8.3) + +* Fri Jan 16 2004 Marius FERARU 1.3.29-2.n0i.2.MPSSL +- rebuilt on perl 5.8.2 / Fedora 1 Devel (tobe FC2) +- finally clearly enabled modperl.c in apache_1.3.23-config.patch +as many helpless people seem to use this dumb default configuration file :( +- also updated the same patch to properly define SSL too :) +- added a lame "MPSSL" extra tag in release to make people understand this +is a !SPECIAL! apache + mod_perl + mod_ssl + libapreq package suite!!! +- updated init script to do "real" server shutdown (in squid style) and to NOT +shutdown all the apache servers, just the one started with /var/run/httpd.pid +- added USE_MODULEARGS=[yes/no] and SHUTDOWN_TIMEOUT=[seconds] configuration +parameters to init script + +* Thu Nov 13 2003 Marius FERARU 1.3.29-1.n0i.1 +- apache 1.3.29 +- modssl 2.8.16 +- dropped zombie patch +- dropped fderr patch +- dropped for good thttpd conflict note as THERE IS NO CONFLICT!!! In fact +we really use them both for long time without a problem :)) +- added more Prereq stuff +- more Fedora style spec updates + +* Thu Oct 16 2003 Marius FERARU 1.3.28-2.n0i +- mod_perl 1.29 +- libapreq 1.3 +- replaced ALL direct 'etc' occurences to macros (some for other stuff) +- perl %%files are now more properly quested. +- switched krb5-config to pkg-config +- switched textutils to coreutils +- using mm 1.3 +- disabled internal expat linking +- added the 'zombie' patch +- added the 'file descriptors are erroneously closed' patch + +* Mon Jul 28 2003 Marius FERARU 1.3.28-1.n0i +- mod_perl 1.28 +- added builtin libapreq + +* Fri Jul 25 2003 Marius FERARU 1.3.28-0.n0i +- apache version 1.3.28 +- mod_ssl version 2.8.15 +- switched the old dbm-gdbm patch with a more elegant one (apache_1.3.27-db); +yet, more tests are to be done on other systems before dropping the old one +from our src.rpm +- disabled suexec SSL env support patch as Apache ppl changed their code heavily +and I do not yet have time to update this patch +- moved mod_perl header files into apache-devel (are they needed by someone?!) +- dropped using RPM_SOURCE_DIR/ stuff. +- disabled auth_db module (db4 API changes?!) + +* Mon Apr 21 2003 Marius FERARU 1.3.27-2.n0i +- automatic rebuild on RHL9 + +* Wed Mar 26 2003 Marius FERARU 1.3.27-1.n0i +- mod_ssl version 2.8.14 +- dropped thttpd conflict note as THERE IS NO CONFLICT!!! In fact we really +use them both :)) + +* Fri Oct 18 2002 Marius Feraru +- apache version 1.3.27 +- mod_ssl version 2.8.11 +- eliminated db4 patch +- disabled thttpd conflict flag + +* Tue Sep 24 2002 Marius Feraru +- automatic rebuild (to conform with the openssl update) + +* Wed Sep 4 2002 Marius Feraru +- some spec cleanups (rpm 4.1.x compatibility) + +* Tue Jul 23 2002 Marius FERARU +- apache 1.3.26 +- mod_perl 1.27 +- mod_ssl 2.8.10 +- lots of new tweaks to the spec file (hopefully it will be easier now for others to +rebuild this package =] ) + + +* Sat Sep 1 2001 Marius FERARU +- updated apache to 1.3.22 +- reparsed and tweaked all RedHat patches +- lots of spec file tweaks: optimisations, + file location/integration/modes fixes... + +* Sat Sep 1 2001 Marius FERARU +- updated mod_perl to version 1.26 +- based on apache-1.3.20-15.src.rpm from Red Hat RawHide +- used apache_modperl-1.3.19-1.24-1.src.rpm from + perl.apache.org as example spec. diff --git a/samples/RPM Spec/erlang-erlydtl.spec b/samples/RPM Spec/erlang-erlydtl.spec new file mode 100644 index 00000000..eea3fb2b --- /dev/null +++ b/samples/RPM Spec/erlang-erlydtl.spec @@ -0,0 +1,62 @@ +%global debug_package %{nil} + +Name: erlang-erlydtl +Version: 0.6.0 +Release: 1%{?dist} +Summary: Erlang implementation of the Django Template Language. + +Group: Development/Libraries +License: MIT +URL: http://code.google.com/p/erlydtl/ +Source0: http://erlydtl.googlecode.com/files/erlydtl-0.6.0.tar.gz +Patch0: erlang-erlydtl-0.6.0-tests.patch +Patch1: erlang-erlydtl-0.6.0-r14a.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +Provides: ErlyDTL = %{version}-%{release} +BuildRequires: erlang +Requires: erlang + +%description +ErlyDTL is an Erlang implementation of the Django Template Language. The +erlydtl module compiles Django Template source code into Erlang bytecode. The +compiled template has a "render" function that takes a list of variables and +returns a fully rendered document + +%prep +%setup -q -n erlydtl-%{version} +find examples/ -type f -executable -exec chmod -x {} \; + +%patch0 -p0 +%patch1 -p0 + +%build +make %{?_smp_mflags} + +%check +make test + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/%{_libdir}/erlang/lib/erlydtl-%{version}/ +cp -r ebin %{buildroot}/%{_libdir}/erlang/lib/erlydtl-%{version}/ +cp -r bin %{buildroot}/%{_libdir}/erlang/lib/erlydtl-%{version}/ +cp -r priv %{buildroot}/%{_libdir}/erlang/lib/erlydtl-%{version}/ + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%dir %{_libdir}/erlang/lib/erlydtl-%{version} +%{_libdir}/erlang/lib/erlydtl-%{version}/* +%doc README +%doc examples + + +%changelog +* Sun Aug 1 2010 Ilia Cheishvili - 0.6.0-1 +- Initial Package diff --git a/samples/RPM Spec/manos.spec b/samples/RPM Spec/manos.spec new file mode 100644 index 00000000..5674d3ce --- /dev/null +++ b/samples/RPM Spec/manos.spec @@ -0,0 +1,46 @@ +# +# spec file for package manos +# +# Copyright (c) 2010 Jackson Harper (jackson@novell.com) +# +# + +Name: manos-devel +Version: 0.1.1 +Release: 1 +License: MIT/X11 +BuildRoot: %{_tmppath}/manos-%{version}-build +BuildRequires: mono-devel >= 2.6 +BuildRequires: mono-nunit >= 2.6 +Source0: manos-%{version}.tar.bz2 +Source1: rpmlintrc +Summary: The Manos Web Application Framework +Group: Development/Web/Servers +BuildArch: noarch + +%description +Manos is an easy to use, easy to test, high performance web application framework that stays out of your way and makes your life ridiculously simple. + +%files +%defattr(-, root, root) +%{_prefix}/lib/manos +%{_bindir}/manos +%{_datadir}/manos +%{_prefix}/lib/pkgconfig/manos.pc +%{_datadir}/man/man1/manos.1.gz + +%prep +%setup -q -n manos-%{version} + + +%build +./configure --prefix=%{buildroot}%{_prefix} --install-prefix=%{_prefix} +make + +%install +make install + +%clean +rm -rf %{buildroot} + +%changelog \ No newline at end of file diff --git a/samples/Ruby/any.spec b/samples/Ruby/any.spec new file mode 100644 index 00000000..50188314 --- /dev/null +++ b/samples/Ruby/any.spec @@ -0,0 +1,44 @@ +require File.dirname(File.expand_path(__FILE__)) + '/../spec_helper' + +describe Spira::Types::Any do + + before :all do + @uri = RDF::URI('http://example.org') + end + + # this spec is going to be necessarily loose. The 'Any' type is defined to + # use RDF.rb's automatic RDF Literal boxing and unboxing, which may or may + # not change between verions. + # + context "when serializing" do + it "should serialize literals to RDF Literals" do + serialized = Spira::Types::Any.serialize(15) + serialized.should be_a RDF::Literal + serialized = Spira::Types::Any.serialize("test") + serialized.should be_a RDF::Literal + end + + it "should keep RDF::URIs as URIs" do + Spira::Types::Any.serialize(@uri).should == @uri + end + + it "should fail to serialize collections" do + lambda { Spira::Types::Any.serialize([]) }.should raise_error TypeError + end + end + + context "when unserializing" do + it "should unserialize to ruby types" do + value = Spira::Types::Any.unserialize(RDF::Literal.new(5, :datatype => RDF::XSD.integer)) + value.should == 5 + value = Spira::Types::Any.unserialize(RDF::Literal.new("a string")) + value.should == "a string" + end + + it "should unserialize URIs to URIs" do + Spira::Types::Any.unserialize(@uri).should == @uri + end + end + + +end diff --git a/samples/XML/HITSP_C32.sch b/samples/XML/HITSP_C32.sch new file mode 100644 index 00000000..62750fdd --- /dev/null +++ b/samples/XML/HITSP_C32.sch @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + +]> + + + HITSP_C32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &ent-2.16.840.1.113883.3.88.11.32.1; + + + + + &ent-2.16.840.1.113883.3.88.11.32.2; + + + + + &ent-2.16.840.1.113883.3.88.11.32.3; + + + + + &ent-2.16.840.1.113883.3.88.11.32.4; + + + + + &ent-2.16.840.1.113883.3.88.11.32.5; + + + + + &ent-2.16.840.1.113883.3.88.11.32.6; + + + + + &ent-2.16.840.1.113883.3.88.11.32.7; + + + + + &ent-2.16.840.1.113883.3.88.11.32.8; + + + + + &ent-2.16.840.1.113883.3.88.11.32.9; + + + + + &ent-2.16.840.1.113883.3.88.11.32.10; + + + + + &ent-2.16.840.1.113883.3.88.11.32.11; + + + + + &ent-2.16.840.1.113883.3.88.11.32.12; + + + + + &ent-2.16.840.1.113883.3.88.11.32.13; + + + + + &ent-2.16.840.1.113883.3.88.11.32.14; + + + + + &ent-2.16.840.1.113883.3.88.11.32.15; + + + + + &ent-2.16.840.1.113883.3.88.11.32.16; + + + + + &ent-2.16.840.1.113883.3.88.11.32.17; + + diff --git a/samples/XML/namespace-strict.sch b/samples/XML/namespace-strict.sch new file mode 100644 index 00000000..f55a5143 --- /dev/null +++ b/samples/XML/namespace-strict.sch @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + > + + + + + + + + + + + + + Unrecognized namespace prefix: + + + + Unrecognized namespace URI: + + + + + + Prefix + assigned incorrectly: + + + + + + + Namespace may not be declared here. + + + Namespace may not be undeclared here. + + + + + + + + + + \ No newline at end of file diff --git a/samples/XML/oasis-table.sch b/samples/XML/oasis-table.sch new file mode 100644 index 00000000..c947aeb2 --- /dev/null +++ b/samples/XML/oasis-table.sch @@ -0,0 +1,151 @@ + + + + + + + + + OASIS/CALS table validation + + + + + + + + + + + + + + + + tgroup/@cols is not given + @cols should be a natural number + (integer greater than zero). + The tgroup has + colspec, + but its @cols is given as ''. + tgroup/@cols is given as + , but all rows have entr. + + Without assigning @char or @charoff to everything, + assigning @align='char' to tgroup only aligns contents to right of center. + + + + + Malformed @colwidth. + @colwidth unit + () is not consistent with the + units on other colspecs. + + @colwidth must be positive + The same unit of measure should be used on every + colspec/@colwidth. + + @colnum + '' does not correspond to + the column's actual number () + The same @colname is assigned to more than + one colspec. + @align='char', but no @char is given. + @char is given, but alignment is not 'char'. + @charoff is given, but alignment is not 'char'. + + + + + + + + The row doesn't have enough entries ( + expected; + given). + + + + + No colspec is + named . + Entry's end + column () must follow its start column + (). + No colspec is + named . + No colspec is + named . + Entry is assigned an end + column () but not a start column. + Entry is assigned to column , + so it can't start at column . + + + + Entry must be assigned to a free column (after its preceding entries). + + + This entry doesn't fit into + its . + + + A row in which this entry appears has too many entries. + + + + Entry does not fit in row. ( are allowed; entry + is in column .) + + + + @char is given, but alignment is not 'char'. + @charoff is given, but alignment is not 'char'. + @charoff must be a whole number between 0 and 100. + + Entry is designated for character alignment, but no character (@char) is given on it or its colspec. + + + Entry is assigned an alignment character () + different from its column's (). + With @align='char', markup of + entry contents () will be ignored. + + + \ No newline at end of file diff --git a/script/convert-grammars b/script/convert-grammars index ec3287db..2155827f 100755 --- a/script/convert-grammars +++ b/script/convert-grammars @@ -42,7 +42,7 @@ class DirectoryPackage case File.extname(path.downcase) when '.plist' path.split('/')[-2] == 'Syntaxes' - when '.tmlanguage' + when '.tmlanguage', '.yaml-tmlanguage' true when '.cson', '.json' path.split('/')[-2] == 'grammars' @@ -114,7 +114,7 @@ class SVNPackage def fetch(tmp_dir) `svn export -q "#{url}/Syntaxes" "#{tmp_dir}/Syntaxes"` raise "Failed to export SVN repository: #{url}: #{$?.to_s}" unless $?.success? - Dir["#{tmp_dir}/Syntaxes/*.{plist,tmLanguage,tmlanguage}"] + Dir["#{tmp_dir}/Syntaxes/*.{plist,tmLanguage,tmlanguage,YAML-tmLanguage}"] end end @@ -148,6 +148,17 @@ def load_grammar(path) case File.extname(path.downcase) when '.plist', '.tmlanguage' Plist::parse_xml(path) + when '.yaml-tmlanguage' + content = File.read(path) + # Attempt to parse YAML file even if it has a YAML 1.2 header + if content.lines[0] =~ /^%YAML[ :]1\.2/ + content = content.lines[1..-1].join + end + begin + YAML.load(content) + rescue Psych::SyntaxError => e + $stderr.puts "Failed to parse YAML grammar '#{path}'" + end when '.cson' cson = `"#{CSONC}" "#{path}"` raise "Failed to convert CSON grammar '#{path}': #{$?.to_s}" unless $?.success? @@ -169,7 +180,7 @@ def load_grammars(tmp_dir, source, all_scopes) else SingleFile.new(source) end - elsif source.end_with?('.tmLanguage', '.plist') + elsif source.end_with?('.tmLanguage', '.plist', '.YAML-tmLanguage') SingleGrammar.new(source) elsif source.start_with?('https://github.com') GitHubPackage.new(source) @@ -185,7 +196,7 @@ def load_grammars(tmp_dir, source, all_scopes) p.fetch(tmp_dir).map do |path| grammar = load_grammar(path) - scope = grammar['scopeName'] + scope = grammar['scopeName'] || grammar['scope'] if all_scopes.key?(scope) unless all_scopes[scope] == p.url @@ -204,7 +215,7 @@ def install_grammars(grammars, path) installed = [] grammars.each do |grammar| - scope = grammar['scopeName'] + scope = grammar['scopeName'] || grammar['scope'] File.write(File.join(GRAMMARS_PATH, "#{scope}.json"), JSON.pretty_generate(grammar)) installed << scope end diff --git a/script/set-language-ids b/script/set-language-ids new file mode 100755 index 00000000..ecbe1e76 --- /dev/null +++ b/script/set-language-ids @@ -0,0 +1,82 @@ +#!/usr/bin/env ruby +require 'yaml' +require 'pry' + +header = <<-EOF +# 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. +# 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) +# interpreters - An Array of associated interpreters +# searchable - Boolean flag to enable searching (defaults to true) +# search_term - Deprecated: Some languages may be indexed under a +# different alias. Avoid defining new exceptions. +# 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. +# 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. + +EOF + +generated = true if ARGV[0] == "--force" +update = true if ARGV[0] == "--update" + +if generated + puts "You're regenerating all of the language_id attributes for all Linguist " + puts "languages defined in languages.yml. This is almost certainly NOT what" + puts "you meant to do!" + + language_index = 0 + + languages = YAML.load(File.read("lib/linguist/languages.yml")) + languages.each do |name, vals| + vals.merge!('language_id' => language_index) + language_index += 1 + end + + File.write("lib/linguist/languages.yml", header + YAML.dump(languages)) +elsif update + puts "Adding new language_id attributes to languages.yml that don't have one set" + languages = YAML.load(File.read("lib/linguist/languages.yml")) + + # First grab the maximum language_id + language_ids = [] + languages.each { |name, vals| language_ids << vals['language_id'] if vals.has_key?('language_id')} + max_language_id = language_ids.max + puts "Current maximum language_id is #{max_language_id}" + + missing_count = 0 + language_index = max_language_id + + languages.each do |name, vals| + unless vals.has_key?('language_id') + language_index += 1 + missing_count += 1 + vals.merge!('language_id' => language_index) + end + end + + File.write("lib/linguist/languages.yml", header + YAML.dump(languages)) + puts "Updated language_id attributes for #{missing_count} languages" +else + puts "Whatever you want me to do, I can't figure it out. Giving up..." +end diff --git a/test/fixtures/Data/Modelines/iamjs.pl b/test/fixtures/Data/Modelines/iamjs.pl new file mode 100644 index 00000000..b5d8f236 --- /dev/null +++ b/test/fixtures/Data/Modelines/iamjs.pl @@ -0,0 +1,3 @@ +# vim: noexpandtab: ft=javascript + +"It's JavaScript, baby"; diff --git a/test/fixtures/Data/Modelines/iamjs2.pl b/test/fixtures/Data/Modelines/iamjs2.pl new file mode 100644 index 00000000..623b827a --- /dev/null +++ b/test/fixtures/Data/Modelines/iamjs2.pl @@ -0,0 +1,4 @@ +# vim:noexpandtab titlestring=hi\|there\\\ ft=perl ts=4 +# vim:noexpandtab titlestring=hi|there\\ ft=javascript ts=4 + +"Still JavaScript, bruh"; diff --git a/test/fixtures/Data/Modelines/ruby10 b/test/fixtures/Data/Modelines/ruby10 new file mode 100644 index 00000000..67dd4864 --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby10 @@ -0,0 +1,3 @@ + ex: noexpandtab: ft=ruby + +# Still Ruby diff --git a/test/fixtures/Data/Modelines/ruby11 b/test/fixtures/Data/Modelines/ruby11 new file mode 100644 index 00000000..3d167468 --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby11 @@ -0,0 +1,3 @@ +# vim600: ft=ruby + +# Targets Vim 6.0 or later diff --git a/test/fixtures/Data/Modelines/ruby12 b/test/fixtures/Data/Modelines/ruby12 new file mode 100644 index 00000000..a7ef89a9 --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby12 @@ -0,0 +1,3 @@ +vim<520: ft=ruby + +# Targets Vim 5.20 and earlier diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs10 b/test/fixtures/Data/Modelines/seeplusplusEmacs10 new file mode 100644 index 00000000..c4f28721 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs10 @@ -0,0 +1,3 @@ +// -*- foo-bar mode: c++ -*- + +"Malformed modeline, but still understood by Emacs to be C++." diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs11 b/test/fixtures/Data/Modelines/seeplusplusEmacs11 new file mode 100644 index 00000000..3ba31f8a --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs11 @@ -0,0 +1 @@ +/* -*- mode: c++ -------*- */ diff --git a/test/fixtures/Data/Modelines/seeplusplusEmacs12 b/test/fixtures/Data/Modelines/seeplusplusEmacs12 new file mode 100644 index 00000000..e85ef896 --- /dev/null +++ b/test/fixtures/Data/Modelines/seeplusplusEmacs12 @@ -0,0 +1 @@ +-*--------- foo:bar mode: c++ -*- diff --git a/test/helper.rb b/test/helper.rb index deb7ef5b..5f7eeb87 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -35,3 +35,11 @@ def sample_blob_memory(name) content = File.read(filepath) Linguist::Blob.new(name, content) end + +def silence_warnings + original_verbosity = $VERBOSE + $VERBOSE = nil + yield +ensure + $VERBOSE = original_verbosity +end diff --git a/test/test_blob.rb b/test/test_blob.rb index 3322cc41..65b88ba4 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -4,14 +4,18 @@ class TestBlob < Minitest::Test include Linguist def setup - # git blobs are normally loaded as ASCII-8BIT since they may contain data - # with arbitrary encoding not known ahead of time - @original_external = Encoding.default_external - Encoding.default_external = Encoding.find("ASCII-8BIT") + silence_warnings do + # git blobs are normally loaded as ASCII-8BIT since they may contain data + # with arbitrary encoding not known ahead of time + @original_external = Encoding.default_external + Encoding.default_external = Encoding.find("ASCII-8BIT") + end end def teardown - Encoding.default_external = @original_external + silence_warnings do + Encoding.default_external = @original_external + end end def script_blob(name) diff --git a/test/test_file_blob.rb b/test/test_file_blob.rb index 82f3059c..84cee723 100644 --- a/test/test_file_blob.rb +++ b/test/test_file_blob.rb @@ -3,15 +3,27 @@ require_relative "./helper" class TestFileBlob < Minitest::Test include Linguist + def silence_warnings + original_verbosity = $VERBOSE + $VERBOSE = nil + yield + ensure + $VERBOSE = original_verbosity + end + def setup - # git blobs are normally loaded as ASCII-8BIT since they may contain data - # with arbitrary encoding not known ahead of time - @original_external = Encoding.default_external - Encoding.default_external = Encoding.find("ASCII-8BIT") + silence_warnings do + # git blobs are normally loaded as ASCII-8BIT since they may contain data + # with arbitrary encoding not known ahead of time + @original_external = Encoding.default_external + Encoding.default_external = Encoding.find("ASCII-8BIT") + end end def teardown - Encoding.default_external = @original_external + silence_warnings do + Encoding.default_external = @original_external + end end def script_blob(name) @@ -305,7 +317,7 @@ class TestFileBlob < Minitest::Test assert sample_blob("some/vendored/path/Chart.js").vendored? assert !sample_blob("some/vendored/path/chart.js").vendored? - # Codemirror deps + # CodeMirror deps assert sample_blob("codemirror/mode/blah.js").vendored? assert sample_blob("codemirror/5.0/mode/blah.js").vendored? diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 0a7260b8..5548c9e5 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -5,9 +5,44 @@ class TestGrammars < Minitest::Test # List of projects that are allowed without licenses PROJECT_WHITELIST = [ - # Dual MIT and GPL license - "vendor/grammars/language-csharp", - "vendor/grammars/sublimeassembly" + "vendor/grammars/Sublime-Lasso", + "vendor/grammars/ant.tmbundle", + "vendor/grammars/sublime-spintools", + "vendor/grammars/blitzmax" + ].freeze + + HASH_WHITELIST = [ + "bc12b3b4917eab9aedb87ec1305c2a4376e34fd1", # TextMate bundles + "16c4748566b3dd996594af0410a1875b22d3a2b3", # language-yaml and atom-salt + "ebae2d87e06d3acef075d049fcfc8958c0364863", # go-tmbundle + "ff21db2554d69d78b2220db5615b16bbba0788d3", # factor + "b9a7428fd036eed8503995e06e989180c276b17d", # jflex.tmbundle + "da39a3ee5e6b4b0d3255bfef95601890afd80709", # SCSS.tmbundle + "5f772ff20ddf3dbac1ec9b6a98c5aa50ace555b2", # gradle.tmbundle + "b5432a1e1055de7eeede2dddf91e009480651fd6", # jasmin-sublime + "74143c4d2a5649eb179105afcb37f466558c22ce", # language-clojure + "760471435f5ab0b9dc99a628203cd8f9156d28ce", # language-coffee-script + "330e6d465e26bdd232aafcd3f5dba6a1d098a20e", # language-csharp + "70fb557a431891c2d634c33fa7367feab5066fd6", # language-javascript + "e0528c23cd967f999e058f1408ccb5b7237daaba", # language-python + "8653305b358375d0fced85dc24793b99919b11ef", # language-shellscript + "9f0c0b0926a18f5038e455e8df60221125fc3111", # elixir-tmbundle + "90af581219debd4e90ef041b46c294e8b4ae6d14", # mako-tmbundle + "b9b24778619dce325b651f0d77cbc72e7ae0b0a3", # Julia.tmbundle + "2d4f8807be850efd925751a8e1839cfc539985b0", # actionscript3-tmbundle + "e06722add999e7428048abcc067cd85f1f7ca71c", # r.tmbundle + "50b14a0e3f03d7ca754dac42ffb33302b5882b78", # smalltalk-tmbundle + "eafbc4a2f283752858e6908907f3c0c90188785b", # gap-tmbundle + "1faa3a44cac6070f22384332434af37dfaaf2f70", # Stylus + "c87e7e574fca543941650e5b0a144b44c02c55d8", # language-crystal + "c78ec142ac3126cf639cfd67bd646ed8226d8b74", # atom-language-purescript + "341d7f66806fc41d081133d6e51ade856352e056", # FreeMarker.tmbundle + "15a394f6bc43400946570b299aee8ae264a1e3ff", # language-renpy + "c9118c370411f2f049c746c0fd096554e877aea2", # perl6fe + "8ccf886749c32fb7e65d4d1316a7ed0479c93dc9", # language-less + "2f03492b52d7dd83b4e7472f01b87c6121e5b1a4", # monkey + "9d8b5626cfe00f3c8a076173913c3b0312b5b122", # ejs-tmbundle + "bdab9fdc21e6790b479ccb5945b78bc0f6ce2493" # language-blade ].freeze # List of allowed SPDX license names @@ -87,12 +122,30 @@ class TestGrammars < Minitest::Test end def test_submodules_have_approved_licenses - unapproved = submodule_licenses.reject { |k,v| LICENSE_WHITELIST.include?(v) || PROJECT_WHITELIST.include?(k) }.map { |k,v| "#{k}: #{v}"} + unapproved = submodule_licenses.reject { |k,v| LICENSE_WHITELIST.include?(v) || + PROJECT_WHITELIST.include?(k) || + HASH_WHITELIST.include?(v) } + .map { |k,v| "#{k}: #{v}"} message = "The following submodules have unapproved licenses:\n* #{unapproved.join("\n* ")}\n" message << "The license must be added to the LICENSE_WHITELIST in /test/test_grammars.rb once approved." assert_equal [], unapproved, message end + def test_whitelisted_submodules_dont_have_licenses + licensed = submodule_licenses.reject { |k,v| v.nil? }.select { |k,v| PROJECT_WHITELIST.include?(k) } + message = "The following whitelisted submodules have a license:\n* #{licensed.keys.join("\n* ")}\n" + message << "Please remove them from the project whitelist." + assert_equal Hash.new, licensed, message + end + + def test_whitelisted_hashes_dont_have_licenses + used_hashes = submodule_licenses.values.reject { |v| v.nil? || LICENSE_WHITELIST.include?(v) } + unused_hashes = HASH_WHITELIST - used_hashes + message = "The following whitelisted license hashes are unused:\n* #{unused_hashes.join("\n* ")}\n" + message << "Please remove them from the hash whitelist." + assert_equal Array.new, unused_hashes, message + end + def test_submodules_whitelist_has_no_extra_entries skip("Need to work out how to handle dual-licensed entities") extra_whitelist_entries = PROJECT_WHITELIST - submodule_licenses.select { |k,v| v.nil? }.keys @@ -123,7 +176,7 @@ class TestGrammars < Minitest::Test private def submodule_paths - @submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last } + @submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last }.reject { |path| path =~ /CodeMirror/ } end # Returns a hash of submodules in the form of submodule_path => license @@ -136,51 +189,18 @@ class TestGrammars < Minitest::Test end # Given the path to a submodule, return its SPDX-compliant license key + # If the license is unrecognized, return its hash def submodule_license(submodule) # Prefer Licensee to detect a submodule's license - project = Licensee::FSProject.new(submodule) + project = Licensee::FSProject.new(submodule, detect_readme: true) return project.license.key if project.license - # We know a license file exists, but Licensee wasn't able to detect the license, - # Let's try our own more permissive regex method + # We know a license exists, but no method was able to recognize it. + # We return the license hash in this case, to uniquely identify it. if project.license_file - path = File.expand_path project.license_file.path, submodule - license = classify_license(path) - return license if license - end - - # Neither Licensee nor our own regex was able to detect the license, let's check the readme - files = Dir[File.join(ROOT, submodule, "*")] - if readme = files.find { |path| File.basename(path) =~ /\Areadme\b/i } - classify_license(readme) - end - end - - def classify_license(path) - content = File.read(path) - return unless content =~ /\blicen[cs]e\b/i - if content.include?("Apache License") && content.include?("2.0") - "apache-2.0" - elsif content.include?("GNU") && content =~ /general/i && content =~ /public/i - if content =~ /version 2/i - "gpl-2.0" - elsif content =~ /version 3/i - "gpl-3.0" - end - elsif content.include?("GPL") && content.include?("http://www.gnu.org/licenses/gpl.html") - "gpl-3.0" - elsif content.include?("Creative Commons Attribution-Share Alike 3.0") - "cc-by-sa-3.0" - elsif content.include?("tidy-license.txt") || content.include?("If not otherwise specified (see below)") || content.include?("Permission to copy, use, modify, sell and distribute this") - "textmate" - elsif content.include?("Permission is hereby granted") || content =~ /\bMIT\b/ - "mit" - elsif content.include?("This package is provided as-is and is placed in the Public Domain") - "public" - elsif content.include?("http://www.wtfpl.net/txt/copying/") - "wtfpl" - elsif content.include?("zlib") && content.include?("license") && content.include?("2. Altered source versions must be plainly marked as such") - "zlib" + return project.license_file.hash + elsif project.readme + return project.readme.hash end end end diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index e37da44b..921cc021 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -29,7 +29,11 @@ class TestHeuristcs < Minitest::Test hash.each do |language, blobs| Array(blobs).each do |blob| result = Heuristics.call(file_blob(blob), candidates) - assert_equal [Language[language]], result, "Failed for #{blob}" + if language.nil? + assert_equal [], result, "Failed for #{blob}" + else + assert_equal [Language[language]], result, "Failed for #{blob}" + end end end end @@ -122,9 +126,12 @@ class TestHeuristcs < Minitest::Test }) end + # Candidate languages = ["Assembly", "C++", "HTML", "PAWN", "PHP", + # "POV-Ray SDL", "Pascal", "SQL", "SourcePawn"] def test_inc_by_heuristics assert_heuristics({ - "PHP" => all_fixtures("PHP", "*.inc") + "PHP" => all_fixtures("PHP", "*.inc"), + "POV-Ray SDL" => all_fixtures("POV-Ray SDL", "*.inc") }) end @@ -142,6 +149,26 @@ class TestHeuristcs < Minitest::Test }) end + def test_m_by_heuristics + assert_heuristics({ + "Objective-C" => all_fixtures("Objective-C", "*.m") - all_fixtures("Objective-C", "cocoa_monitor.m"), + "Mercury" => all_fixtures("Mercury", "*.m"), + "MUF" => all_fixtures("MUF", "*.m"), + "M" => all_fixtures("M", "MDB.m"), + "Mathematica" => all_fixtures("Mathematica", "*.m") - all_fixtures("Mathematica", "Problem12.m"), + "Matlab" => all_fixtures("Matlab", "create_ieee_paper_plots.m"), + "Limbo" => all_fixtures("Limbo", "*.m"), + nil => ["Objective-C/cocoa_monitor.m"] + }) + end + + def test_md_by_heuristics + assert_heuristics({ + "Markdown" => all_fixtures("Markdown", "*.md"), + "GCC machine description" => all_fixtures("GCC machine description", "*.md") + }) + end + # Candidate languages = ["C++", "Objective-C"] def test_obj_c_by_heuristics # Only calling out '.h' filenames as these are the ones causing issues diff --git a/test/test_language.rb b/test/test_language.rb index 5613f235..1f6d19d2 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -67,6 +67,22 @@ class TestLanguage < Minitest::Test assert_nil Language.find_by_alias(nil) end + # Note these are set by script/set-language-ids. If these tests fail then someone + # has changed the language_id fields set in languages.yml which is almost certainly + # not what you want to happen (these fields are used in GitHub's search indexes) + def test_language_ids + assert_equal 4, Language['ANTLR'].language_id + assert_equal 54, Language['Ceylon'].language_id + assert_equal 326, Language['Ruby'].language_id + assert_equal 421, Language['xBase'].language_id + end + + def test_find_by_id + assert_equal Language['Elixir'], Language.find_by_id(100) + assert_equal Language['Ruby'], Language.find_by_id(326) + assert_equal Language['xBase'], Language.find_by_id(421) + end + def test_groups # Test a couple identity cases assert_equal Language['Perl'], Language['Perl'].group @@ -329,8 +345,24 @@ class TestLanguage < Minitest::Test end def test_ace_modes - assert Language.ace_modes.include?(Language['Ruby']) - assert Language.ace_modes.include?(Language['FORTRAN']) + silence_warnings do + assert Language.ace_modes.include?(Language['Ruby']) + assert Language.ace_modes.include?(Language['FORTRAN']) + end + end + + def test_codemirror_mode + assert_equal 'ruby', Language['Ruby'].codemirror_mode + assert_equal 'javascript', Language['JavaScript'].codemirror_mode + assert_equal 'clike', Language['C'].codemirror_mode + assert_equal 'clike', Language['C++'].codemirror_mode + end + + def test_codemirror_mime_type + assert_equal 'text/x-ruby', Language['Ruby'].codemirror_mime_type + assert_equal 'text/javascript', Language['JavaScript'].codemirror_mime_type + assert_equal 'text/x-csrc', Language['C'].codemirror_mime_type + assert_equal 'text/x-c++src', Language['C++'].codemirror_mime_type end def test_wrap @@ -386,6 +418,22 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_all_languages_have_a_language_id_set + missing = Language.all.select { |language| language.language_id.nil? } + + message = "The following languages do not have a language_id listed in languages.yml. Please add language_id fields for all new languages.\n" + missing.each { |language| message << "#{language.name}\n" } + assert missing.empty?, message + end + + def test_all_language_id_are_unique + duplicates = Language.all.group_by{ |language| language.language_id }.select { |k, v| v.size > 1 }.map(&:first) + + message = "The following language_id are used several times in languages.yml. Please use script/set-language-ids --update as per the contribution guidelines.\n" + duplicates.each { |language_id| message << "#{language_id}\n" } + assert duplicates.empty?, message + end + def test_all_languages_have_a_valid_ace_mode ace_fixture_path = File.join('test', 'fixtures', 'ace_modes.json') skip("No ace_modes.json file") unless File.exist?(ace_fixture_path) @@ -404,6 +452,40 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_codemirror_modes_present + Language.all.each do |language| + if language.codemirror_mode || language.codemirror_mime_type + assert language.codemirror_mode, "#{language.inspect} missing CodeMirror mode" + assert language.codemirror_mime_type, "#{language.inspect} missing CodeMirror MIME mode" + end + end + end + + def test_valid_codemirror_mode + Language.all.each do |language| + if mode = language.codemirror_mode + assert File.exist?(File.expand_path("../../vendor/CodeMirror/mode/#{mode}", __FILE__)), "#{mode} isn't a valid CodeMirror mode" + end + end + end + + def test_codemirror_mode_and_mime_defined_by_meta_mapping + meta = File.read(File.expand_path("../../vendor/CodeMirror/mode/meta.js", __FILE__)) + Language.all.each do |language| + next unless language.codemirror_mode && language.codemirror_mime_type + assert meta.match(/^.+#{Regexp.escape(language.codemirror_mime_type)}.+#{Regexp.escape(language.codemirror_mode)}.+$/), "#{language.inspect}: #{language.codemirror_mime_type} not defined under #{language.codemirror_mode}" + end + end + + def test_codemirror_mime_declared_in_mode_file + Language.all.each do |language| + next unless language.codemirror_mode && language.codemirror_mime_type + filename = File.expand_path("../../vendor/CodeMirror/mode/#{language.codemirror_mode}/#{language.codemirror_mode}.js", __FILE__) + assert File.exist?(filename), "#{filename} does not exist" + assert File.read(filename).match(language.codemirror_mime_type), "#{language.inspect}: #{language.codemirror_mime_type} not defined in #{filename}" + end + end + def test_all_popular_languages_exist popular = YAML.load(File.read(File.expand_path("../../lib/linguist/popular.yml", __FILE__))) diff --git a/test/test_modelines.rb b/test/test_modelines.rb index 192da9d4..aac84ada 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -17,6 +17,9 @@ class TestModelines < Minitest::Test assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby7") assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby8") assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby9") + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby10") + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby11") + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby12") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplus") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2") @@ -27,9 +30,14 @@ class TestModelines < Minitest::Test assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs10") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs11") + assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs12") assert_modeline Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c") assert_modeline Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl") assert_modeline Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md") + assert_modeline Language["JavaScript"], fixture_blob("Data/Modelines/iamjs.pl") + assert_modeline Language["JavaScript"], fixture_blob("Data/Modelines/iamjs2.pl") assert_modeline Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc") assert_modeline nil, sample_blob("C/main.c") end @@ -48,9 +56,14 @@ class TestModelines < Minitest::Test assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8").language assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs10").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs11").language + assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs12").language assert_equal Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c").language assert_equal Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl").language assert_equal Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md").language + assert_equal Language["JavaScript"], fixture_blob("Data/Modelines/iamjs.pl").language + assert_equal Language["JavaScript"], fixture_blob("Data/Modelines/iamjs2.pl").language assert_equal Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc").language end end diff --git a/vendor/CodeMirror b/vendor/CodeMirror new file mode 160000 index 00000000..39ffcd87 --- /dev/null +++ b/vendor/CodeMirror @@ -0,0 +1 @@ +Subproject commit 39ffcd8701c35363ab754b82c3c171913ecf478e diff --git a/vendor/grammars/Docker.tmbundle b/vendor/grammars/Docker.tmbundle index 08585643..c6230cb6 160000 --- a/vendor/grammars/Docker.tmbundle +++ b/vendor/grammars/Docker.tmbundle @@ -1 +1 @@ -Subproject commit 08585643c0b84eb6f76ef56fbba7183185e65548 +Subproject commit c6230cb62c44eecea0123b54b86047517af25de1 diff --git a/vendor/grammars/Lean.tmbundle b/vendor/grammars/Lean.tmbundle index a1a3818e..fa8fcd28 160000 --- a/vendor/grammars/Lean.tmbundle +++ b/vendor/grammars/Lean.tmbundle @@ -1 +1 @@ -Subproject commit a1a3818ecfdd1365ec01ac3894106b5a70b455ac +Subproject commit fa8fcd2856945972a64dcba6f288cfb632a424c8 diff --git a/vendor/grammars/NSIS b/vendor/grammars/NSIS index e0524002..696d06cb 160000 --- a/vendor/grammars/NSIS +++ b/vendor/grammars/NSIS @@ -1 +1 @@ -Subproject commit e052400204103acc26c14feeb624dd7ce6157611 +Subproject commit 696d06cb2bd0dfc619c989c746e4b43eea689161 diff --git a/vendor/grammars/Sublime-Inform/.gitignore b/vendor/grammars/Sublime-Inform/.gitignore deleted file mode 100644 index 9bea4330..00000000 --- a/vendor/grammars/Sublime-Inform/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ - -.DS_Store diff --git a/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet deleted file mode 100644 index d00b609b..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - book - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet deleted file mode 100644 index 344ae92d..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - chapter - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet deleted file mode 100644 index 9504585b..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet +++ /dev/null @@ -1,7 +0,0 @@ - - - door - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage b/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage deleted file mode 100644 index e5b6e92b..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage +++ /dev/null @@ -1,34 +0,0 @@ -{ "name": "Inform7", - "scopeName": "source.Inform7", - "fileTypes": ["i7x"], - "patterns": [ - { "name": "keyword.control.Inform7", - "match": "\\b(Include|Release)\\b" - }, - { "name" : "comment.block.Inform7", - "begin" : "\\[", - "end" : "\\]", - "comment" : "All comments in Inform7 are delimited this way." - }, - { "name" : "string.quoted.double.Inform7", - "begin" : "\"", - "end" : "\"", - "patterns": [ - { "name" : "keyword.operator.Inform7", - "begin" : "\\[", - "end" : "\\]", - "comment" : "For logic inside of strings." - } - ] - }, - { "name" : "storage.type.Inform7", - "match" : "(Volume|Book|Chapter|Part|Section|Table)\\s+\\d?\\s+-?\\s+((?:\\w|\\s|-)*)", - "comment": "Matches headings for major sections in Inform7" - }, - { "name": "constant.numeric.Inform7", - "match": "([0-9])+", - "comment":"Gotta call out the numbers!" - } - ], - "uuid": "0c4cbdee-beb7-4ea6-af56-27246d479373" -} \ No newline at end of file diff --git a/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage b/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage deleted file mode 100755 index 5609885e..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage +++ /dev/null @@ -1,74 +0,0 @@ - - - - - fileTypes - - i7x - inform - ni - - name - Inform7 - patterns - - - match - \b(Include|Release)\b - name - keyword.control.Inform7 - - - begin - \[ - comment - All comments in Inform7 are delimited this way. - end - \] - name - comment.block.Inform7 - - - begin - " - end - " - name - string.quoted.double.Inform7 - patterns - - - begin - \[ - comment - For logic inside of strings. - end - \] - name - keyword.operator.Inform7 - - - - - comment - Matches headings for major sections in Inform7 - match - (Volume|Book|Chapter|Part|Section|Table)\s+\d?\s+-?\s+((?:\w|\s|-)*) - name - storage.type.Inform7 - - - comment - Gotta call out the numbers! - match - ([0-9])+ - name - constant.numeric.Inform7 - - - scopeName - source.Inform7 - uuid - 0c4cbdee-beb7-4ea6-af56-27246d479373 - - diff --git a/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet deleted file mode 100644 index 65f040af..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet +++ /dev/null @@ -1,8 +0,0 @@ - - - object - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet deleted file mode 100644 index 9e161cca..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - part - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet deleted file mode 100644 index b6abef45..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet +++ /dev/null @@ -1,7 +0,0 @@ - - - room - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet deleted file mode 100644 index fd4be030..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet +++ /dev/null @@ -1,11 +0,0 @@ - - - scene - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet deleted file mode 100644 index 7ab043cb..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - section - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet deleted file mode 100644 index 0721fcbf..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - volume - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/LICENSE.txt b/vendor/grammars/Sublime-Inform/LICENSE.txt deleted file mode 100644 index cda6f052..00000000 --- a/vendor/grammars/Sublime-Inform/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Nate Dickson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/grammars/Sublime-Inform/README.md b/vendor/grammars/Sublime-Inform/README.md deleted file mode 100644 index 3b907f1e..00000000 --- a/vendor/grammars/Sublime-Inform/README.md +++ /dev/null @@ -1,8 +0,0 @@ -#Inform7 Package for Sublime Text 2 -This package has a lot of little files that make Inform7 easier to edit in Sublime Text 2. that's why it's called what it is, you see. -##Usage -Grab the zip file, unzip it, and put it in your ```Packages``` Directory. -That's pretty much it. Open an ```i7x``` file in Sublime Text 2 and it'll be all highlighted and there's a bunch of snippets you can use and all that. - -##Want to submit a pull request for this readme file? -Please, please do. \ No newline at end of file diff --git a/vendor/grammars/Sublime-SQF-Language b/vendor/grammars/Sublime-SQF-Language index 984606e1..0e72aacb 160000 --- a/vendor/grammars/Sublime-SQF-Language +++ b/vendor/grammars/Sublime-SQF-Language @@ -1 +1 @@ -Subproject commit 984606e146b4ef96753db7f3a16adeee2b152e24 +Subproject commit 0e72aacb4ae6174509a47f3d20913254f3620947 diff --git a/vendor/grammars/Sublime-VimL b/vendor/grammars/Sublime-VimL deleted file mode 160000 index b453aff6..00000000 --- a/vendor/grammars/Sublime-VimL +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b453aff6f783769b6b895986da605a2db0db7379 diff --git a/vendor/grammars/SublimeGDB b/vendor/grammars/SublimeGDB index d9a512da..c39ee600 160000 --- a/vendor/grammars/SublimeGDB +++ b/vendor/grammars/SublimeGDB @@ -1 +1 @@ -Subproject commit d9a512da6eb23b8193a8696a6fc1afd77f310d6e +Subproject commit c39ee600ba734ba8724b70e120ddb8b0ac600587 diff --git a/vendor/grammars/atom-language-clean b/vendor/grammars/atom-language-clean index a9b83780..7dafe70d 160000 --- a/vendor/grammars/atom-language-clean +++ b/vendor/grammars/atom-language-clean @@ -1 +1 @@ -Subproject commit a9b837801d887ea072bdb52b16b5e45fe88365a8 +Subproject commit 7dafe70dddd5bb87aa2d3a3c522bb1561b908bbb diff --git a/vendor/grammars/awk-sublime b/vendor/grammars/awk-sublime index 7ec7d154..72b487a1 160000 --- a/vendor/grammars/awk-sublime +++ b/vendor/grammars/awk-sublime @@ -1 +1 @@ -Subproject commit 7ec7d154469c05780cfeecca8fc00fda6f9ac0e7 +Subproject commit 72b487a1046d86b8a195b38fa18802d2abe30370 diff --git a/vendor/grammars/c.tmbundle b/vendor/grammars/c.tmbundle index fa4b7e21..88cc9b71 160000 --- a/vendor/grammars/c.tmbundle +++ b/vendor/grammars/c.tmbundle @@ -1 +1 @@ -Subproject commit fa4b7e211463973328b5334d55d0b10dafa27122 +Subproject commit 88cc9b71faf9f1406c5a6a5b08741e6242c15e06 diff --git a/vendor/grammars/cython b/vendor/grammars/cython index e9f4d3a1..a816e2c0 160000 --- a/vendor/grammars/cython +++ b/vendor/grammars/cython @@ -1 +1 @@ -Subproject commit e9f4d3a1e44a14df8f245f98591f62df34fbabd8 +Subproject commit a816e2c05d8a6f4bcf937b635c942e63afda2040 diff --git a/vendor/grammars/d.tmbundle b/vendor/grammars/d.tmbundle index 8763c4c5..039c92d9 160000 --- a/vendor/grammars/d.tmbundle +++ b/vendor/grammars/d.tmbundle @@ -1 +1 @@ -Subproject commit 8763c4c5f2169d48d725d946838428f50abe12a5 +Subproject commit 039c92d9f2f583f8c51bbeb39094c9e208614001 diff --git a/vendor/grammars/diff.tmbundle b/vendor/grammars/diff.tmbundle index 62de2cca..372abaae 160000 --- a/vendor/grammars/diff.tmbundle +++ b/vendor/grammars/diff.tmbundle @@ -1 +1 @@ -Subproject commit 62de2cca5cc5cfb77308fdc94d963f35e2d808d1 +Subproject commit 372abaaeb12620db3f9d5d984c4ee8c3c6224117 diff --git a/vendor/grammars/ebundles b/vendor/grammars/ebundles deleted file mode 160000 index d9b80213..00000000 --- a/vendor/grammars/ebundles +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d9b802135a533abf113c164d25b23143a47283e7 diff --git a/vendor/grammars/elixir-tmbundle b/vendor/grammars/elixir-tmbundle index 6d0417e8..fb4a0114 160000 --- a/vendor/grammars/elixir-tmbundle +++ b/vendor/grammars/elixir-tmbundle @@ -1 +1 @@ -Subproject commit 6d0417e8eb7e182810755214d0a8cd6421146c01 +Subproject commit fb4a0114268b5d816861d3b4048b166cf55160b1 diff --git a/vendor/grammars/html.tmbundle b/vendor/grammars/html.tmbundle index 2e9e024a..9f812c89 160000 --- a/vendor/grammars/html.tmbundle +++ b/vendor/grammars/html.tmbundle @@ -1 +1 @@ -Subproject commit 2e9e024a1b20c8bf8e68ba241359b4bbdb1045e1 +Subproject commit 9f812c89f4990a98391701caa77824c94860538f diff --git a/vendor/grammars/jade-tmbundle b/vendor/grammars/jade-tmbundle index 7c1304aa..f311a516 160000 --- a/vendor/grammars/jade-tmbundle +++ b/vendor/grammars/jade-tmbundle @@ -1 +1 @@ -Subproject commit 7c1304aa5a0d916a93fd296d3dd994219ecdc90f +Subproject commit f311a516bb29296fcebfdc7da8149b1c79dfb0a1 diff --git a/vendor/grammars/language-asn1 b/vendor/grammars/language-asn1 index d45daeb8..bc3811c7 160000 --- a/vendor/grammars/language-asn1 +++ b/vendor/grammars/language-asn1 @@ -1 +1 @@ -Subproject commit d45daeb849f02a79d67585f629bdc83a06cc52e5 +Subproject commit bc3811c7706476e48f5085660b72b18ad028314f diff --git a/vendor/grammars/language-babel b/vendor/grammars/language-babel index c9d6dbf4..656d5d3b 160000 --- a/vendor/grammars/language-babel +++ b/vendor/grammars/language-babel @@ -1 +1 @@ -Subproject commit c9d6dbf4637c0c703aa9ada87afdca5a9cfb3e30 +Subproject commit 656d5d3b42e317f28c7fce248709abda6fc70b95 diff --git a/vendor/grammars/language-batchfile b/vendor/grammars/language-batchfile new file mode 160000 index 00000000..100b6829 --- /dev/null +++ b/vendor/grammars/language-batchfile @@ -0,0 +1 @@ +Subproject commit 100b682992acf511ab330de2c54b8c42493964e4 diff --git a/vendor/grammars/language-blade b/vendor/grammars/language-blade index fcbe2c20..a5cdd44e 160000 --- a/vendor/grammars/language-blade +++ b/vendor/grammars/language-blade @@ -1 +1 @@ -Subproject commit fcbe2c202295ba1b3f3d2156b64a82999f51374d +Subproject commit a5cdd44eb03cbbba43e634079dec851f06efcc25 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index bc86668c..51484ae2 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit bc86668c40817aefbba2164032fcd24c2438b576 +Subproject commit 51484ae2f76b59fe0ea4688a1b27d127d392bd07 diff --git a/vendor/grammars/language-coffee-script b/vendor/grammars/language-coffee-script index 8f001efe..b4137735 160000 --- a/vendor/grammars/language-coffee-script +++ b/vendor/grammars/language-coffee-script @@ -1 +1 @@ -Subproject commit 8f001efe73422d0f7a0c16121588c34e0bd5fe8c +Subproject commit b4137735740818665b0aa55bef843640aa820ca9 diff --git a/vendor/grammars/language-csharp b/vendor/grammars/language-csharp index c97c4bf7..2af2edde 160000 --- a/vendor/grammars/language-csharp +++ b/vendor/grammars/language-csharp @@ -1 +1 @@ -Subproject commit c97c4bf74d74502c0b78901b12aab09186dc0eba +Subproject commit 2af2edde5518bc01ff384452d6b77b46b73e2652 diff --git a/vendor/grammars/language-emacs-lisp b/vendor/grammars/language-emacs-lisp new file mode 160000 index 00000000..77da7424 --- /dev/null +++ b/vendor/grammars/language-emacs-lisp @@ -0,0 +1 @@ +Subproject commit 77da74248435f559fe89724b6bb28d663201a2f0 diff --git a/vendor/grammars/language-graphql b/vendor/grammars/language-graphql index d88cbb73..40d3aef4 160000 --- a/vendor/grammars/language-graphql +++ b/vendor/grammars/language-graphql @@ -1 +1 @@ -Subproject commit d88cbb73e2e90f290911cf707550e2c0011140f9 +Subproject commit 40d3aef44756438290037c25f3427d18552df7b8 diff --git a/vendor/grammars/language-haskell b/vendor/grammars/language-haskell index 296a7e94..a53aca38 160000 --- a/vendor/grammars/language-haskell +++ b/vendor/grammars/language-haskell @@ -1 +1 @@ -Subproject commit 296a7e94df6b3c89c5247510b7ba4eb71f14c55f +Subproject commit a53aca3856a1b7729a13e2311628bf323d3b7ff0 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index e7b00e4d..537f3a5d 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit e7b00e4d15f1d11842ca9f5d61fdc02d4719bf6b +Subproject commit 537f3a5d9574ff385fe217006ba0df75eb8eeea3 diff --git a/vendor/grammars/language-less b/vendor/grammars/language-less index d4f5db5f..f34bb335 160000 --- a/vendor/grammars/language-less +++ b/vendor/grammars/language-less @@ -1 +1 @@ -Subproject commit d4f5db5fba671244c1f2085752d1ea9ce34f8bad +Subproject commit f34bb335c73c300b465c31f18fb540002395e050 diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index bc204508..719e4404 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit bc204508498b1695a4448bd2cf9a3d31c1cdaf5e +Subproject commit 719e4404d2cd25a888a8111c62abd31a22a15ef3 diff --git a/vendor/grammars/language-renpy b/vendor/grammars/language-renpy index a3b9bbed..82a4b913 160000 --- a/vendor/grammars/language-renpy +++ b/vendor/grammars/language-renpy @@ -1 +1 @@ -Subproject commit a3b9bbed668137ab8db5dbafea4d5611957e68ee +Subproject commit 82a4b9130679d6602b9b3908fe938f9c50a04476 diff --git a/vendor/grammars/language-roff b/vendor/grammars/language-roff index bef44851..743e1621 160000 --- a/vendor/grammars/language-roff +++ b/vendor/grammars/language-roff @@ -1 +1 @@ -Subproject commit bef448515021f7112d42403c0a3d5814a13b193f +Subproject commit 743e1621c6a2ff2dd65b36c4a86ed85b97eed930 diff --git a/vendor/grammars/language-rpm-spec b/vendor/grammars/language-rpm-spec new file mode 160000 index 00000000..549b4241 --- /dev/null +++ b/vendor/grammars/language-rpm-spec @@ -0,0 +1 @@ +Subproject commit 549b4241074bfb81557173377efb6681673648ac diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index 6b936dae..8d75aeaf 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit 6b936daeca50d0551a44b0d014e9debbf02516e9 +Subproject commit 8d75aeaf52881d7712487005d31749fe41e458a6 diff --git a/vendor/grammars/language-viml b/vendor/grammars/language-viml new file mode 160000 index 00000000..5030fb8b --- /dev/null +++ b/vendor/grammars/language-viml @@ -0,0 +1 @@ +Subproject commit 5030fb8b0234fc5b03de7f20c9284a2208a5f449 diff --git a/vendor/grammars/language-yaml b/vendor/grammars/language-yaml index 784cecc6..29d4b546 160000 --- a/vendor/grammars/language-yaml +++ b/vendor/grammars/language-yaml @@ -1 +1 @@ -Subproject commit 784cecc64ffdb891f6a7fbba62e476b0c833e66f +Subproject commit 29d4b546f265c71cdd35abcb5b382f07c1760239 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index cb0c7590..b973d17a 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit cb0c75906cdead220f45acc27225245dd966ef55 +Subproject commit b973d17a03744d8184689c37d5b9be1511bb3b21 diff --git a/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand b/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand deleted file mode 100644 index 9f8e7561..00000000 --- a/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand +++ /dev/null @@ -1,47 +0,0 @@ - - - - - beforeRunningCommand - saveActiveFile - command - #!/usr/bin/env ruby18 - -file = ENV["TM_FILEPATH"] -target = file.sub(/\.less$/, ".css") -system("lessc \"#{file}\" \"#{target}\"") -puts "Compiled CSS to '#{target}'" - input - document - inputFormat - text - keyEquivalent - @b - name - Save to CSS - outputCaret - afterOutput - outputFormat - text - outputLocation - toolTip - requiredCommands - - - command - lessc - locations - - /opt/local/bin/lessc - /usr/local/bin/lessc - - - - scope - source.css.less - uuid - 78788223-5E5E-434E-98BE-17BCDF600611 - version - 2 - - diff --git a/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand b/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand deleted file mode 100644 index fc8fe21f..00000000 --- a/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand +++ /dev/null @@ -1,47 +0,0 @@ - - - - - beforeRunningCommand - saveActiveFile - command - #!/usr/bin/env ruby18 - -file = ENV["TM_FILEPATH"] -target = file.sub(/\.less$/, ".css") -system("lessc -x \"#{file}\" \"#{target}\"") -puts "Compiled Minified CSS to '#{target}'" - input - document - inputFormat - text - keyEquivalent - ~@b - name - Save to Minified CSS - outputCaret - afterOutput - outputFormat - text - outputLocation - toolTip - requiredCommands - - - command - lessc - locations - - /opt/local/bin/lessc - /usr/local/bin/lessc - - - - scope - source.css.less - uuid - 448D3A8D-260E-4949-BA33-654886ECDCAF - version - 2 - - diff --git a/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand b/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand deleted file mode 100644 index 21ce88f4..00000000 --- a/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand +++ /dev/null @@ -1,38 +0,0 @@ - - - - - beforeRunningCommand - nop - command - #!/usr/bin/env php -<?php -$path = getenv('TM_DROPPED_FILE'); -$path_parts = pathinfo($path); -$info = getimagesize($path); -list($width, $height) = $info; -$mime = $info['mime']; -$contents = base64_encode(file_get_contents($path)); - -echo "@gfx-{$path_parts['filename']}: \"data:{$mime};base64,{$contents}\";\n"; -echo "@gfx-{$path_parts['filename']}-width: {$width}px;\n"; -echo "@gfx-{$path_parts['filename']}-height: {$height}px;"; - draggedFileExtensions - - png - jpeg - jpg - gif - - input - selection - name - Insert inline Image - output - insertAsSnippet - scope - source.css.less - uuid - 7B0CA307-CC1C-4EE2-9F63-4825800ACDA7 - - diff --git a/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences b/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences deleted file mode 100644 index 1d8bf1fe..00000000 --- a/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences +++ /dev/null @@ -1,36 +0,0 @@ - - - - - name - Comments - scope - source.css.less - settings - - shellVariables - - - name - TM_COMMENT_START - value - // - - - name - TM_COMMENT_START_2 - value - /* - - - name - TM_COMMENT_END_2 - value - */ - - - - uuid - D0CC551B-751D-4A7C-A738-2513E3C7F285 - - diff --git a/vendor/grammars/less.tmbundle/README.md b/vendor/grammars/less.tmbundle/README.md deleted file mode 100644 index ed6ac672..00000000 --- a/vendor/grammars/less.tmbundle/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Installation - -You can install this bundle in TextMate by opening the preferences and going to the bundles tab. After installation it will be automatically updated for you. - -# License (MIT) - -Copyright (c) 2010 Scott Kyle and Rasmus Andersson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage b/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage deleted file mode 100644 index ac6ff8ba..00000000 --- a/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage +++ /dev/null @@ -1,434 +0,0 @@ - - - - - comment - LeSS - fileTypes - - less - - foldingStartMarker - /\*\*(?!\*)|\{\s*($|/\*(?!.*?\*/.*\S)) - foldingStopMarker - (?<!\*)\*\*/|^\s*\} - keyEquivalent - ^~L - name - LESS - patterns - - - match - \b(a|abbr|acronym|address|applet|article|area|audio|video|b|base|big|blockquote|body|br|button|caption|canvas|center|cite|code|col|colgroup|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figure|figcaption|form|frame|frameset|(h[1-6])|head|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|meta|menu|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|q|ruby|s|samp|script|select|small|span|strike|strong|style|sub|sup|summary|svg|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|ul|var|header|section|footer|aside|hgroup|time)\b - name - keyword.control.html.elements - - - begin - " - beginCaptures - - 0 - - name - punctuation.definition.string.begin.css - - - end - " - endCaptures - - 0 - - name - punctuation.definition.string.end.css - - - name - string.quoted.double.css - patterns - - - match - \\. - name - constant.character.escaped.css - - - - - begin - ' - beginCaptures - - 0 - - name - punctuation.definition.string.begin.css - - - end - ' - endCaptures - - 0 - - name - punctuation.definition.string.end.css - - - name - string.quoted.single.css - patterns - - - match - \\. - name - constant.character.escaped.css - - - - - captures - - 1 - - name - entity.other.attribute-name.class.css - - - match - (\.[a-zA-Z0-9_-]+) - - - begin - url\( - contentName - variable.parameter.url - end - \) - name - support.function.any-method.builtin.css - - - match - (#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b - name - constant.other.rgb-value.css - - - captures - - 0 - - name - entity.other.attribute-name.id - - - match - #[a-zA-Z0-9_:\(\)-]+ - name - meta.selector.css - - - begin - /\* - beginCaptures - - 0 - - name - punctuation.definition.comment.begin.css - - - end - \*/ - endCaptures - - 0 - - name - punctuation.definition.comment.end.css - - - name - comment.block.css - - - match - (-|\+)?\s*[0-9]+(\.[0-9]+)? - name - constant.numeric.css - - - match - (?<=[\d])(px|pt|cm|mm|in|em|ex|pc)\b|% - name - keyword.other.unit.css - - - captures - - 1 - - name - entity.other.attribute-name.pseudo-element.css - - - match - (:+(after|before|not|last-child|nth-of-type|nth-child|first-child|first-letter|first-line|selection|root)) - - - captures - - 1 - - name - entity.other.attribute-name.pseudo-class.css - - - match - (:+(active|hover|link|visited|focus)) - - - captures - - 1 - - name - punctuation.definition.entity.css - - 2 - - name - entity.other.attribute-name.attribute.css - - 3 - - name - punctuation.separator.operator.css - - 4 - - name - string.unquoted.attribute-value.css - - 5 - - name - string.quoted.double.attribute-value.css - - 6 - - name - punctuation.definition.string.begin.css - - 7 - - name - punctuation.definition.string.end.css - - - match - (?i)(\[)\s*(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)(?:\s*([~|^$*]?=)\s*(?:(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)|((?>(['"])(?:[^\\]|\\.)*?(\6)))))?\s*(\]) - name - meta.attribute-selector.css - - - captures - - 1 - - name - keyword.control.at-rule.import.css - - 2 - - name - punctuation.definition.keyword.css - - - match - ^\s*((@)import\b) - name - meta.at-rule.import.css - - - captures - - 1 - - name - support.type.property-name.css.vendor - - - match - (-(?:webkit|moz|khtml|o|icab|ms)-(?:background-size|border-radius|box-shadow|opacity|border-image))\s*: - - - captures - - 1 - - name - support.type.property-name.css - - - match - \b(azimuth|background-attachment|background-color|background-clip|background-image|background-position|background-repeat|background-size|background|behavior|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border-radius|border|box-shadow|bottom|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|filter|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow(-[xy])?|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|pre-wrap|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|word-wrap|z-index|zoom) - - - match - \b(absolute|all-scroll|always|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|col-resize|collapse|crosshair|dashed|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|groove|hand|help|hidden|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|keep-all|left|lighter|line-edge|line-through|line|linear|list-item|loose|lower-alpha|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|padding-box)\b - name - support.constant.property-value.css - - - match - (\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\b) - name - support.constant.font-name.css - - - comment - http://www.w3.org/TR/CSS21/syndata.html#value-def-color - match - \b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\b - name - support.constant.color.w3c-standard-color-name.css - - - match - \b(saturate|desaturate|lighten|darken|grayscale)\b - name - support.function.any-method.builtin.less - - - match - \b(rgb|rgba|hsl|hsla|url)\b - name - support.function.any-method.builtin.css - - - captures - - 1 - - name - support.function.any-method.vendor.css - - - match - (-(?:webkit|moz|khtml|o|icab)-(?:gradient|linear-gradient)) - - - match - \b(color-stop|from|to)\b - name - support.function.any-method.webkit.gradient.css - - - captures - - 1 - - name - support.function.less - - - match - (\.[a-zA-Z0-9_-]+)\s*(;|\() - - - begin - (^[ \t]+)?(?=//) - beginCaptures - - 1 - - name - punctuation.whitespace.comment.leading.less - - - end - (?!\G) - patterns - - - begin - // - beginCaptures - - 0 - - name - punctuation.definition.comment.less - - - end - \n - name - comment.line.double-slash.less - - - - - match - @[a-zA-Z0-9_-][\w-]* - name - variable.other.less - - - match - \$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|(?<!\()/=|%=|\+=|\-=|&=|\^=|\/\b - name - keyword.operator.less - - - captures - - 1 - - name - punctuation.section.property-list.begin.css - - 2 - - name - punctuation.section.property-list.end.css - - - comment - Match empty braces to give proper ↩ action - match - (\{)(\}) - name - meta.brace.curly.less - - - match - \{|\} - name - meta.brace.curly.less - - - match - \(|\) - name - meta.brace.round.less - - - match - \[|\] - name - meta.brace.square.less - - - scopeName - source.css.less - uuid - 9343D324-75A1-4733-A5C0-5D1D4B6182D0 - - diff --git a/vendor/grammars/less.tmbundle/info.plist b/vendor/grammars/less.tmbundle/info.plist deleted file mode 100644 index e555f0ba..00000000 --- a/vendor/grammars/less.tmbundle/info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - contactEmailRot13 - zfurrgf@juvgrsnyyf.bet - contactName - Michael Sheets - description - Extends CSS with dynamic behavior such as variables, mixins, operations and functions. - mainMenu - - items - - 78788223-5E5E-434E-98BE-17BCDF600611 - 448D3A8D-260E-4949-BA33-654886ECDCAF - - submenus - - - name - LESS - uuid - D1D51EE5-E89F-4B14-8AE4-FC364E540B47 - - diff --git a/vendor/grammars/make.tmbundle b/vendor/grammars/make.tmbundle index 1a1827da..01069d2b 160000 --- a/vendor/grammars/make.tmbundle +++ b/vendor/grammars/make.tmbundle @@ -1 +1 @@ -Subproject commit 1a1827da81e20fdce56e2658451340c070ca44b7 +Subproject commit 01069d2b38514f5d5d1519737f4be937566e195e diff --git a/vendor/grammars/mediawiki.tmbundle b/vendor/grammars/mediawiki.tmbundle index f8dead50..bdd6eeb5 160000 --- a/vendor/grammars/mediawiki.tmbundle +++ b/vendor/grammars/mediawiki.tmbundle @@ -1 +1 @@ -Subproject commit f8dead507a1aed539376b9fcfde877a855842e8e +Subproject commit bdd6eeb5ee28c6fcc70cb76c7951c7da8f54e642 diff --git a/vendor/grammars/objective-c.tmbundle b/vendor/grammars/objective-c.tmbundle index 583d31f6..2fc124a6 160000 --- a/vendor/grammars/objective-c.tmbundle +++ b/vendor/grammars/objective-c.tmbundle @@ -1 +1 @@ -Subproject commit 583d31f6734589a6ea1e2da1be9da57cf25a63f9 +Subproject commit 2fc124a68a66018bedcf75ed8fd74d92acdb483f diff --git a/vendor/grammars/pawn-sublime-language b/vendor/grammars/pawn-sublime-language index 1916b03b..2940b429 160000 --- a/vendor/grammars/pawn-sublime-language +++ b/vendor/grammars/pawn-sublime-language @@ -1 +1 @@ -Subproject commit 1916b03ba0f61f488637310c7608b3244fc80c0e +Subproject commit 2940b429a66f300ccf07020e63a799afab6522bd diff --git a/vendor/grammars/r.tmbundle b/vendor/grammars/r.tmbundle index 44691a07..d005a0f1 160000 --- a/vendor/grammars/r.tmbundle +++ b/vendor/grammars/r.tmbundle @@ -1 +1 @@ -Subproject commit 44691a07734715b11a130a4af409508f53f83aa1 +Subproject commit d005a0f1055020757b797e4959d1b43ece3708aa diff --git a/vendor/grammars/sourcepawn b/vendor/grammars/sourcepawn index 294d3ba0..d5e1022a 160000 --- a/vendor/grammars/sourcepawn +++ b/vendor/grammars/sourcepawn @@ -1 +1 @@ -Subproject commit 294d3ba0972f0456d9d3f554dcd8f97b51aa4d40 +Subproject commit d5e1022a4e09cdba32b416e682a2c31c72240733 diff --git a/vendor/grammars/sublime-autoit b/vendor/grammars/sublime-autoit index eeca5030..6d87c55f 160000 --- a/vendor/grammars/sublime-autoit +++ b/vendor/grammars/sublime-autoit @@ -1 +1 @@ -Subproject commit eeca5030567213210108fb24d123399575fd94ae +Subproject commit 6d87c55fd089950a456c864ce50f7d227f2bb06a diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index d3c63dec..bb8d73c7 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit d3c63dec579be852b1d8006dc58a9a6f2a9e6cdc +Subproject commit bb8d73c7a23fab9e6cce5c6340a51f0089b40a91 diff --git a/vendor/grammars/sublime-typescript b/vendor/grammars/sublime-typescript index 27529a65..cfe1d982 160000 --- a/vendor/grammars/sublime-typescript +++ b/vendor/grammars/sublime-typescript @@ -1 +1 @@ -Subproject commit 27529a651f1aea441c3a8c809b0858d0900d82aa +Subproject commit cfe1d982384e2434bfea0cc5159387d942f8f2e6 diff --git a/vendor/grammars/sublimeassembly b/vendor/grammars/sublimeassembly index edb58c82..2599ced0 160000 --- a/vendor/grammars/sublimeassembly +++ b/vendor/grammars/sublimeassembly @@ -1 +1 @@ -Subproject commit edb58c8246fc92ab4003bb039b5e0d09c706574f +Subproject commit 2599ced076f6147d6456a60de9ff83f2507c9e6e diff --git a/vendor/grammars/vue-syntax-highlight b/vendor/grammars/vue-syntax-highlight index 8e729750..f95b61a4 160000 --- a/vendor/grammars/vue-syntax-highlight +++ b/vendor/grammars/vue-syntax-highlight @@ -1 +1 @@ -Subproject commit 8e729750bc181d3d05d5e74cf7cb8f8c4c19627d +Subproject commit f95b61a40dbae2d415a5a9fed90d46a59a3df0cb diff --git a/vendor/licenses/grammar/ebundles.txt b/vendor/licenses/grammar/ebundles.txt deleted file mode 100644 index eccf4579..00000000 --- a/vendor/licenses/grammar/ebundles.txt +++ /dev/null @@ -1,26 +0,0 @@ ---- -type: grammar -name: ebundles -license: mit -curated: true ---- -If not otherwise specified (see below), files in this repository (located at https://ebundles.googlecode.com/svn/) fall under the MIT License: - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - the Software, and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”. diff --git a/vendor/licenses/grammar/Sublime-Inform.txt b/vendor/licenses/grammar/language-batchfile.txt similarity index 85% rename from vendor/licenses/grammar/Sublime-Inform.txt rename to vendor/licenses/grammar/language-batchfile.txt index 15d8edfb..4f9ab62e 100644 --- a/vendor/licenses/grammar/Sublime-Inform.txt +++ b/vendor/licenses/grammar/language-batchfile.txt @@ -1,11 +1,9 @@ --- type: grammar -name: Sublime-Inform +name: language-batchfile license: mit --- -The MIT License (MIT) - -Copyright (c) 2014 Nate Dickson +Copyright (c) 2014 Michael Mims Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -14,13 +12,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/licenses/grammar/language-emacs-lisp.txt b/vendor/licenses/grammar/language-emacs-lisp.txt new file mode 100644 index 00000000..46603bd3 --- /dev/null +++ b/vendor/licenses/grammar/language-emacs-lisp.txt @@ -0,0 +1,18 @@ +--- +type: grammar +name: language-emacs-lisp +license: isc +--- +Copyright (c) 2016, John Gardner + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/vendor/licenses/grammar/language-rpm-spec.txt b/vendor/licenses/grammar/language-rpm-spec.txt new file mode 100644 index 00000000..533fb6fa --- /dev/null +++ b/vendor/licenses/grammar/language-rpm-spec.txt @@ -0,0 +1,25 @@ +--- +type: grammar +name: language-rpm-spec +license: mit +--- +Copyright (c) 2015 Jeremiah Powell + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/licenses/grammar/Sublime-VimL.txt b/vendor/licenses/grammar/language-viml.txt similarity index 85% rename from vendor/licenses/grammar/Sublime-VimL.txt rename to vendor/licenses/grammar/language-viml.txt index fe443d3e..0bb64e03 100644 --- a/vendor/licenses/grammar/Sublime-VimL.txt +++ b/vendor/licenses/grammar/language-viml.txt @@ -1,11 +1,12 @@ --- type: grammar -name: Sublime-VimL +name: language-viml license: mit --- The MIT License (MIT) -Copyright (c) 2014 Max Vasiliev, Salvatore Gentile +Copyright (c) 2014-2016 Evan Hahn +Copyright (c) 2016 John Gardner Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -14,13 +15,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/licenses/grammar/less.tmbundle.txt b/vendor/licenses/grammar/less.tmbundle.txt deleted file mode 100644 index 5d12ca2e..00000000 --- a/vendor/licenses/grammar/less.tmbundle.txt +++ /dev/null @@ -1,14 +0,0 @@ ---- -type: grammar -name: less.tmbundle -license: mit -curated: true ---- - -Copyright (c) 2010 Scott Kyle and Rasmus Andersson - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.