diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb
index bc1707a9..7bb4af7b 100644
--- a/lib/linguist/version.rb
+++ b/lib/linguist/version.rb
@@ -1,3 +1,3 @@
module Linguist
- VERSION = "4.7.5"
+ VERSION = "4.7.6"
end
diff --git a/vendor/grammars/Sublime-Inform/.gitignore b/vendor/grammars/Sublime-Inform/.gitignore
new file mode 100644
index 00000000..9bea4330
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/.gitignore
@@ -0,0 +1,2 @@
+
+.DS_Store
diff --git a/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet
new file mode 100644
index 00000000..d00b609b
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet
@@ -0,0 +1,6 @@
+
+
+ book
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet
new file mode 100644
index 00000000..344ae92d
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet
@@ -0,0 +1,6 @@
+
+
+ chapter
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet
new file mode 100644
index 00000000..9504585b
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet
@@ -0,0 +1,7 @@
+
+
+ door
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage b/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage
new file mode 100644
index 00000000..e5b6e92b
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage
@@ -0,0 +1,34 @@
+{ "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
new file mode 100755
index 00000000..5609885e
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage
@@ -0,0 +1,74 @@
+
+
+
+
+ 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
new file mode 100644
index 00000000..65f040af
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet
@@ -0,0 +1,8 @@
+
+
+ object
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet
new file mode 100644
index 00000000..9e161cca
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet
@@ -0,0 +1,6 @@
+
+
+ part
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet
new file mode 100644
index 00000000..b6abef45
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet
@@ -0,0 +1,7 @@
+
+
+ room
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet
new file mode 100644
index 00000000..fd4be030
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet
@@ -0,0 +1,11 @@
+
+
+ scene
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet
new file mode 100644
index 00000000..7ab043cb
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet
@@ -0,0 +1,6 @@
+
+
+ section
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet
new file mode 100644
index 00000000..0721fcbf
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet
@@ -0,0 +1,6 @@
+
+
+ volume
+ source.Inform7
+
diff --git a/vendor/grammars/Sublime-Inform/LICENSE.txt b/vendor/grammars/Sublime-Inform/LICENSE.txt
new file mode 100644
index 00000000..cda6f052
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/LICENSE.txt
@@ -0,0 +1,21 @@
+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
new file mode 100644
index 00000000..3b907f1e
--- /dev/null
+++ b/vendor/grammars/Sublime-Inform/README.md
@@ -0,0 +1,8 @@
+#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/less.tmbundle/Commands/Save to CSS.tmCommand b/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand
new file mode 100644
index 00000000..9f8e7561
--- /dev/null
+++ b/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand
@@ -0,0 +1,47 @@
+
+
+
+
+ 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
new file mode 100644
index 00000000..fc8fe21f
--- /dev/null
+++ b/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand
@@ -0,0 +1,47 @@
+
+
+
+
+ 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
new file mode 100644
index 00000000..21ce88f4
--- /dev/null
+++ b/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand
@@ -0,0 +1,38 @@
+
+
+
+
+ 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
new file mode 100644
index 00000000..1d8bf1fe
--- /dev/null
+++ b/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences
@@ -0,0 +1,36 @@
+
+
+
+
+ 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
new file mode 100644
index 00000000..ed6ac672
--- /dev/null
+++ b/vendor/grammars/less.tmbundle/README.md
@@ -0,0 +1,25 @@
+# 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
new file mode 100644
index 00000000..ac6ff8ba
--- /dev/null
+++ b/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage
@@ -0,0 +1,434 @@
+
+
+
+
+ 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
new file mode 100644
index 00000000..e555f0ba
--- /dev/null
+++ b/vendor/grammars/less.tmbundle/info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ 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
+
+