diff options
author | angelodlfrtr | 2023-03-18 14:17:02 +0000 |
---|---|---|
committer | GitHub | 2023-03-18 14:17:02 +0000 |
commit | ac2a7731a6d04b8b913f49531058c7e2a843efd5 (patch) | |
tree | 9158c5e96ba50ebaa4a4b15c5b7d20384cab68d7 /runtime | |
parent | 9f5374bf47624d59e7bbcaa9382dbe06022acef7 (diff) |
Add language support for Cap’n Proto format (#6325)
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/queries/capnp/folds.scm | 14 | ||||
-rw-r--r-- | runtime/queries/capnp/highlights.scm | 141 | ||||
-rw-r--r-- | runtime/queries/capnp/indents.scm | 19 | ||||
-rw-r--r-- | runtime/queries/capnp/injections.scm | 2 | ||||
-rw-r--r-- | runtime/queries/capnp/locals.scm | 96 |
5 files changed, 272 insertions, 0 deletions
diff --git a/runtime/queries/capnp/folds.scm b/runtime/queries/capnp/folds.scm new file mode 100644 index 00000000..6e3f9c18 --- /dev/null +++ b/runtime/queries/capnp/folds.scm @@ -0,0 +1,14 @@ +[ + (annotation_targets) + (const_list) + (enum) + (interface) + (implicit_generics) + (generics) + (group) + (method_parameters) + (named_return_types) + (struct) + (struct_shorthand) + (union) +] @fold diff --git a/runtime/queries/capnp/highlights.scm b/runtime/queries/capnp/highlights.scm new file mode 100644 index 00000000..27ddf8e2 --- /dev/null +++ b/runtime/queries/capnp/highlights.scm @@ -0,0 +1,141 @@ +; Preproc + +(unique_id) @keyword.directive +(top_level_annotation_body) @keyword.directive + +; Includes + +[ + "import" + "$import" + "embed" +] @keyword.control.import + +(import_path) @string + +; Builtins + +[ + (primitive_type) + "List" +] @type.builtin + +; Typedefs + +(type_definition) @type + +; Labels (@number, @number!) + +(field_version) @label + +; Methods + +(annotation_definition_identifier) @function.method +(method_identifier) @function.method + +; Fields + +(field_identifier) @variable.other.member + +; Properties + +(property) @label + +; Parameters + +(param_identifier) @variable.parameter +(return_identifier) @variable.parameter + +; Constants + +(const_identifier) @variable +(local_const) @constant +(enum_member) @type.enum.variant + +(void) @constant.builtin + +; Types + +(enum_identifier) @type.enum +(extend_type) @type +(type_identifier) @type + +; Attributes + +(annotation_identifier) @attribute +(attribute) @attribute + +; Operators + +[ + ; @ ! - + "=" +] @operator + +; Keywords + + +[ + "annotation" + "enum" + "group" + "interface" + "struct" + "union" +] @keyword.storage.type + +[ + "extends" + "namespace" + "using" + (annotation_target) +] @special + +; Literals + +[ + (string) + (concatenated_string) + (block_text) + (namespace) +] @string + +(escape_sequence) @constant.character.escape + +(data_string) @string.special + +(number) @constant.numeric.integer + +(float) @constant.numeric.float + +(boolean) @constant.builtin.boolean + +; Misc + +[ + "const" +] @keyword.storage.modifier + +[ + "*" + "$" + ":" +] @string.special.symbol + +["{" "}"] @punctuation.bracket + +["(" ")"] @punctuation.bracket + +["[" "]"] @punctuation.bracket + +[ + "," + ";" + "->" +] @punctuation.delimiter + +(data_hex) @constant + +; Comments + +(comment) @comment.line diff --git a/runtime/queries/capnp/indents.scm b/runtime/queries/capnp/indents.scm new file mode 100644 index 00000000..9adaf34f --- /dev/null +++ b/runtime/queries/capnp/indents.scm @@ -0,0 +1,19 @@ +[ + (annotation_targets) + (const_list) + (enum) + (interface) + (implicit_generics) + (generics) + (group) + (method_parameters) + (named_return_types) + (struct) + (struct_shorthand) + (union) +] @indent + +[ + "}" + ")" +] @outdent diff --git a/runtime/queries/capnp/injections.scm b/runtime/queries/capnp/injections.scm new file mode 100644 index 00000000..321c90ad --- /dev/null +++ b/runtime/queries/capnp/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/runtime/queries/capnp/locals.scm b/runtime/queries/capnp/locals.scm new file mode 100644 index 00000000..e98ce260 --- /dev/null +++ b/runtime/queries/capnp/locals.scm @@ -0,0 +1,96 @@ +; Scopes + +[ + (message) + (annotation_targets) + (const_list) + (enum) + (interface) + (implicit_generics) + (generics) + (group) + (method_parameters) + (named_return_types) + (struct) + (struct_shorthand) + (union) +] @local.scope + +; References + +[ + (extend_type) + (field_type) +] @local.reference +(custom_type (type_identifier) @local.reference) +(custom_type + (generics + (generic_parameters + (generic_identifier) @local.reference))) + +; Definitions + +(annotation_definition_identifier) @local.definition + +(const_identifier) @local.definition + +(enum (enum_identifier) @local.definition) + +[ + (enum_member) + (field_identifier) +] @local.definition + +(method_identifier) @local.definition + +(namespace) @local.definition + +[ + (param_identifier) + (return_identifier) +] @local.definition + +(group (type_identifier) @local.definition) + +(struct (type_identifier) @local.definition) + +(union (type_identifier) @local.definition) + +(interface (type_identifier) @local.definition) + +; Generics Related (don't know how to combine these) + +(struct + (generics + (generic_parameters + (generic_identifier) @local.definition))) + +(interface + (generics + (generic_parameters + (generic_identifier) @local.definition))) + +(method + (implicit_generics + (implicit_generic_parameters + (generic_identifier) @local.definition))) + +(method + (generics + (generic_parameters + (generic_identifier) @local.definition))) + +(annotation + (generics + (generic_parameters + (generic_identifier) @local.definition))) + +(replace_using + (generics + (generic_parameters + (generic_identifier) @local.definition))) + +(return_type + (generics + (generic_parameters + (generic_identifier) @local.definition))) |