Unnamed repository; edit this file 'description' to name the repository.
| -rw-r--r-- | book/src/generated/lang-support.md | 1 | ||||
| -rw-r--r-- | languages.toml | 11 | ||||
| -rw-r--r-- | runtime/queries/strictdoc/highlights.scm | 113 | ||||
| -rw-r--r-- | runtime/queries/strictdoc/injections.scm | 9 | ||||
| -rw-r--r-- | runtime/queries/strictdoc/tags.scm | 258 |
5 files changed, 392 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 50169cd4..c114faa1 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -242,6 +242,7 @@ | sshclientconfig | ✓ | | | | | | | starlark | ✓ | ✓ | ✓ | | ✓ | `starpls` | | strace | ✓ | | | | | | +| strictdoc | ✓ | | | ✓ | | | | supercollider | ✓ | | | | | | | svelte | ✓ | | ✓ | | | `svelteserver` | | sway | ✓ | ✓ | ✓ | | | `forc` | diff --git a/languages.toml b/languages.toml index 72e7dc9a..9055a6d9 100644 --- a/languages.toml +++ b/languages.toml @@ -4735,3 +4735,14 @@ comment-token = "#" [[grammar]] name = "shellcheckrc" source = {git = "https://codeberg.org/kpbaks/tree-sitter-shellcheckrc", rev = "ad3da4e8f7fd72dcc5e93a6b89822c59a7cd10ff"} + +[[grammar]] +name = "strictdoc" +source = { git = "https://github.com/manueldiagostino/tree-sitter-strictdoc", rev = "070edcf23f7c85af355437706048f73833e0ea10" } + +[[language]] +name = "strictdoc" +scope = "source.strictdoc" +injection-regex = "strictdoc" +file-types = ["sdoc", "sgra"] +comment-token = ".." diff --git a/runtime/queries/strictdoc/highlights.scm b/runtime/queries/strictdoc/highlights.scm new file mode 100644 index 00000000..3630f971 --- /dev/null +++ b/runtime/queries/strictdoc/highlights.scm @@ -0,0 +1,113 @@ +;; Tree-sitter highlight queries for strictdoc + +;; ————————————————————————————————————————— +;; Keywords “blok” del documento +;; ————————————————————————————————————————— +[ + "[DOCUMENT]" + "[DOCUMENT_FROM_FILE]" + "[GRAMMAR]" + "[/SECTION]" + "[SECTION]" + (sdoc_node_opening) + (sdoc_composite_node_opening) + (sdoc_composite_node_closing) + (sdoc_composite_node_type_name) +] @keyword + +[ + "AUTO_LEVELS" + "CLASSIFICATION" + "DATE" + "DEFAULT_VIEW" + "ELEMENTS" + "ENABLE_MID" + "FIELDS" + "FILE" + "FORMAT" + "IMPORT_FROM_FILE" + "IS_COMPOSITE" + "LAYOUT" + "LEVEL" + "MARKUP" + "METADATA" + "MID" + "NAME" + "NODE_IN_TOC" + "OBJECT_TYPE" + "OPTIONS" + "PLACEMENT" + "PREFIX" + "PROPERTIES" + "REQ_PREFIX" + "REQUIRED" + "REQUIREMENT_IN_TOC" + "REQUIREMENT_STYLE" + "ROLE" + "ROOT" + "TAG" + "TITLE" + "TYPE" + "UID" + "VALUE" + "VERSION" + "VIEW_STYLE" + "VISIBLE_FIELDS" +] @type.builtin + +;; Operators +[ + (multiline_opening_token) + (multiline_closing_token) +] @operator + +;; Punctuation +[ + ":" @punctuation.delimiter + "," @punctuation.delimiter + "-" @punctuation.delimiter +] + +;; Boolean literals +(boolean_choice) @constant.builtin.boolean + +;; Requirement types and file formats + +;; Config option values +[ + "Child" + "Default" + "File" + "HTML" + "Inline" + "Narrative" + "Off" + "On" + "Parent" + "Plain" + "RST" + "Simple" + "Table" + "Text" + "Website" + "Zebra" +] @constant.builtin + + +;; Strings +(single_line_string) @string +[ (uid_string) (req_reference_value_id) ] @string.special.symbol +(date) @string.special + +;; Fields +(document_custom_metadata_key) @type.parameter +[ "RELATIONS" (field_name) ] @variable.other.member +(choice_option) @variable.parameter + +;; Anchors and links +(anchor) @label +(inline_link) @string.special.url + +[ + (role_id) +] @variable diff --git a/runtime/queries/strictdoc/injections.scm b/runtime/queries/strictdoc/injections.scm new file mode 100644 index 00000000..c303dc33 --- /dev/null +++ b/runtime/queries/strictdoc/injections.scm @@ -0,0 +1,9 @@ + +((text_part) @injection.content + (#set! injection.language "rst") + (#set! injection.include-children)) + +((single_line_text_part) @injection.content + (#set! injection.language "rst") + (#set! injection.include-children)) + diff --git a/runtime/queries/strictdoc/tags.scm b/runtime/queries/strictdoc/tags.scm new file mode 100644 index 00000000..bf658a43 --- /dev/null +++ b/runtime/queries/strictdoc/tags.scm @@ -0,0 +1,258 @@ +; == StrictDoc Code Navigation Queries == + +; -- Document Configuration Definitions -- +( +(document_config +uid: (uid_string) @name) @definition.document.uid +) +( +(document_version +version: (single_line_string) @name) @definition.document.version +) +( +(document_date +date: (date) @name) @definition.document.date +) +( +(document_classification +classification: (single_line_string) @name) @definition.document.classification +) +( +(document_requirement +requirement_prefix: (single_line_string) @name) @definition.document.requirement_prefix +) +( +(document_config +root: (boolean_choice) @name) @definition.document.root +) +( +(document_config +options: (document_config_options) @name) @definition.document.options +) +( +(enable_mid +(boolean_choice) @name) @definition.document.options.enable_mid +) +( +(markup +(markup_choice) @name) @definition.document.options.markup +) +( +(auto_levels +(auto_levels_choice) @name) @definition.document.options.auto_levels +) +( +(layout +(layout_choice) @name) @definition.document.options.layout +) +( +(view_style +(style_choice) @name) @definition.document.options.view_style +) +( +(in_toc_tag +(boolean_choice) @name) @definition.document.options.in_toc_tag +) +( +(default_view +(single_line_string) @name) @definition.document.options.default_view +) +( +(document_config +metadata: (document_custom_metadata) @name) @definition.document.metadata +) + +; -- Grammar Definition -- ( (document_grammar) @definition.grammar.document_grammar ) + +; -- Import From File Reference -- +( +(import_from_file +import_path: (file_path) @name) @reference.grammar.file_path +) + +; -- Grammar Elements Definitions -- +( +(grammar_elements) @definition.grammar.elements +) +( +(grammar_element) @definition.grammar.element +) + +; -- Grammar Properties Definitions -- +( +(grammar_properties) @definition.grammar.properties +) +( +(grammar_property_is_composite +(boolean_choice) @name) @definition.grammar.property.is_composite +) +( +(grammar_property_prefix +(single_line_string) @name) @definition.grammar.property.prefix +) +( +(grammar_property_view_style +(style_choice) @name) @definition.grammar.property.view_style +) + +; -- Grammar Fields Definitions -- +( +(grammar_fields) @definition.grammar.fields +) +( +(grammar_field_title +title: (field_name) @name) @definition.grammar.field.title +) +( +(grammar_field_required +value: (boolean_choice) @name) @definition.grammar.field.required +) +( +(grammar_field_string) @definition.grammar.field.string +) +( +(grammar_field_single_choice) @definition.grammar.field.single_choice +) +( +(grammar_field_multiple_choice) @definition.grammar.field.multiple_choice +) +( +(grammar_field_tag) @definition.grammar.field.tag +) + +; -- Grammar Relations Definitions -- +( +(grammar_relations) @definition.grammar.relations +) +( +(grammar_relation_parent +(single_line_string) @name) @definition.grammar.relation.parent +) +( +(grammar_relation_child +(single_line_string) @name) @definition.grammar.relation.child +) +( +(grammar_relation_file +(single_line_string) @name) @definition.grammar.relation.file +) + +; -- Document Custom Metadata -- +( + (document_custom_metadata) @definition.document.metadata +) +( + (document_custom_metadata_key_value_pair + key: (document_custom_metadata_key) @name + value: (single_line_string) @doc) @definition.document.metadata.entry +) + +; -- Document View Definitions -- +( +(document_view) @definition.document.view +) +( +(view_element +id: (uid_string) @name) @definition.view.element.id +) +( +(view_element +name: (single_line_string) @name) @definition.view.element.name +) +( +(view_element_tag +object_type: (single_line_string) @name) @definition.view.element.tag.object_type +) +( +(view_element_field +name: (single_line_string) @name) @definition.view.element.field.name +) +( +(view_element_field +placement: (single_line_string) @name) @definition.view.element.field.placement +) +( +(view_element_hidden_tag +hidden_tag: (single_line_string) @name) @definition.view.element.hidden_tag +) + +; -- Section & Requirement Definitions -- + +( +(section_or_requirement_list) @definition.section.list +) +( + (sdoc_section) @definition.section +) + +( + (section_body + mid: (single_line_string) @name) @definition.section.mid +) + +( +(section_body + uid: (uid_string) @name) @definition.section.uid +) + +( + (section_body + custom_level: (single_line_string) @name) @definition.section.level +) + +( + (section_body + title: (single_line_string) @name) @definition.section.title +) + +( + (section_body + requirement_prefix: (single_line_string) @name) @definition.section.requirement_prefix +) +; -- Document From File Reference -- +( +(document_from_file +path: (file_path) @name) @definition.document.from_file +) + +; -- SDoc Node Definitions -- +( +(sdoc_node) @definition.node +) +( +(sdoc_composite_node) @definition.composite_node +) +( +(sdoc_composite_node_opening +node_type_opening: (sdoc_composite_node_type_name) @name) @definition.composite_node.opening +) +( +(sdoc_composite_node_type_name) @definition.composite_node.type +) + +; -- SDoc Node Field Definitions -- +( + (sdoc_node_field_mid + mid: (single_line_string) @name) @definition.node.mid +) + +( + (sdoc_node_field_uid + uid: (uid_string) @name) @definition.node.uid +) + +( + (sdoc_node_field_generic + field_name: (field_name) @name + ) @definition.node.field +) + +( + (parent_req_reference + ref_uid: (req_reference_value_id) @name) @reference.node.uid +) + +( + (child_req_reference + ref_uid: (req_reference_value_id) @name) @reference.node.uid +) |