mirror of
https://github.com/Microsoft/vscode
synced 2024-10-12 06:17:18 +00:00
Use Atom-Clojure Grammar
Updates vscode to use the atom-clojure grammar. This improve colorization and fixes a few bugs. Fixes #21515
This commit is contained in:
parent
36f3a4e317
commit
ae519b728d
|
@ -3,6 +3,9 @@
|
|||
"version": "0.1.0",
|
||||
"publisher": "vscode",
|
||||
"engines": { "vscode": "*" },
|
||||
"scripts": {
|
||||
"update-grammar": "node ../../build/npm/update-grammar.js atom/language-clojure grammars/clojure.cson ./syntaxes/clojure.tmLanguage.json"
|
||||
},
|
||||
"contributes": {
|
||||
"languages": [{
|
||||
"id": "clojure",
|
||||
|
@ -13,7 +16,7 @@
|
|||
"grammars": [{
|
||||
"language": "clojure",
|
||||
"scopeName": "source.clojure",
|
||||
"path": "./syntaxes/Clojure.tmLanguage"
|
||||
"path": "./syntaxes/clojure.tmLanguage.json"
|
||||
}]
|
||||
}
|
||||
}
|
|
@ -1,440 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>fileTypes</key>
|
||||
<array>
|
||||
<string>clj</string>
|
||||
<string>cljs</string>
|
||||
<string>clojure</string>
|
||||
</array>
|
||||
<key>foldingStartMarker</key>
|
||||
<string>\(\s*$</string>
|
||||
<key>foldingStopMarker</key>
|
||||
<string>^\s*\)</string>
|
||||
<key>keyEquivalent</key>
|
||||
<string>^~C</string>
|
||||
<key>name</key>
|
||||
<string>Clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#comment</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#shebang-comment</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#qouted-sexp</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#sexp</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#keyfn</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#string</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#vector</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#set</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#map</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#regexp</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#var</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#constants</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#symbol</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#whitespace</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>repository</key>
|
||||
<dict>
|
||||
<key>comment</key>
|
||||
<dict>
|
||||
<key>captures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation.definition.comment.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>match</key>
|
||||
<string>(;).*$\n?</string>
|
||||
<key>name</key>
|
||||
<string>comment.line.semicolon.clojure</string>
|
||||
</dict>
|
||||
<key>constants</key>
|
||||
<dict>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(nil)(?=(\s|\)|\]|\}))</string>
|
||||
<key>name</key>
|
||||
<string>constant.language.nil.clojure</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(true|false)</string>
|
||||
<key>name</key>
|
||||
<string>constant.language.boolean.clojure</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(\d+/\d+)</string>
|
||||
<key>name</key>
|
||||
<string>constant.numeric.ratio.clojure</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(\d+r\d+)</string>
|
||||
<key>name</key>
|
||||
<string>constant.numeric.arbitrary-radix.clojure</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(0x\d+)</string>
|
||||
<key>name</key>
|
||||
<string>constant.numeric.hexidecimal.clojure</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(0\d+)</string>
|
||||
<key>name</key>
|
||||
<string>constant.numeric.octal.clojure</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(\d+)</string>
|
||||
<key>name</key>
|
||||
<string>constant.numeric.decimal.clojure</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(?<=(\s|\(|\[|\{)):[a-zA-Z0-9\#\.\-\_\:\+\=\>\<\/\!\?\*]+(?=(\s|\)|\]|\}))</string>
|
||||
<key>name</key>
|
||||
<string>constant.keyword.clojure</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>keyfn</key>
|
||||
<dict>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(?<=(\s|\(|\[|\{))(if(-[-a-z\?]*)?|when(-[-a-z]*)?|for(-[-a-z]*)?|cond|do|let(-[-a-z\?]*)?|binding|loop|recur|fn|throw[a-z\-]*|try|catch|finally|([a-z]*case))(?=(\s|\)|\]|\}))</string>
|
||||
<key>name</key>
|
||||
<string>storage.control.clojure</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(?<=(\s|\(|\[|\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[a-z\-]*))(?=(\s|\)|\]|\}))</string>
|
||||
<key>name</key>
|
||||
<string>keyword.control.clojure</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>map</key>
|
||||
<dict>
|
||||
<key>begin</key>
|
||||
<string>(\{)</string>
|
||||
<key>end</key>
|
||||
<string>(\})</string>
|
||||
<key>name</key>
|
||||
<string>meta.map.clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>$self</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>qouted-sexp</key>
|
||||
<dict>
|
||||
<key>begin</key>
|
||||
<string>(['``]\()</string>
|
||||
<key>beginCaptures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation.section.expression.begin.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>end</key>
|
||||
<string>(\))(\n)?</string>
|
||||
<key>endCaptures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation.section.expression.end.clojure</string>
|
||||
</dict>
|
||||
<key>2</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>meta.after-expression.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>name</key>
|
||||
<string>meta.qouted-expression.clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>$self</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>regexp</key>
|
||||
<dict>
|
||||
<key>begin</key>
|
||||
<string>#\"</string>
|
||||
<key>end</key>
|
||||
<string>\"</string>
|
||||
<key>name</key>
|
||||
<string>string.regexp.clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>#regexp_escaped_char</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>regexp_escaped_char</key>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>\\(\")</string>
|
||||
<key>name</key>
|
||||
<string>string.regexp.clojure</string>
|
||||
</dict>
|
||||
<key>set</key>
|
||||
<dict>
|
||||
<key>begin</key>
|
||||
<string>(\#\{)</string>
|
||||
<key>end</key>
|
||||
<string>(\})</string>
|
||||
<key>name</key>
|
||||
<string>meta.set.clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>$self</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>sexp</key>
|
||||
<dict>
|
||||
<key>begin</key>
|
||||
<string>(\()</string>
|
||||
<key>beginCaptures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation.section.expression.begin.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>end</key>
|
||||
<string>(\))(\n)?</string>
|
||||
<key>endCaptures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation.section.expression.end.clojure</string>
|
||||
</dict>
|
||||
<key>2</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>meta.after-expression.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>name</key>
|
||||
<string>meta.expression.clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>begin</key>
|
||||
<string>(?<=\()(ns|def|def-|defn|defn-|defvar|defvar-|defmacro|defmacro-|deftest)\s+(.+?)(?=\s)</string>
|
||||
<key>beginCaptures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>keyword.control.clojure</string>
|
||||
</dict>
|
||||
<key>2</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>entity.global.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>end</key>
|
||||
<string>(?=\))</string>
|
||||
<key>name</key>
|
||||
<string>meta.definition.global.clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>$self</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>$self</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>shebang-comment</key>
|
||||
<dict>
|
||||
<key>captures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation.definition.comment.shebang.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>match</key>
|
||||
<string>^(\#!).*$\n?</string>
|
||||
<key>name</key>
|
||||
<string>comment.line.semicolon.clojure</string>
|
||||
</dict>
|
||||
<key>string</key>
|
||||
<dict>
|
||||
<key>begin</key>
|
||||
<string>(")</string>
|
||||
<key>beginCaptures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation.definition.string.begin.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>end</key>
|
||||
<string>(")</string>
|
||||
<key>endCaptures</key>
|
||||
<dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation.definition.string.end.clojure</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>name</key>
|
||||
<string>string.quoted.double.clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>\\.</string>
|
||||
<key>name</key>
|
||||
<string>constant.character.escape.clojure</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>symbol</key>
|
||||
<dict>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(\w[\w\d]+)</string>
|
||||
<key>name</key>
|
||||
<string>meta.symbol.clojure</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>var</key>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(?<=(\s|\(|\[|\{)\#)'[a-zA-Z0-9\.\-\_\:\+\=\>\<\/\!\?\*]+(?=(\s|\)|\]|\}))</string>
|
||||
<key>name</key>
|
||||
<string>meta.var.clojure</string>
|
||||
</dict>
|
||||
<key>vector</key>
|
||||
<dict>
|
||||
<key>begin</key>
|
||||
<string>(\[)</string>
|
||||
<key>end</key>
|
||||
<string>(\])</string>
|
||||
<key>name</key>
|
||||
<string>meta.vector.clojure</string>
|
||||
<key>patterns</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>include</key>
|
||||
<string>$self</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>whitespace</key>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>\s+$</string>
|
||||
<key>name</key>
|
||||
<string>invalid.trailing-whitespace</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>scopeName</key>
|
||||
<string>source.clojure</string>
|
||||
<key>smartTypingPairs</key>
|
||||
<array>
|
||||
<array>
|
||||
<string>"</string>
|
||||
<string>"</string>
|
||||
</array>
|
||||
<array>
|
||||
<string>(</string>
|
||||
<string>)</string>
|
||||
</array>
|
||||
<array>
|
||||
<string>{</string>
|
||||
<string>}</string>
|
||||
</array>
|
||||
<array>
|
||||
<string>[</string>
|
||||
<string>]</string>
|
||||
</array>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>6A87759F-F746-4E84-B788-965B46363202</string>
|
||||
</dict>
|
||||
</plist>
|
448
extensions/clojure/syntaxes/clojure.tmLanguage.json
Normal file
448
extensions/clojure/syntaxes/clojure.tmLanguage.json
Normal file
|
@ -0,0 +1,448 @@
|
|||
{
|
||||
"scopeName": "source.clojure",
|
||||
"fileTypes": [
|
||||
"boot",
|
||||
"clj",
|
||||
"clj.hl",
|
||||
"cljc",
|
||||
"cljs",
|
||||
"cljs.hl",
|
||||
"cljx",
|
||||
"clojure",
|
||||
"edn",
|
||||
"org"
|
||||
],
|
||||
"foldingStartMarker": "\\(\\s*$",
|
||||
"foldingStopMarker": "^\\s*\\)",
|
||||
"firstLineMatch": "(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/)\n boot\n(?:$|\\s)\n|\n# Modeline\n(?i:\n # Emacs\n -\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n clojure(script)?\n (?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n |\n # Vim\n (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n clojure\n (?=\\s|:|$)\n)",
|
||||
"name": "Clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#comment"
|
||||
},
|
||||
{
|
||||
"include": "#shebang-comment"
|
||||
},
|
||||
{
|
||||
"include": "#quoted-sexp"
|
||||
},
|
||||
{
|
||||
"include": "#sexp"
|
||||
},
|
||||
{
|
||||
"include": "#keyfn"
|
||||
},
|
||||
{
|
||||
"include": "#string"
|
||||
},
|
||||
{
|
||||
"include": "#vector"
|
||||
},
|
||||
{
|
||||
"include": "#set"
|
||||
},
|
||||
{
|
||||
"include": "#map"
|
||||
},
|
||||
{
|
||||
"include": "#regexp"
|
||||
},
|
||||
{
|
||||
"include": "#var"
|
||||
},
|
||||
{
|
||||
"include": "#constants"
|
||||
},
|
||||
{
|
||||
"include": "#dynamic-variables"
|
||||
},
|
||||
{
|
||||
"include": "#metadata"
|
||||
},
|
||||
{
|
||||
"include": "#namespace-symbol"
|
||||
},
|
||||
{
|
||||
"include": "#symbol"
|
||||
},
|
||||
{
|
||||
"include": "#whitespace"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"comment": {
|
||||
"begin": ";",
|
||||
"beginCaptures": {
|
||||
"0": {
|
||||
"name": "punctuation.definition.comment.clojure"
|
||||
}
|
||||
},
|
||||
"end": "$",
|
||||
"name": "comment.line.semicolon.clojure"
|
||||
},
|
||||
"constants": {
|
||||
"patterns": [
|
||||
{
|
||||
"match": "(nil)(?=(\\s|\\)|\\]|\\}))",
|
||||
"name": "constant.language.nil.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(true|false)",
|
||||
"name": "constant.language.boolean.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(-?\\d+/\\d+)",
|
||||
"name": "constant.numeric.ratio.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(-?\\d+[rR][0-9a-zA-Z]+)",
|
||||
"name": "constant.numeric.arbitrary-radix.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(-?0[xX][0-9a-fA-F]+)",
|
||||
"name": "constant.numeric.hexadecimal.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(-?0\\d+)",
|
||||
"name": "constant.numeric.octal.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(-?\\d+\\.\\d+([eE][+-]?\\d+)?M)",
|
||||
"name": "constant.numeric.bigdecimal.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(-?\\d+\\.\\d+([eE][+-]?\\d+)?)",
|
||||
"name": "constant.numeric.double.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(-?\\d+N)",
|
||||
"name": "constant.numeric.bigint.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(-?\\d+)",
|
||||
"name": "constant.numeric.long.clojure"
|
||||
},
|
||||
{
|
||||
"include": "#keyword"
|
||||
}
|
||||
]
|
||||
},
|
||||
"keyword": {
|
||||
"match": "(?<=(\\s|\\(|\\[|\\{)):[a-zA-Z0-9\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))",
|
||||
"name": "constant.keyword.clojure"
|
||||
},
|
||||
"keyfn": {
|
||||
"patterns": [
|
||||
{
|
||||
"match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-a-z\\?]*)?|when(-[-a-z]*)?|for(-[-a-z]*)?|cond|do|let(-[-a-z\\?]*)?|binding|loop|recur|fn|throw[a-z\\-]*|try|catch|finally|([a-z]*case))(?=(\\s|\\)|\\]|\\}))",
|
||||
"name": "storage.control.clojure"
|
||||
},
|
||||
{
|
||||
"match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[a-z\\-]*))(?=(\\s|\\)|\\]|\\}))",
|
||||
"name": "keyword.control.clojure"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dynamic-variables": {
|
||||
"match": "\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*",
|
||||
"name": "meta.symbol.dynamic.clojure"
|
||||
},
|
||||
"map": {
|
||||
"begin": "(\\{)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.map.begin.clojure"
|
||||
}
|
||||
},
|
||||
"end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.map.end.trailing.clojure"
|
||||
},
|
||||
"2": {
|
||||
"name": "punctuation.section.map.end.clojure"
|
||||
}
|
||||
},
|
||||
"name": "meta.map.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"patterns": [
|
||||
{
|
||||
"begin": "(\\^\\{)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.metadata.map.begin.clojure"
|
||||
}
|
||||
},
|
||||
"end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.metadata.map.end.trailing.clojure"
|
||||
},
|
||||
"2": {
|
||||
"name": "punctuation.section.metadata.map.end.clojure"
|
||||
}
|
||||
},
|
||||
"name": "meta.metadata.map.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"begin": "(\\^)",
|
||||
"end": "(\\s)",
|
||||
"name": "meta.metadata.simple.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#keyword"
|
||||
},
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"quoted-sexp": {
|
||||
"begin": "(['``]\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.expression.begin.clojure"
|
||||
}
|
||||
},
|
||||
"end": "(\\))(\\n)|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.expression.end.trailing.clojure"
|
||||
},
|
||||
"2": {
|
||||
"name": "meta.after-expression.clojure"
|
||||
},
|
||||
"3": {
|
||||
"name": "punctuation.section.expression.end.trailing.clojure"
|
||||
},
|
||||
"4": {
|
||||
"name": "punctuation.section.expression.end.clojure"
|
||||
}
|
||||
},
|
||||
"name": "meta.quoted-expression.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
},
|
||||
"regexp": {
|
||||
"begin": "#\\\"",
|
||||
"end": "\\\"",
|
||||
"name": "string.regexp.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#regexp_escaped_char"
|
||||
}
|
||||
]
|
||||
},
|
||||
"regexp_escaped_char": {
|
||||
"match": "\\\\.",
|
||||
"name": "constant.character.escape.clojure"
|
||||
},
|
||||
"set": {
|
||||
"begin": "(\\#\\{)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.set.begin.clojure"
|
||||
}
|
||||
},
|
||||
"end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.set.end.trailing.clojure"
|
||||
},
|
||||
"2": {
|
||||
"name": "punctuation.section.set.end.clojure"
|
||||
}
|
||||
},
|
||||
"name": "meta.set.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sexp": {
|
||||
"begin": "(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.expression.begin.clojure"
|
||||
}
|
||||
},
|
||||
"end": "(\\))(\\n)|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.expression.end.trailing.clojure"
|
||||
},
|
||||
"2": {
|
||||
"name": "meta.after-expression.clojure"
|
||||
},
|
||||
"3": {
|
||||
"name": "punctuation.section.expression.end.trailing.clojure"
|
||||
},
|
||||
"4": {
|
||||
"name": "punctuation.section.expression.end.clojure"
|
||||
}
|
||||
},
|
||||
"name": "meta.expression.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"begin": "(?<=\\()(ns|def|def-|defn|defn-|defvar|defvar-|defmacro|defmacro-|deftest)\\s+",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.control.clojure"
|
||||
}
|
||||
},
|
||||
"end": "(?=\\))",
|
||||
"name": "meta.definition.global.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#metadata"
|
||||
},
|
||||
{
|
||||
"include": "#dynamic-variables"
|
||||
},
|
||||
{
|
||||
"match": "([\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]+)",
|
||||
"name": "entity.global.clojure"
|
||||
},
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"include": "#keyfn"
|
||||
},
|
||||
{
|
||||
"include": "#constants"
|
||||
},
|
||||
{
|
||||
"include": "#vector"
|
||||
},
|
||||
{
|
||||
"include": "#map"
|
||||
},
|
||||
{
|
||||
"include": "#set"
|
||||
},
|
||||
{
|
||||
"include": "#sexp"
|
||||
},
|
||||
{
|
||||
"match": "(?<=\\()(.+?)(?=\\s|\\))",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.function.clojure"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
},
|
||||
"shebang-comment": {
|
||||
"begin": "^(#!)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.definition.comment.shebang.clojure"
|
||||
}
|
||||
},
|
||||
"end": "$",
|
||||
"name": "comment.line.shebang.clojure"
|
||||
},
|
||||
"string": {
|
||||
"begin": "(?<!\\\\)(\")",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.definition.string.begin.clojure"
|
||||
}
|
||||
},
|
||||
"end": "(\")",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.definition.string.end.clojure"
|
||||
}
|
||||
},
|
||||
"name": "string.quoted.double.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"match": "\\\\.",
|
||||
"name": "constant.character.escape.clojure"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespace-symbol": {
|
||||
"patterns": [
|
||||
{
|
||||
"match": "([\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]+)/",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "meta.symbol.namespace.clojure"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"symbol": {
|
||||
"patterns": [
|
||||
{
|
||||
"match": "([\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]+)",
|
||||
"name": "meta.symbol.clojure"
|
||||
}
|
||||
]
|
||||
},
|
||||
"var": {
|
||||
"match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[a-zA-Z0-9\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))",
|
||||
"name": "meta.var.clojure"
|
||||
},
|
||||
"vector": {
|
||||
"begin": "(\\[)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.vector.begin.clojure"
|
||||
}
|
||||
},
|
||||
"end": "(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.section.vector.end.trailing.clojure"
|
||||
},
|
||||
"2": {
|
||||
"name": "punctuation.section.vector.end.clojure"
|
||||
}
|
||||
},
|
||||
"name": "meta.vector.clojure",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "$self"
|
||||
}
|
||||
]
|
||||
},
|
||||
"whitespace": {
|
||||
"match": "\\s+$",
|
||||
"name": "invalid.trailing-whitespace"
|
||||
}
|
||||
},
|
||||
"version": "https://github.com/atom/language-clojure/commit/9a79169ec89e25476214c42fe2d5702dfa9ebb83"
|
||||
}
|
Loading…
Reference in a new issue