fileTypes sublime-completions name Sublime Completions patterns include #completionsDict repository completionsDict begin \{ contentName meta.completions.dictionary.sublimecompletions end \} patterns include #scope include #completionsList completionsList begin "(completions)"\s*?:\s*? beginCaptures 1 name keyword.key.sublimecompletions contentName meta.completions.array.sublimecompletions end (?<=\]) patterns match \[ include #triggerCompletion include #simpleCompletion scope captures 1 name keyword.key.sublimecompletions 2 name string.scope.selector.sublimecompletions match "(scope)"\s*?:\s*?"([a-zA-Z0-9. ,-]+)" simpleCompletion captures 1 name string.completion.simple.sublimecompletions match "([a-zA-Z0-9_.]+)" triggerCompletion begin \{ contentName meta.completion.trigger-based.sublimecompletions end \} patterns captures 1 name support.function.key.sublimecompletions 2 name string.trigger.name.sublimecompletions match "(trigger)"\s*?:\s*?"([a-zA-Z0-9_.-]+)" begin "(contents)"\s*?:\s*?" 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. contentName source.sublimesnippetraw end " patterns match \\\\(?:\$) name constant.character.escape.sequence.snippet.sublimecompletions match \\(?:[tvbarn"\\]) name entity.other.attribute-name.escape.sequence.json.sublimecompletions match \$(?!\{|[0-9A-Za-z]) name invalid.illegal.unescaped.characters.sublimecompletions include source.sublimesnippetraw match .*? name string.snippet.sublimecompletions scopeName source.sublimecompletions uuid 3abbb928-3b6a-49b9-903f-150c021accb2