mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Merge remote-tracking branch 'origin/master' into interpreters-in-samples
* origin/master: (30 commits) Add byebug Link to Lightshow in CONTRIBUTING.md Switch to a better F# grammar Bump Rugged again Checkout the master for testing Rugged 0.22.0b3 Reordering Bump version to 4.0.3 Add some docs for tm_scope Change NONE to none Checking other case for Chart.jS Test that all languages have grammars Fix RHTML's tm_scope Chart JS is vendored Switch to a better grammar for Bro reorder again… put cjsx at the top Use a SQF grammar for SQF files move cjsx before iced move cjsx before iced ... Conflicts: lib/linguist/languages.yml
This commit is contained in:
@@ -2,6 +2,7 @@ before_install:
|
||||
- git fetch origin master:master
|
||||
- git fetch origin v2.0.0:v2.0.0
|
||||
- git fetch origin test/attributes:test/attributes
|
||||
- git fetch origin test/master:test/master
|
||||
- sudo apt-get install libicu-dev -y
|
||||
rvm:
|
||||
- 1.9.3
|
||||
|
||||
@@ -12,7 +12,7 @@ This can usually be solved either by adding a new filename or file name extensio
|
||||
|
||||
Assuming your code is being detected as the right language (see above), in most cases this is due to a bug in the language grammar rather than a bug in Linguist. [`grammars.yml`][grammars] lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream.
|
||||
|
||||
You can also try to fix the bug yourself and submit a Pull Request. [This piece from TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars.
|
||||
You can also try to fix the bug yourself and submit a Pull Request. [This piece from TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://lightshow.githubapp.com).
|
||||
|
||||
Once the bug has been fixed upstream, please let us know and we'll pick it up for GitHub.
|
||||
|
||||
|
||||
1
Gemfile
1
Gemfile
@@ -2,3 +2,4 @@ source 'https://rubygems.org'
|
||||
gemspec :name => "github-linguist"
|
||||
gemspec :name => "github-linguist-grammars"
|
||||
gem 'test-unit', require: false if RUBY_VERSION >= '2.2'
|
||||
gem 'byebug'
|
||||
|
||||
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
||||
s.add_dependency 'charlock_holmes', '~> 0.7.3'
|
||||
s.add_dependency 'escape_utils', '~> 1.0.1'
|
||||
s.add_dependency 'mime-types', '>= 1.19'
|
||||
s.add_dependency 'rugged', '~> 0.22.0b1'
|
||||
s.add_dependency 'rugged', '~> 0.22.0b4'
|
||||
|
||||
s.add_development_dependency 'mocha'
|
||||
s.add_development_dependency 'pry'
|
||||
|
||||
11
grammars.yml
11
grammars.yml
@@ -5,8 +5,6 @@ http://svn.textmate.org/trunk/Review/Bundles/BlitzMax.tmbundle:
|
||||
- source.blitzmax
|
||||
http://svn.textmate.org/trunk/Review/Bundles/Cython.tmbundle:
|
||||
- source.cython
|
||||
http://svn.textmate.org/trunk/Review/Bundles/F%20Sharp.tmbundle:
|
||||
- source.fsharp
|
||||
http://svn.textmate.org/trunk/Review/Bundles/Forth.tmbundle:
|
||||
- source.forth
|
||||
http://svn.textmate.org/trunk/Review/Bundles/Parrot.tmbundle:
|
||||
@@ -38,6 +36,8 @@ https://github.com/Drako/SublimeBrainfuck/raw/master/Brainfuck.tmLanguage:
|
||||
- source.bf
|
||||
https://github.com/JohnNilsson/awk-sublime/raw/master/AWK.tmLanguage:
|
||||
- source.awk
|
||||
https://github.com/JonBons/Sublime-SQF-Language:
|
||||
- source.sqf
|
||||
https://github.com/MarioRicalde/SCSS.tmbundle:
|
||||
- source.scss
|
||||
https://github.com/Oldes/Sublime-REBOL:
|
||||
@@ -97,6 +97,8 @@ https://github.com/bholt/chapel-tmbundle:
|
||||
- source.chapel
|
||||
https://github.com/brandonwamboldt/sublime-nginx:
|
||||
- source.nginx
|
||||
https://github.com/bro/bro-sublime:
|
||||
- source.bro
|
||||
https://github.com/carsonoid/sublime_man_page_support/raw/master/man-groff.tmLanguage:
|
||||
- text.groff
|
||||
https://github.com/ccreutzig/sublime-MuPAD:
|
||||
@@ -131,6 +133,8 @@ https://github.com/euler0/sublime-glsl/raw/master/GLSL.tmLanguage:
|
||||
- source.glsl
|
||||
https://github.com/fancy-lang/fancy-tmbundle:
|
||||
- source.fancy
|
||||
https://github.com/fsharp/fsharpbinding:
|
||||
- source.fsharp
|
||||
https://github.com/gingerbeardman/monkey.tmbundle:
|
||||
- source.monkey
|
||||
https://github.com/guillermooo/dart-sublime-bundle/raw/master/Dart.tmLanguage:
|
||||
@@ -215,9 +219,6 @@ https://github.com/slavapestov/factor/raw/master/misc/Factor.tmbundle/Syntaxes/F
|
||||
- source.factor
|
||||
https://github.com/slim-template/ruby-slim.tmbundle:
|
||||
- text.slim
|
||||
https://github.com/smiledawgg/Bro.tmbundle:
|
||||
- source.bro
|
||||
- source.bro.sig
|
||||
https://github.com/staltz/SublimeXtend:
|
||||
- source.xtend
|
||||
https://github.com/statatmbundle/Stata.tmbundle:
|
||||
|
||||
@@ -57,14 +57,20 @@ module Linguist
|
||||
#
|
||||
# Returns a String.
|
||||
def extension
|
||||
# File.extname returns nil if the filename is an extension.
|
||||
extension = File.extname(name)
|
||||
basename = File.basename(name)
|
||||
# Checks if the filename is an extension.
|
||||
if extension.empty? && basename[0] == "."
|
||||
basename
|
||||
else
|
||||
extension
|
||||
extensions.last || ""
|
||||
end
|
||||
|
||||
# Public: Return an array of the file extensions
|
||||
#
|
||||
# >> Linguist::FileBlob.new("app/views/things/index.html.erb").extensions
|
||||
# => [".html.erb", ".erb"]
|
||||
#
|
||||
# Returns an Array
|
||||
def extensions
|
||||
basename, *segments = File.basename(name).split(".")
|
||||
|
||||
segments.map.with_index do |segment, index|
|
||||
"." + segments[index..-1].join(".")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -106,8 +106,8 @@ module Linguist
|
||||
# A bit of an elegant hack. If the file is executable but extensionless,
|
||||
# append a "magic" extension so it can be classified with other
|
||||
# languages that have shebang scripts.
|
||||
extension = FileBlob.new(name).extension
|
||||
if extension.empty? && blob.mode && (blob.mode.to_i(8) & 05) == 05
|
||||
extensions = FileBlob.new(name).extensions
|
||||
if extensions.empty? && blob.mode && (blob.mode.to_i(8) & 05) == 05
|
||||
name += ".script!"
|
||||
end
|
||||
|
||||
@@ -190,8 +190,13 @@ module Linguist
|
||||
# Returns all matching Languages or [] if none were found.
|
||||
def self.find_by_filename(filename)
|
||||
basename = File.basename(filename)
|
||||
extname = FileBlob.new(filename).extension
|
||||
(@filename_index[basename] + find_by_extension(extname)).compact.uniq
|
||||
|
||||
# find the first extension with language definitions
|
||||
extname = FileBlob.new(filename).extensions.detect do |e|
|
||||
!@extension_index[e].empty?
|
||||
end
|
||||
|
||||
(@filename_index[basename] + @extension_index[extname]).compact.uniq
|
||||
end
|
||||
|
||||
# Public: Look up Languages by file extension.
|
||||
|
||||
@@ -12,6 +12,10 @@
|
||||
# search_term - Deprecated: Some languages maybe indexed under a
|
||||
# different alias. Avoid defining new exceptions.
|
||||
# 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.
|
||||
#
|
||||
# Any additions or modifications (even trivial) should have corresponding
|
||||
# test change in `test/test_blob.rb`.
|
||||
@@ -45,6 +49,7 @@ APL:
|
||||
extensions:
|
||||
- .apl
|
||||
- .dyalog
|
||||
tm_scope: none
|
||||
|
||||
ASP:
|
||||
type: programming
|
||||
@@ -146,6 +151,7 @@ Arc:
|
||||
color: "#ca2afe"
|
||||
extensions:
|
||||
- .arc
|
||||
tm_scope: none
|
||||
|
||||
Arduino:
|
||||
type: programming
|
||||
@@ -162,12 +168,14 @@ AsciiDoc:
|
||||
- .asciidoc
|
||||
- .adoc
|
||||
- .asc
|
||||
tm_scope: none
|
||||
|
||||
AspectJ:
|
||||
type: programming
|
||||
color: "#1957b0"
|
||||
extensions:
|
||||
- .aj
|
||||
tm_scope: none
|
||||
|
||||
Assembly:
|
||||
type: programming
|
||||
@@ -185,6 +193,7 @@ Augeas:
|
||||
type: programming
|
||||
extensions:
|
||||
- .aug
|
||||
tm_scope: none
|
||||
|
||||
AutoHotkey:
|
||||
type: programming
|
||||
@@ -194,6 +203,7 @@ AutoHotkey:
|
||||
extensions:
|
||||
- .ahk
|
||||
- .ahkl
|
||||
tm_scope: none
|
||||
|
||||
AutoIt:
|
||||
type: programming
|
||||
@@ -286,6 +296,7 @@ Brightscript:
|
||||
type: programming
|
||||
extensions:
|
||||
- .brs
|
||||
tm_scope: none
|
||||
|
||||
Bro:
|
||||
type: programming
|
||||
@@ -359,6 +370,7 @@ CLIPS:
|
||||
type: programming
|
||||
extensions:
|
||||
- .clp
|
||||
tm_scope: none
|
||||
|
||||
CMake:
|
||||
extensions:
|
||||
@@ -421,6 +433,7 @@ Clean:
|
||||
extensions:
|
||||
- .icl
|
||||
- .dcl
|
||||
tm_scope: none
|
||||
|
||||
Clojure:
|
||||
type: programming
|
||||
@@ -449,6 +462,7 @@ CoffeeScript:
|
||||
extensions:
|
||||
- .coffee
|
||||
- ._coffee
|
||||
- .cjsx
|
||||
- .cson
|
||||
- .iced
|
||||
filenames:
|
||||
@@ -537,6 +551,7 @@ Creole:
|
||||
wrap: true
|
||||
extensions:
|
||||
- .creole
|
||||
tm_scope: none
|
||||
|
||||
Crystal:
|
||||
type: programming
|
||||
@@ -606,6 +621,7 @@ Darcs Patch:
|
||||
extensions:
|
||||
- .darcspatch
|
||||
- .dpatch
|
||||
tm_scope: none
|
||||
|
||||
Dart:
|
||||
type: programming
|
||||
@@ -633,6 +649,7 @@ Dogescript:
|
||||
color: "#cca760"
|
||||
extensions:
|
||||
- .djs
|
||||
tm_scope: none
|
||||
|
||||
Dylan:
|
||||
type: programming
|
||||
@@ -648,6 +665,7 @@ E:
|
||||
color: "#ccce35"
|
||||
extensions:
|
||||
- .E
|
||||
tm_scope: none
|
||||
|
||||
ECL:
|
||||
type: programming
|
||||
@@ -655,6 +673,7 @@ ECL:
|
||||
extensions:
|
||||
- .ecl
|
||||
- .eclxml
|
||||
tm_scope: none
|
||||
|
||||
Eagle:
|
||||
type: markup
|
||||
@@ -740,6 +759,7 @@ FLUX:
|
||||
extensions:
|
||||
- .fx
|
||||
- .flux
|
||||
tm_scope: none
|
||||
|
||||
FORTRAN:
|
||||
type: programming
|
||||
@@ -813,11 +833,13 @@ G-code:
|
||||
- .g
|
||||
- .gco
|
||||
- .gcode
|
||||
tm_scope: none
|
||||
|
||||
GAMS:
|
||||
type: programming
|
||||
extensions:
|
||||
- .gms
|
||||
tm_scope: none
|
||||
|
||||
GAP:
|
||||
type: programming
|
||||
@@ -826,6 +848,7 @@ GAP:
|
||||
- .gap
|
||||
- .gd
|
||||
- .gi
|
||||
tm_scope: none
|
||||
|
||||
GAS:
|
||||
type: programming
|
||||
@@ -839,6 +862,7 @@ GDScript:
|
||||
type: programming
|
||||
extensions:
|
||||
- .gd
|
||||
tm_scope: none
|
||||
|
||||
GLSL:
|
||||
group: C
|
||||
@@ -925,6 +949,7 @@ Golo:
|
||||
color: "#f6a51f"
|
||||
extensions:
|
||||
- .golo
|
||||
tm_scope: none
|
||||
|
||||
Gosu:
|
||||
type: programming
|
||||
@@ -940,6 +965,7 @@ Grace:
|
||||
type: programming
|
||||
extensions:
|
||||
- .grace
|
||||
tm_scope: none
|
||||
|
||||
Grammatical Framework:
|
||||
type: programming
|
||||
@@ -956,6 +982,7 @@ Graph Modeling Language:
|
||||
type: data
|
||||
extensions:
|
||||
- .gml
|
||||
tm_scope: none
|
||||
|
||||
Graphviz (DOT):
|
||||
type: data
|
||||
@@ -1010,6 +1037,7 @@ HTML:
|
||||
- .html
|
||||
- .htm
|
||||
- .st
|
||||
- .xht
|
||||
- .xhtml
|
||||
|
||||
HTML+Django:
|
||||
@@ -1045,6 +1073,7 @@ HTTP:
|
||||
type: data
|
||||
extensions:
|
||||
- .http
|
||||
tm_scope: none
|
||||
|
||||
Hack:
|
||||
type: programming
|
||||
@@ -1052,6 +1081,7 @@ Hack:
|
||||
extensions:
|
||||
- .hh
|
||||
- .php
|
||||
tm_scope: none
|
||||
|
||||
Haml:
|
||||
group: HTML
|
||||
@@ -1074,6 +1104,7 @@ Harbour:
|
||||
color: "#0e60e3"
|
||||
extensions:
|
||||
- .hb
|
||||
tm_scope: none
|
||||
|
||||
Haskell:
|
||||
type: programming
|
||||
@@ -1099,6 +1130,7 @@ Hy:
|
||||
- .hy
|
||||
aliases:
|
||||
- hylang
|
||||
tm_scope: none
|
||||
|
||||
IDL:
|
||||
type: programming
|
||||
@@ -1114,6 +1146,7 @@ IGOR Pro:
|
||||
aliases:
|
||||
- igor
|
||||
- igorpro
|
||||
tm_scope: none
|
||||
|
||||
INI:
|
||||
type: data
|
||||
@@ -1134,6 +1167,7 @@ IRC log:
|
||||
extensions:
|
||||
- .irclog
|
||||
- .weechatlog
|
||||
tm_scope: none
|
||||
|
||||
Idris:
|
||||
type: programming
|
||||
@@ -1155,6 +1189,7 @@ Inform 7:
|
||||
Inno Setup:
|
||||
extensions:
|
||||
- .iss
|
||||
tm_scope: none
|
||||
|
||||
Io:
|
||||
type: programming
|
||||
@@ -1175,11 +1210,13 @@ Isabelle:
|
||||
color: "#fdcd00"
|
||||
extensions:
|
||||
- .thy
|
||||
tm_scope: none
|
||||
|
||||
J:
|
||||
type: programming
|
||||
extensions:
|
||||
- .ijs
|
||||
tm_scope: none
|
||||
|
||||
JSON:
|
||||
type: data
|
||||
@@ -1287,6 +1324,7 @@ KRL:
|
||||
color: "#f5c800"
|
||||
extensions:
|
||||
- .krl
|
||||
tm_scope: none
|
||||
|
||||
Kit:
|
||||
type: markup
|
||||
@@ -1320,6 +1358,7 @@ LOLCODE:
|
||||
extensions:
|
||||
- .lol
|
||||
color: "#cc9900"
|
||||
tm_scope: none
|
||||
|
||||
LSL:
|
||||
type: programming
|
||||
@@ -1334,6 +1373,7 @@ LabVIEW:
|
||||
type: programming
|
||||
extensions:
|
||||
- .lvproj
|
||||
tm_scope: none
|
||||
|
||||
Lasso:
|
||||
type: programming
|
||||
@@ -1372,12 +1412,14 @@ Liquid:
|
||||
type: markup
|
||||
extensions:
|
||||
- .liquid
|
||||
tm_scope: none
|
||||
|
||||
Literate Agda:
|
||||
type: programming
|
||||
group: Agda
|
||||
extensions:
|
||||
- .lagda
|
||||
tm_scope: none
|
||||
|
||||
Literate CoffeeScript:
|
||||
type: programming
|
||||
@@ -1554,6 +1596,7 @@ MediaWiki:
|
||||
wrap: true
|
||||
extensions:
|
||||
- .mediawiki
|
||||
tm_scope: none
|
||||
|
||||
Mercury:
|
||||
type: programming
|
||||
@@ -1568,6 +1611,7 @@ MiniD: # Legacy
|
||||
searchable: false
|
||||
extensions:
|
||||
- .minid # Dummy extension
|
||||
tm_scope: none
|
||||
|
||||
Mirah:
|
||||
type: programming
|
||||
@@ -1589,6 +1633,7 @@ Moocode:
|
||||
type: programming
|
||||
extensions:
|
||||
- .moo
|
||||
tm_scope: none
|
||||
|
||||
MoonScript:
|
||||
type: programming
|
||||
@@ -1600,6 +1645,7 @@ MoonScript:
|
||||
Myghty:
|
||||
extensions:
|
||||
- .myt
|
||||
tm_scope: none
|
||||
|
||||
NSIS:
|
||||
extensions:
|
||||
@@ -1645,6 +1691,7 @@ Nit:
|
||||
color: "#0d8921"
|
||||
extensions:
|
||||
- .nit
|
||||
tm_scope: none
|
||||
|
||||
Nix:
|
||||
type: programming
|
||||
@@ -1652,6 +1699,7 @@ Nix:
|
||||
- .nix
|
||||
aliases:
|
||||
- nixos
|
||||
tm_scope: none
|
||||
|
||||
Nu:
|
||||
type: programming
|
||||
@@ -1672,6 +1720,7 @@ NumPy:
|
||||
- .numpy
|
||||
- .numpyw
|
||||
- .numsc
|
||||
tm_scope: none
|
||||
|
||||
OCaml:
|
||||
type: programming
|
||||
@@ -1732,6 +1781,7 @@ Omgrofl:
|
||||
extensions:
|
||||
- .omgrofl
|
||||
color: "#cabbff"
|
||||
tm_scope: none
|
||||
|
||||
Opa:
|
||||
type: programming
|
||||
@@ -1743,6 +1793,7 @@ Opal:
|
||||
color: "#f7ede0"
|
||||
extensions:
|
||||
- .opal
|
||||
tm_scope: none
|
||||
|
||||
OpenCL:
|
||||
type: programming
|
||||
@@ -1767,12 +1818,14 @@ OpenSCAD:
|
||||
type: programming
|
||||
extensions:
|
||||
- .scad
|
||||
tm_scope: none
|
||||
|
||||
Org:
|
||||
type: prose
|
||||
wrap: true
|
||||
extensions:
|
||||
- .org
|
||||
tm_scope: none
|
||||
|
||||
Ox:
|
||||
type: programming
|
||||
@@ -1780,12 +1833,14 @@ Ox:
|
||||
- .ox
|
||||
- .oxh
|
||||
- .oxo
|
||||
tm_scope: none
|
||||
|
||||
Oxygene:
|
||||
type: programming
|
||||
color: "#5a63a3"
|
||||
extensions:
|
||||
- .oxygene
|
||||
tm_scope: none
|
||||
|
||||
PAWN:
|
||||
type: programming
|
||||
@@ -1821,18 +1876,21 @@ Pan:
|
||||
color: '#cc0000'
|
||||
extensions:
|
||||
- .pan
|
||||
tm_scope: none
|
||||
|
||||
Papyrus:
|
||||
type: programming
|
||||
color: "#6600cc"
|
||||
extensions:
|
||||
- .psc
|
||||
tm_scope: none
|
||||
|
||||
Parrot:
|
||||
type: programming
|
||||
color: "#f3ca0a"
|
||||
extensions:
|
||||
- .parrot # Dummy extension
|
||||
tm_scope: none
|
||||
|
||||
Parrot Assembly:
|
||||
group: Parrot
|
||||
@@ -1843,6 +1901,7 @@ Parrot Assembly:
|
||||
- .pasm
|
||||
interpreters:
|
||||
- parrot
|
||||
tm_scope: none
|
||||
|
||||
Parrot Internal Representation:
|
||||
group: Parrot
|
||||
@@ -1898,12 +1957,14 @@ Perl6:
|
||||
- .pm6
|
||||
interpreters:
|
||||
- perl6
|
||||
tm_scope: none
|
||||
|
||||
PigLatin:
|
||||
type: programming
|
||||
color: "#fcd7de"
|
||||
extensions:
|
||||
- .pig
|
||||
tm_scope: none
|
||||
|
||||
Pike:
|
||||
type: programming
|
||||
@@ -1918,12 +1979,14 @@ Pod:
|
||||
wrap: true
|
||||
extensions:
|
||||
- .pod
|
||||
tm_scope: none
|
||||
|
||||
PogoScript:
|
||||
type: programming
|
||||
color: "#d80074"
|
||||
extensions:
|
||||
- .pogo
|
||||
tm_scope: none
|
||||
|
||||
PostScript:
|
||||
type: markup
|
||||
@@ -1966,6 +2029,7 @@ Propeller Spin:
|
||||
color: "#2b446d"
|
||||
extensions:
|
||||
- .spin
|
||||
tm_scope: none
|
||||
|
||||
Protocol Buffer:
|
||||
type: markup
|
||||
@@ -1989,6 +2053,7 @@ Pure Data:
|
||||
color: "#91de79"
|
||||
extensions:
|
||||
- .pd
|
||||
tm_scope: none
|
||||
|
||||
PureScript:
|
||||
type: programming
|
||||
@@ -2087,7 +2152,7 @@ RHTML:
|
||||
group: HTML
|
||||
extensions:
|
||||
- .rhtml
|
||||
tm_scope: text.html.ruby
|
||||
tm_scope: text.html.erb
|
||||
aliases:
|
||||
- html+ruby
|
||||
|
||||
@@ -2098,6 +2163,7 @@ RMarkdown:
|
||||
extensions:
|
||||
- .rmd
|
||||
- .Rmd
|
||||
tm_scope: none
|
||||
|
||||
Racket:
|
||||
type: programming
|
||||
@@ -2117,6 +2183,7 @@ Ragel in Ruby Host:
|
||||
aliases:
|
||||
- ragel-rb
|
||||
- ragel-ruby
|
||||
tm_scope: none
|
||||
|
||||
Raw token data:
|
||||
search_term: raw
|
||||
@@ -2124,6 +2191,7 @@ Raw token data:
|
||||
- raw
|
||||
extensions:
|
||||
- .raw
|
||||
tm_scope: none
|
||||
|
||||
Rebol:
|
||||
type: programming
|
||||
@@ -2143,10 +2211,12 @@ Red:
|
||||
- .reds
|
||||
aliases:
|
||||
- red/system
|
||||
tm_scope: none
|
||||
|
||||
Redcode:
|
||||
extensions:
|
||||
- .cw
|
||||
tm_scope: none
|
||||
|
||||
RobotFramework:
|
||||
type: programming
|
||||
@@ -2221,6 +2291,7 @@ SAS:
|
||||
color: "#1E90FF"
|
||||
extensions:
|
||||
- .sas
|
||||
tm_scope: none
|
||||
|
||||
SCSS:
|
||||
type: markup
|
||||
@@ -2236,7 +2307,7 @@ SQF:
|
||||
extensions:
|
||||
- .sqf
|
||||
- .hqf
|
||||
tm_scope: source.c++
|
||||
tm_scope: source.sqf
|
||||
|
||||
SQL:
|
||||
type: data
|
||||
@@ -2316,6 +2387,7 @@ Self:
|
||||
color: "#0579aa"
|
||||
extensions:
|
||||
- .self
|
||||
tm_scope: none
|
||||
|
||||
Shell:
|
||||
type: programming
|
||||
@@ -2354,6 +2426,7 @@ Shen:
|
||||
color: "#120F14"
|
||||
extensions:
|
||||
- .shen
|
||||
tm_scope: none
|
||||
|
||||
Slash:
|
||||
type: programming
|
||||
@@ -2424,6 +2497,7 @@ Stylus:
|
||||
group: CSS
|
||||
extensions:
|
||||
- .styl
|
||||
tm_scope: none
|
||||
|
||||
SuperCollider:
|
||||
type: programming
|
||||
@@ -2431,6 +2505,7 @@ SuperCollider:
|
||||
extensions:
|
||||
- .scd
|
||||
- .sc
|
||||
tm_scope: none
|
||||
|
||||
Swift:
|
||||
type: programming
|
||||
@@ -2456,6 +2531,7 @@ TXL:
|
||||
type: programming
|
||||
extensions:
|
||||
- .txl
|
||||
tm_scope: none
|
||||
|
||||
Tcl:
|
||||
type: programming
|
||||
@@ -2512,6 +2588,7 @@ Textile:
|
||||
wrap: true
|
||||
extensions:
|
||||
- .textile
|
||||
tm_scope: none
|
||||
|
||||
Thrift:
|
||||
type: programming
|
||||
@@ -2525,6 +2602,7 @@ Turing:
|
||||
extensions:
|
||||
- .t
|
||||
- .tu
|
||||
tm_scope: none
|
||||
|
||||
Twig:
|
||||
type: markup
|
||||
@@ -2785,6 +2863,7 @@ Zimpl:
|
||||
- .zimpl
|
||||
- .zmpl
|
||||
- .zpl
|
||||
tm_scope: none
|
||||
|
||||
eC:
|
||||
type: programming
|
||||
@@ -2792,6 +2871,7 @@ eC:
|
||||
extensions:
|
||||
- .ec
|
||||
- .eh
|
||||
tm_scope: none
|
||||
|
||||
edn:
|
||||
type: data
|
||||
@@ -2806,6 +2886,7 @@ fish:
|
||||
group: Shell
|
||||
extensions:
|
||||
- .fish
|
||||
tm_scope: none
|
||||
|
||||
mupad:
|
||||
extensions:
|
||||
@@ -2846,3 +2927,4 @@ xBase:
|
||||
color: "#3a4040"
|
||||
extensions:
|
||||
- .prg
|
||||
tm_scope: none
|
||||
|
||||
@@ -110,6 +110,9 @@
|
||||
# MathJax
|
||||
- (^|/)MathJax/
|
||||
|
||||
# Chart.js
|
||||
- (^|/)Chart\.js$
|
||||
|
||||
# Codemirror
|
||||
- (^|/)[Cc]ode[Mm]irror/(lib|mode|theme|addon|keymap)
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
module Linguist
|
||||
VERSION = "4.0.2"
|
||||
VERSION = "4.0.3"
|
||||
end
|
||||
|
||||
40
samples/CoffeeScript/example.cjsx
Normal file
40
samples/CoffeeScript/example.cjsx
Normal file
@@ -0,0 +1,40 @@
|
||||
###* @cjsx React.DOM ###
|
||||
define 'myProject.ReactExampleComponent', [
|
||||
'React'
|
||||
'myProject.ExampleStore'
|
||||
'myProject.ExampleActions'
|
||||
'myProject.ReactExampleTable'
|
||||
], (React, ExampleStore, ExampleActions, ReactExampleTable ) ->
|
||||
|
||||
ReactExampleComponent = React.createClass
|
||||
mixins: [ListenMixin]
|
||||
|
||||
getInitialState: ->
|
||||
rows: ExampleStore.getRows()
|
||||
meta: ExampleStore.getMeta()
|
||||
|
||||
componentWillMount: ->
|
||||
@listenTo ExampleStore
|
||||
|
||||
componentDidMount: ->
|
||||
ExampleActions.getExampleData()
|
||||
|
||||
onStoreChange: ->
|
||||
if this.isMounted()
|
||||
@setState
|
||||
rows: ExampleStore.getRows()
|
||||
meta: ExampleStore.getMeta()
|
||||
|
||||
componentWillUnmount: ->
|
||||
@stopListening ExampleStore
|
||||
|
||||
render: ->
|
||||
<div className="page-wrap">
|
||||
<header>
|
||||
<strong> {@state.title} </strong>
|
||||
<header>
|
||||
<ReactExampleTable
|
||||
rows={@state.rows},
|
||||
meta={@state.meta}
|
||||
/>
|
||||
</div>
|
||||
17
samples/HTML/example.xht
Normal file
17
samples/HTML/example.xht
Normal file
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>This is a XHTML sample file</title>
|
||||
<style type="text/css"><![CDATA[
|
||||
#example {
|
||||
background-color: yellow;
|
||||
}
|
||||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="example">
|
||||
Just a simple <strong>XHTML</strong> test page.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
4
test/helper.rb
Normal file
4
test/helper.rb
Normal file
@@ -0,0 +1,4 @@
|
||||
require "bundler/setup"
|
||||
require "test/unit"
|
||||
require "mocha/setup"
|
||||
require "linguist"
|
||||
@@ -1,9 +1,4 @@
|
||||
require 'linguist/file_blob'
|
||||
require 'linguist/samples'
|
||||
|
||||
require 'test/unit'
|
||||
require 'mocha/setup'
|
||||
require 'mime/types'
|
||||
require_relative "./helper"
|
||||
|
||||
class TestBlob < Test::Unit::TestCase
|
||||
include Linguist
|
||||
@@ -297,6 +292,10 @@ class TestBlob < Test::Unit::TestCase
|
||||
assert blob("deps/http_parser/http_parser.c").vendored?
|
||||
assert blob("deps/v8/src/v8.h").vendored?
|
||||
|
||||
# Chart.js
|
||||
assert blob("some/vendored/path/Chart.js").vendored?
|
||||
assert !blob("some/vendored/path/chart.js").vendored?
|
||||
|
||||
# Codemirror deps
|
||||
assert blob("codemirror/mode/blah.js").vendored?
|
||||
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
require 'linguist/classifier'
|
||||
require 'linguist/language'
|
||||
require 'linguist/samples'
|
||||
require 'linguist/tokenizer'
|
||||
|
||||
require 'test/unit'
|
||||
require_relative "./helper"
|
||||
|
||||
class TestClassifier < Test::Unit::TestCase
|
||||
include Linguist
|
||||
|
||||
10
test/test_file_blob.rb
Normal file
10
test/test_file_blob.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
require 'linguist/file_blob'
|
||||
require 'test/unit'
|
||||
|
||||
class TestFileBlob < Test::Unit::TestCase
|
||||
def test_extensions
|
||||
assert_equal [".gitignore"], Linguist::FileBlob.new(".gitignore").extensions
|
||||
assert_equal [".xml"], Linguist::FileBlob.new("build.xml").extensions
|
||||
assert_equal [".html.erb", ".erb"], Linguist::FileBlob.new("dotted.dir/index.html.erb").extensions
|
||||
end
|
||||
end
|
||||
@@ -1,9 +1,4 @@
|
||||
require 'linguist/heuristics'
|
||||
require 'linguist/language'
|
||||
require 'linguist/samples'
|
||||
require 'linguist/file_blob'
|
||||
|
||||
require 'test/unit'
|
||||
require_relative "./helper"
|
||||
|
||||
class TestHeuristcs < Test::Unit::TestCase
|
||||
include Linguist
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
require 'linguist/language'
|
||||
require 'test/unit'
|
||||
require_relative "./helper"
|
||||
|
||||
class TestLanguage < Test::Unit::TestCase
|
||||
include Linguist
|
||||
@@ -222,6 +221,7 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal [Language['Clojure']], Language.find_by_filename('riemann.config')
|
||||
assert_equal [Language['HTML+Django']], Language.find_by_filename('index.jinja')
|
||||
assert_equal [Language['Chapel']], Language.find_by_filename('examples/hello.chpl')
|
||||
assert_equal [Language['Ant Build System']], Language.find_by_filename('build.ant.xml')
|
||||
end
|
||||
|
||||
def test_find_by_shebang
|
||||
@@ -359,4 +359,15 @@ class TestLanguage < Test::Unit::TestCase
|
||||
def test_by_type
|
||||
assert !Language.by_type(:prose).nil?
|
||||
end
|
||||
|
||||
def test_all_languages_have_grammars
|
||||
scopes = YAML.load(File.read(File.expand_path("../../grammars.yml", __FILE__))).values.flatten
|
||||
missing = Language.all.reject { |language| language.tm_scope == "none" || scopes.include?(language.tm_scope) }
|
||||
message = "The following languages' scopes are not listed in grammars.yml. Please add grammars for all new languages.\n"
|
||||
message << "If no grammar exists for a language, mark the language with `tm_scope: none` in lib/linguist/languages.yml.\n"
|
||||
|
||||
width = missing.map { |language| language.name.length }.max
|
||||
message << missing.map { |language| sprintf("%-#{width}s %s", language.name, language.tm_scope) }.sort.join("\n")
|
||||
assert missing.empty?, message
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
require 'linguist/md5'
|
||||
|
||||
require 'test/unit'
|
||||
require_relative "./helper"
|
||||
|
||||
class TestMD5 < Test::Unit::TestCase
|
||||
include Linguist
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
require 'test/unit'
|
||||
require 'yaml'
|
||||
require_relative "./helper"
|
||||
|
||||
class TestPedantic < Test::Unit::TestCase
|
||||
filename = File.expand_path("../../lib/linguist/languages.yml", __FILE__)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
require 'linguist/repository'
|
||||
require 'linguist/lazy_blob'
|
||||
require 'test/unit'
|
||||
require_relative "./helper"
|
||||
|
||||
class TestRepository < Test::Unit::TestCase
|
||||
def rugged_repository
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
require 'linguist/samples'
|
||||
require 'linguist/language'
|
||||
require 'tempfile'
|
||||
require 'yajl'
|
||||
require 'test/unit'
|
||||
require_relative "./helper"
|
||||
require "tempfile"
|
||||
|
||||
class TestSamples < Test::Unit::TestCase
|
||||
include Linguist
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
require 'linguist/tokenizer'
|
||||
|
||||
require 'test/unit'
|
||||
require_relative "./helper"
|
||||
|
||||
class TestTokenizer < Test::Unit::TestCase
|
||||
include Linguist
|
||||
|
||||
BIN
vendor/cache/byebug-3.5.1.gem
vendored
Normal file
BIN
vendor/cache/byebug-3.5.1.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/columnize-0.8.9.gem
vendored
Normal file
BIN
vendor/cache/columnize-0.8.9.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/debugger-linecache-1.2.0.gem
vendored
Normal file
BIN
vendor/cache/debugger-linecache-1.2.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/rugged-0.22.0b1.gem
vendored
BIN
vendor/cache/rugged-0.22.0b1.gem
vendored
Binary file not shown.
BIN
vendor/cache/rugged-0.22.0b4.gem
vendored
Normal file
BIN
vendor/cache/rugged-0.22.0b4.gem
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user