diff options
Diffstat (limited to 'runtime/queries/vhdl')
| -rw-r--r-- | runtime/queries/vhdl/folds.scm | 46 | ||||
| -rw-r--r-- | runtime/queries/vhdl/highlights.scm | 428 | ||||
| -rw-r--r-- | runtime/queries/vhdl/injections.scm | 7 |
3 files changed, 481 insertions, 0 deletions
diff --git a/runtime/queries/vhdl/folds.scm b/runtime/queries/vhdl/folds.scm new file mode 100644 index 000000000..9fc6deafe --- /dev/null +++ b/runtime/queries/vhdl/folds.scm @@ -0,0 +1,46 @@ +[ + (block_comment) + (architecture_definition) + (architecture_head) + (concurrent_block) + (configuration_declaration) + (component_instantiation_statement) + (generic_map_aspect) + (port_map_aspect) + (process_statement) + (process_head) + (sequential_block) + (block_configuration) + (block_statement) + (block_head) + (component_declaration) + (component_configuration) + (generic_clause) + (port_clause) + (entity_declaration) + (entity_head) + (entity_body) + (package_declaration) + (package_definition) + (function_specification) + (subprogram_declaration) + (subprogram_definition) + (subprogram_head) + (procedure_specification) + (sequential_block) + (loop_statement) + (if_statement_block) + (if_statement) + (elsif_statement) + (else_statement) + (case_statement) + (case_statement_alternative) + (for_generate_statement) + (if_generate_statement) + (if_generate) + (elsif_generate) + (else_generate) + (case_generate_statement) + (case_generate_alternative) + (type_declaration) +] @fold diff --git a/runtime/queries/vhdl/highlights.scm b/runtime/queries/vhdl/highlights.scm new file mode 100644 index 000000000..681dc2664 --- /dev/null +++ b/runtime/queries/vhdl/highlights.scm @@ -0,0 +1,428 @@ +(line_comment + (comment_content) @spell) @comment + +(block_comment + (comment_content) @spell) @comment.documentation + +(identifier) @variable + +[ + "access" + "after" + "alias" + "architecture" + "array" + ; "assume" + "attribute" + "block" + "body" + "component" + "configuration" + "context" + ; "cover" + "disconnect" + "entity" + ; "fairness" + "file" + "force" + "generate" + "generic" + "group" + "label" + "literal" + "map" + "new" + "package" + "parameter" + "port" + "property" + "range" + "reject" + "release" + ; "restrict" + "sequence" + "transport" + "unaffected" + "view" + ; "vmode" + ; "vpkg" + ; "vprop" + "vunit" +] @keyword + +[ + (ALL) + (OTHERS) + "<>" + (DEFAULT) + (OPEN) +] @constant.builtin + +[ + "is" + "begin" + "end" +] @keyword + +(parameter_specification + "in" @keyword) + +[ + "process" + "wait" + "on" + "until" +] @keyword.coroutine + +(end_process + "end" @keyword.coroutine) + +(timeout_clause + "for" @keyword.coroutine) + +[ + "function" + "procedure" +] @keyword.function + +(subprogram_end + "end" @keyword.function) + +[ + "to" + "downto" + "of" +] @keyword.operator + +[ + "library" + "use" +] @keyword.import + +[ + "subtype" + "type" + "record" + "units" + "constant" + "signal" + "variable" +] @keyword.type + +[ + "protected" + "private" + "pure" + "impure" + "inertial" + "postponed" + ; "strong" + "guarded" + "out" + "inout" + "linkage" + "buffer" + "register" + "bus" + "shared" +] @keyword.modifier + +(mode + "in" @keyword.modifier) + +(force_mode + "in" @keyword.modifier) + +[ + "while" + "loop" + "next" + "exit" +] @keyword.repeat + +(end_loop + "end" @keyword.repeat) + +(for_loop + "for" @keyword.repeat) + +(block_configuration + "for" @keyword) + +(configuration_specification + "for" @keyword) + +(component_configuration + "for" @keyword) + +(end_for + "for" @keyword) + +"return" @keyword.return + +[ + "assert" + "report" + "severity" +] @keyword.debug + +[ + "if" + "then" + "elsif" + "case" +] @keyword.conditional + +(end_if + "end" @keyword.conditional) + +(end_case + "end" @keyword.conditional) + +(when_element + "when" @keyword.conditional) + +(case_generate_alternative + "when" @keyword.conditional) + +(else_statement + "else" @keyword.conditional) + +(else_generate + "else" @keyword.conditional) + +[ + "with" + "select" +] @keyword.conditional.ternary + +(when_expression + "when" @keyword.conditional.ternary) + +(else_expression + "else" @keyword.conditional.ternary) + +(else_waveform + "else" @keyword.conditional.ternary) + +(else_expression_or_unaffected + "else" @keyword.conditional.ternary) + +"null" @constant.builtin + +(user_directive) @keyword.directive + +(protect_directive) @keyword.directive + +(warning_directive) @keyword.directive + +(error_directive) @keyword.directive + +(if_conditional_analysis + "if" @keyword.directive) + +(if_conditional_analysis + "then" @keyword.directive) + +(elsif_conditional_analysis + "elsif" @keyword.directive) + +(else_conditional_analysis + "else" @keyword.directive) + +(end_conditional_analysis + "end" @keyword.directive) + +(end_conditional_analysis + "if" @keyword.directive) + +(directive_body) @keyword.directive + +(directive_constant_builtin) @constant.macro + +(directive_error) @comment.error + +(directive_protect) @keyword.directive + +(directive_warning) @comment.warning + +[ + (condition_conversion) + (relational_operator) + (sign) + (adding_operator) + (exponentiate) + (variable_assignment) + (signal_assignment) + "*" + "/" + ":" + "|" + "=>" +] @operator + +[ + (unary_operator) + (logical_operator) + (shift_operator) + "mod" + "not" + "rem" +] @keyword.operator + +[ + "'" + "," + "." + ";" +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "<<" + ">>" +] @punctuation.bracket + +"@" @punctuation.special + +[ + (decimal_integer) + (string_literal_std_logic) +] @number + +(decimal_float) @number.float + +(bit_string_length) @property + +(bit_string_base) @type.builtin + +(bit_string_value) @number + +(based_literal + (based_base) @type.builtin + (based_integer) @number) + +(based_literal + (based_base) @type.builtin + (based_float) @number.float) + +(string_literal) @string @spell + +(character_literal) @character + +(library_constant_std_logic) @constant.builtin + +(library_constant) @constant.builtin + +(library_function) @function.builtin + +(library_constant_boolean) @boolean + +(library_constant_character) @character + +(library_constant_debug) @keyword.debug + +(unit) @keyword.modifier + +(library_constant_unit) @keyword.modifier + +(label) @label + +(generic_map_aspect + "generic" @constructor + "map" @constructor) + +(port_map_aspect + "port" @constructor + "map" @constructor) + +(selection + (identifier) @variable.member) + +(_ + view: (_) @type) + +(_ + type: (_) @type) + +(_ + library: (_) @module) + +(_ + package: (_) @module) + +(_ + entity: (_) @module) + +(_ + component: (_) @module) + +(_ + configuration: (_) @property) + +(_ + architecture: (_) @property) + +(_ + function: (_) @function) + +(_ + procedure: (_) @function.method) + +(_ + attribute: (_) @attribute) + +(_ + constant: (_) @constant) + +(_ + generic: (_) @variable.parameter) + +(_ + view: (name + (_)) @type) + +(_ + type: (name + (_)) @type) + +(_ + entity: (name + (_)) @module) + +(_ + component: (name + (_)) @module) + +(_ + configuration: (name + (_)) @module) + +(library_type) @type.builtin + +[ + (attribute_function) + (attribute_impure_function) + (attribute_mode_view) + (attribute_pure_function) + (attribute_range) + (attribute_signal) + (attribute_subtype) + (attribute_type) + (attribute_value) + (library_attribute) +] @attribute.builtin + +(library_namespace) @module.builtin + +(subtype_declaration + (identifier) @type.definition) + +(type_declaration + (identifier) @type.definition) + +(mode_view_declaration + (identifier) @type.definition) diff --git a/runtime/queries/vhdl/injections.scm b/runtime/queries/vhdl/injections.scm new file mode 100644 index 000000000..5cbc06cb4 --- /dev/null +++ b/runtime/queries/vhdl/injections.scm @@ -0,0 +1,7 @@ +(line_comment + (comment_content) @injection.content + (#set! injection.language "comment")) + +(block_comment + (comment_content) @injection.content + (#set! injection.language "comment")) |
