92 lines
No EOL
2.8 KiB
JSON
92 lines
No EOL
2.8 KiB
JSON
{ "name": "Sublime Completions",
|
|
|
|
"scopeName": "source.sublimecompletions",
|
|
|
|
"fileTypes": ["sublime-completions"],
|
|
|
|
"patterns": [
|
|
{ "include": "#completionsDict" }
|
|
],
|
|
|
|
"repository": {
|
|
|
|
"completionsDict": {
|
|
"begin": "\\{",
|
|
"end": "\\}",
|
|
"contentName": "meta.completions.dictionary.sublimecompletions",
|
|
"patterns": [
|
|
{ "include": "#scope" },
|
|
{ "include": "#completionsList" }
|
|
]
|
|
},
|
|
|
|
"scope": {
|
|
"match": "\"(scope)\"\\s*?:\\s*?\"([a-zA-Z0-9. ,-]+)\"",
|
|
"captures": {
|
|
"1": { "name": "keyword.key.sublimecompletions" },
|
|
"2": { "name": "string.scope.selector.sublimecompletions" }
|
|
}
|
|
},
|
|
|
|
"completionsList": {
|
|
"begin": "\"(completions)\"\\s*?:\\s*?",
|
|
"beginCaptures": {
|
|
"1" : { "name": "keyword.key.sublimecompletions" }
|
|
},
|
|
"end": "(?<=\\])",
|
|
"contentName": "meta.completions.array.sublimecompletions",
|
|
"patterns": [
|
|
{ "match": "\\[" },
|
|
{ "include": "#triggerCompletion" },
|
|
{ "include": "#simpleCompletion" }
|
|
]
|
|
},
|
|
|
|
"simpleCompletion": {
|
|
"match": "\"([a-zA-Z0-9_.]+)\"",
|
|
"captures": {
|
|
"1": { "name": "string.completion.simple.sublimecompletions" }
|
|
}
|
|
},
|
|
|
|
"triggerCompletion": {
|
|
"begin": "\\{",
|
|
"end": "\\}",
|
|
"contentName": "meta.completion.trigger-based.sublimecompletions",
|
|
"patterns": [
|
|
{ "match": "\"(trigger)\"\\s*?:\\s*?\"([a-zA-Z0-9_.-]+)\"",
|
|
"captures": {
|
|
"1": { "name": "support.function.key.sublimecompletions" },
|
|
"2": { "name": "string.trigger.name.sublimecompletions" }
|
|
}
|
|
},
|
|
|
|
{ "begin": "\"(contents)\"\\s*?:\\s*?\"",
|
|
"end": "\"",
|
|
"beginCaptures": {
|
|
"1": { "name": "support.function.key.sublimecompletions" }
|
|
},
|
|
"comment": "XXX: rules below are becoming a mess. escaped $ does not work at the moment after escaped backslashes.",
|
|
"patterns": [
|
|
{ "name": "constant.character.escape.sequence.snippet.sublimecompletions",
|
|
"match": "\\\\\\\\(?:\\$)"
|
|
},
|
|
{ "name": "entity.other.attribute-name.escape.sequence.json.sublimecompletions",
|
|
"match": "\\\\(?:[tvbarn\"\\\\])"
|
|
},
|
|
{ "name": "invalid.illegal.unescaped.characters.sublimecompletions",
|
|
"match": "\\$(?!\\{|[0-9A-Za-z])"
|
|
},
|
|
{ "include": "source.sublimesnippetraw" },
|
|
{ "name": "string.snippet.sublimecompletions",
|
|
"match": ".*?"
|
|
}
|
|
],
|
|
"contentName": "source.sublimesnippetraw"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
|
|
"uuid": "3abbb928-3b6a-49b9-903f-150c021accb2"
|
|
} |