mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-01 19:17:02 -04:00
fix: point to objectscript_udl grammar
This commit is contained in:
parent
16f3f98e45
commit
174a0f39e3
7 changed files with 129 additions and 95 deletions
2
SUPPORTED_LANGUAGES.md
generated
2
SUPPORTED_LANGUAGES.md
generated
|
|
@ -195,7 +195,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
|
|||
[nu](https://github.com/nushell/tree-sitter-nu) | unstable | `HFIJ ` | @abhisheksingh0x558
|
||||
[objc](https://github.com/tree-sitter-grammars/tree-sitter-objc) | unstable | `HFIJL` | @amaanq
|
||||
[objdump](https://github.com/ColinKennedy/tree-sitter-objdump) | unstable | `H J ` | @ColinKennedy
|
||||
[objectscript](https://github.com/intersystems/tree-sitter-objectscript) | unstable | `H IJ ` | @davem-intersys, @hkimura-intersys
|
||||
[objectscript_udl](https://github.com/intersystems/tree-sitter-objectscript) | unstable | `H IJ ` | @davem-intersys, @hkimura-intersys
|
||||
[ocaml](https://github.com/tree-sitter/tree-sitter-ocaml) | unstable | `HFIJL` | @undu
|
||||
[ocaml_interface](https://github.com/tree-sitter/tree-sitter-ocaml) | unstable | `HFIJL` | @undu
|
||||
[ocamllex](https://github.com/atom-ocaml/tree-sitter-ocamllex) | unstable | `H J ` | @undu
|
||||
|
|
|
|||
|
|
@ -1498,7 +1498,7 @@ return {
|
|||
maintainers = { '@ColinKennedy' },
|
||||
tier = 2,
|
||||
},
|
||||
objectscript = {
|
||||
objectscript_udl = {
|
||||
install_info = {
|
||||
location = 'udl',
|
||||
revision = 'e03cd14c61bda43a135b23352f7fb695c2e9567f',
|
||||
|
|
@ -1506,7 +1506,7 @@ return {
|
|||
},
|
||||
maintainers = { '@davem-intersys', '@hkimura-intersys' },
|
||||
tier = 2,
|
||||
}
|
||||
},
|
||||
ocaml = {
|
||||
install_info = {
|
||||
location = 'grammars/ocaml',
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ local filetypes = {
|
|||
make = { 'automake' },
|
||||
markdown = { 'pandoc' },
|
||||
muttrc = { 'neomuttrc' },
|
||||
objectscript_udl = { 'objectscript' },
|
||||
ocaml_interface = { 'ocamlinterface' },
|
||||
perl = { 'pl' },
|
||||
poe_filter = { 'poefilter' },
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
("{" @indents.begin)
|
||||
("}" @indents.end)
|
||||
|
|
@ -1,29 +1,47 @@
|
|||
(pattern_expression) @string.regex
|
||||
(pattern_expression) @string.regexp
|
||||
|
||||
(numeric_literal) @number
|
||||
|
||||
(string_literal) @string
|
||||
|
||||
(keyword_pound_pound_class) @keyword
|
||||
|
||||
(keyword_pound_pound_super) @keyword
|
||||
(system_defined_variable) @variable.special
|
||||
(system_defined_function) @variable.special
|
||||
(sql_field_modifier) @variable.special
|
||||
|
||||
(system_defined_variable) @variable.builtin
|
||||
|
||||
(system_defined_function) @variable.builtin
|
||||
|
||||
(sql_field_modifier) @variable.builtin
|
||||
|
||||
(property_name) @property
|
||||
|
||||
(method_name) @function
|
||||
|
||||
(parameter_name) @property
|
||||
|
||||
(class_name) @type
|
||||
|
||||
(macro) @constant
|
||||
|
||||
(routine_ref) @variable
|
||||
|
||||
(sql_field_identifier) @variable
|
||||
|
||||
(lvn) @variable
|
||||
|
||||
(gvn) @variable
|
||||
|
||||
(ssvn) @variable
|
||||
|
||||
(instance_variable) @variable
|
||||
|
||||
(objectscript_identifier) @variable
|
||||
|
||||
(method_arg) @variable.parameter
|
||||
; I didn't include '(' or ')' in this, because they are often grouped
|
||||
; as part of a sequence that gets turned into a single token, so they
|
||||
|
||||
; I didn't include '(' or ')' in this, because they are often grouped
|
||||
; as part of a sequence that gets turned into a single token, so they
|
||||
; don't get matched, and one ends up getting colored differently than the other.
|
||||
[
|
||||
"_"
|
||||
|
|
@ -47,8 +65,6 @@
|
|||
"#"
|
||||
"|"
|
||||
"||"
|
||||
"/"
|
||||
"/"
|
||||
"$$"
|
||||
"--"
|
||||
";"
|
||||
|
|
@ -56,7 +72,7 @@
|
|||
"#;"
|
||||
"##;"
|
||||
"$"
|
||||
] @punctuation
|
||||
] @punctuation.delimiter
|
||||
|
||||
[
|
||||
"'&"
|
||||
|
|
@ -85,26 +101,39 @@
|
|||
] @operator
|
||||
|
||||
(json_string_literal) @string
|
||||
|
||||
(json_boolean_literal) @boolean
|
||||
|
||||
(json_number_literal) @number
|
||||
|
||||
(json_null_literal) @string
|
||||
|
||||
(bracket) @punctuation.bracket
|
||||
|
||||
(locktype) @variable
|
||||
|
||||
(macro_arg) @variable
|
||||
|
||||
(macro_value) @constant.builtin
|
||||
|
||||
keyword: (_) @keyword
|
||||
|
||||
(embedded_js_special_case_complete) @punctuation.special
|
||||
|
||||
(embedded_sql_marker) @punctuation.special
|
||||
|
||||
(embedded_sql_reverse_marker) @punctuation.special
|
||||
|
||||
(html_marker) @punctuation.special
|
||||
|
||||
(html_marker_reversed) @punctuation.special
|
||||
|
||||
(attribute) @attribute
|
||||
|
||||
(open_keywords) @attribute
|
||||
|
||||
(use_keywords) @attribute
|
||||
|
||||
(close_parameter_option_value) @attribute
|
||||
|
||||
; Cannot combine all of these into a supertype as for some reason, it messes up the scanner and doesn't match correctly.
|
||||
|
|
@ -119,45 +148,57 @@ keyword: (_) @keyword
|
|||
(tag) @tag
|
||||
|
||||
; ------------------ UDL -------------------
|
||||
|
||||
[
|
||||
(method_keyword_codemode_expression)
|
||||
(call_method_keyword)
|
||||
(method_keyword)
|
||||
(class_keywords)
|
||||
(query_keywords)
|
||||
(trigger_keyword)
|
||||
(method_keyword_language)
|
||||
(relationship_keyword)
|
||||
(foreignkey_keyword)
|
||||
(parameter_keyword)
|
||||
(projection_keyword)
|
||||
(index_keyword)
|
||||
(index_keyword_extent)
|
||||
(xdata_keyword)
|
||||
(xdata_keyword_mimetype)
|
||||
(property_keyword)
|
||||
|
||||
(method_keyword_codemode_expression)
|
||||
(call_method_keyword)
|
||||
(method_keyword)
|
||||
(class_keywords)
|
||||
(query_keywords)
|
||||
(trigger_keyword)
|
||||
(method_keyword_language)
|
||||
(relationship_keyword)
|
||||
(foreignkey_keyword)
|
||||
(parameter_keyword)
|
||||
(projection_keyword)
|
||||
(index_keyword)
|
||||
(index_keyword_extent)
|
||||
(xdata_keyword)
|
||||
(xdata_keyword_mimetype)
|
||||
(property_keyword)
|
||||
] @attribute
|
||||
|
||||
(documatic_line) @comment.doc
|
||||
(documatic_line) @comment.documentation
|
||||
|
||||
(query_name) @property
|
||||
|
||||
(property_name) @property
|
||||
|
||||
(relationship_name) @property
|
||||
|
||||
(foreignkey_name) @property
|
||||
|
||||
(parameter_name) @property
|
||||
|
||||
(projection_name) @property
|
||||
|
||||
(index_name) @property
|
||||
|
||||
(xdata_name) @property
|
||||
|
||||
(storage_name) @property
|
||||
|
||||
(return_type) @type.builtin
|
||||
|
||||
(typename) @type
|
||||
|
||||
(parameter_type) @type.builtin
|
||||
|
||||
(index_type) @type.builtin
|
||||
|
||||
(projection_type) @type.builtin
|
||||
|
||||
(property_type) @type.builtin
|
||||
|
||||
(index_property_type) @type.builtin
|
||||
|
||||
(identifier) @variable
|
||||
3
runtime/queries/objectscript_udl/indents.scm
Normal file
3
runtime/queries/objectscript_udl/indents.scm
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"{" @indent.begin
|
||||
|
||||
"}" @indent.end
|
||||
|
|
@ -1,28 +1,23 @@
|
|||
; Core grammar injections
|
||||
(embedded_html
|
||||
(angled_bracket_fenced_text) @injection.content
|
||||
(#set! injection.language "html")
|
||||
)
|
||||
(angled_bracket_fenced_text) @injection.content
|
||||
(#set! injection.language "html"))
|
||||
|
||||
(embedded_sql
|
||||
(_
|
||||
(paren_fenced_text) @injection.content
|
||||
)
|
||||
(#set! injection.language "sql")
|
||||
)
|
||||
(paren_fenced_text) @injection.content)
|
||||
(#set! injection.language "sql"))
|
||||
|
||||
(embedded_js
|
||||
(embedded_js
|
||||
[
|
||||
(angled_bracket_fenced_text)
|
||||
(embedded_js_special_case)
|
||||
] @injection.content
|
||||
(#set! injection.language "javascript"))
|
||||
|
||||
|
||||
(embedded_xml
|
||||
(angled_bracket_fenced_text) @injection.content
|
||||
(#set! injection.language "xml")
|
||||
)
|
||||
(angled_bracket_fenced_text) @injection.content
|
||||
(#set! injection.language "xml"))
|
||||
|
||||
([
|
||||
(line_comment_1)
|
||||
|
|
@ -32,65 +27,57 @@
|
|||
] @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
|
||||
|
||||
|
||||
; UDL grammar injections
|
||||
;; Keywords, one of type language = "python", none of type codemode
|
||||
; Keywords, one of type language = "python", none of type codemode
|
||||
; External method body injection based on [ Language = ... ]
|
||||
(method_definition
|
||||
(external_method_keywords
|
||||
(method_keyword_language
|
||||
(rhs) @lang))
|
||||
(rhs) @_lang))
|
||||
(external_method_body_content) @injection.content
|
||||
(#set! injection.include-children)
|
||||
(#match? @lang "^[Pp][Yy][Tt][Hh][Oo][Nn]$")
|
||||
(#match? @_lang "^[Pp][Yy][Tt][Hh][Oo][Nn]$")
|
||||
(#set! injection.language "python"))
|
||||
|
||||
(method_definition
|
||||
(external_method_keywords
|
||||
(method_keyword_language
|
||||
(rhs) @lang))
|
||||
(rhs) @_lang))
|
||||
(external_method_body_content) @injection.content
|
||||
(#set! injection.include-children)
|
||||
(#match? @lang "^[Tt][Ss][Qq][Ll]$")
|
||||
(#match? @_lang "^[Tt][Ss][Qq][Ll]$")
|
||||
(#set! injection.language "tsql"))
|
||||
|
||||
(method_definition
|
||||
(external_method_keywords
|
||||
(method_keyword_language
|
||||
(rhs) @lang))
|
||||
(rhs) @_lang))
|
||||
(external_method_body_content) @injection.content
|
||||
(#set! injection.include-children)
|
||||
(#match? @lang "^[Ii][Ss][Pp][Ll]$")
|
||||
(#match? @_lang "^[Ii][Ss][Pp][Ll]$")
|
||||
(#set! injection.language "ispl"))
|
||||
|
||||
|
||||
|
||||
;; External trigger with python body
|
||||
(
|
||||
(trigger
|
||||
(external_trigger
|
||||
(trigger_keywords
|
||||
(method_keyword_language
|
||||
(rhs) @lang))
|
||||
(external_method_body_content) @injection.content))
|
||||
; External trigger with python body
|
||||
((trigger
|
||||
(external_trigger
|
||||
(trigger_keywords
|
||||
(method_keyword_language
|
||||
(rhs) @_lang))
|
||||
(external_method_body_content) @injection.content))
|
||||
(#set! injection.include-children)
|
||||
(#match? @lang "^[Pp][Yy][Tt][Hh][Oo][Nn]$")
|
||||
(#set! injection.language "python")
|
||||
)
|
||||
(#match? @_lang "^[Pp][Yy][Tt][Hh][Oo][Nn]$")
|
||||
(#set! injection.language "python"))
|
||||
|
||||
;; External trigger with TSQL body
|
||||
(
|
||||
(trigger
|
||||
(external_trigger
|
||||
(trigger_keywords
|
||||
(method_keyword_language
|
||||
(rhs) @lang))
|
||||
(external_method_body_content) @injection.content))
|
||||
; External trigger with TSQL body
|
||||
((trigger
|
||||
(external_trigger
|
||||
(trigger_keywords
|
||||
(method_keyword_language
|
||||
(rhs) @_lang))
|
||||
(external_method_body_content) @injection.content))
|
||||
(#set! injection.include-children)
|
||||
(#match? @lang "^[Tt][Ss][Qq][Ll]$")
|
||||
(#set! injection.language)
|
||||
)
|
||||
(#match? @_lang "^[Tt][Ss][Qq][Ll]$")
|
||||
(#set! injection.language "tsql"))
|
||||
|
||||
; A query must be of type %SQLQuery to have an SQL body, otherwise the body
|
||||
; is empty
|
||||
|
|
@ -102,75 +89,80 @@
|
|||
(query_body
|
||||
(query_body_content) @injection.content)
|
||||
(#set! injection.language "sql")
|
||||
(#set! injection.include-children)
|
||||
)
|
||||
(#set! injection.include-children))
|
||||
|
||||
; XDATA blocks:
|
||||
; - xdata_any requires a keyword list that includes MimeType
|
||||
; - xdata_xml allows an optional keyword list and defaults to XML
|
||||
|
||||
; ----------------------------
|
||||
; XDATA injections (MimeType)
|
||||
; ----------------------------
|
||||
|
||||
; text/markdown
|
||||
(xdata
|
||||
(xdata_any
|
||||
(xdata_keywords
|
||||
(xdata_keyword_mimetype (rhs) @mt))
|
||||
(xdata_keyword_mimetype
|
||||
(rhs) @_mt))
|
||||
(external_method_body_content) @injection.content)
|
||||
(#set! injection.include-children)
|
||||
(#match? @mt "^\"?text/markdown\"?$")
|
||||
(#match? @_mt "^\"?text/markdown\"?$")
|
||||
(#set! injection.language "markdown"))
|
||||
|
||||
; XML MimeTypes
|
||||
(xdata
|
||||
(xdata_any
|
||||
(xdata_keywords
|
||||
(xdata_keyword_mimetype (rhs) @mt))
|
||||
(xdata_keyword_mimetype
|
||||
(rhs) @_mt))
|
||||
(external_method_body_content) @injection.content)
|
||||
(#set! injection.include-children)
|
||||
(#match? @mt "^\"?([Tt][Ee][Xx][Tt]|[Aa][Pp][Pp][Ll][Ii][Cc][Aa][Tt][Ii][Oo][Nn])/[Xx][Mm][Ll]\"?$")
|
||||
(#match? @_mt
|
||||
"^\"?([Tt][Ee][Xx][Tt]|[Aa][Pp][Pp][Ll][Ii][Cc][Aa][Tt][Ii][Oo][Nn])/[Xx][Mm][Ll]\"?$")
|
||||
(#set! injection.language "xml"))
|
||||
|
||||
; text/html
|
||||
(xdata
|
||||
(xdata_any
|
||||
(xdata_keywords
|
||||
(xdata_keyword_mimetype (rhs) @mt))
|
||||
(xdata_keyword_mimetype
|
||||
(rhs) @_mt))
|
||||
(external_method_body_content) @injection.content)
|
||||
(#set! injection.include-children)
|
||||
(#match? @mt "^\"?text/html\"?$")
|
||||
(#match? @_mt "^\"?text/html\"?$")
|
||||
(#set! injection.language "html"))
|
||||
|
||||
; application/json
|
||||
(xdata
|
||||
(xdata_any
|
||||
(xdata_keywords
|
||||
(xdata_keyword_mimetype (rhs) @mt))
|
||||
(xdata_keyword_mimetype
|
||||
(rhs) @_mt))
|
||||
(external_method_body_content) @injection.content)
|
||||
(#set! injection.include-children)
|
||||
(#match? @mt "^\"?application/json\"?$")
|
||||
(#match? @_mt "^\"?application/json\"?$")
|
||||
(#set! injection.language "json"))
|
||||
|
||||
; text/yaml or application/yaml
|
||||
(xdata
|
||||
(xdata_any
|
||||
(xdata_keywords
|
||||
(xdata_keyword_mimetype (rhs) @mt))
|
||||
(xdata_keyword_mimetype
|
||||
(rhs) @_mt))
|
||||
(external_method_body_content) @injection.content)
|
||||
(#set! injection.include-children)
|
||||
(#match? @mt "^\"?([Tt][Ee][Xx][Tt]|[Aa][Pp][Pp][Ll][Ii][Cc][Aa][Tt][Ii][Oo][Nn])/[Yy][Aa][Mm][Ll]\"?$")
|
||||
(#match? @_mt
|
||||
"^\"?([Tt][Ee][Xx][Tt]|[Aa][Pp][Pp][Ll][Ii][Cc][Aa][Tt][Ii][Oo][Nn])/[Yy][Aa][Mm][Ll]\"?$")
|
||||
(#set! injection.language "yaml"))
|
||||
|
||||
; text/css
|
||||
(xdata
|
||||
(xdata_any
|
||||
(xdata_keywords
|
||||
(xdata_keyword_mimetype (rhs) @mt))
|
||||
(xdata_keyword_mimetype
|
||||
(rhs) @_mt))
|
||||
(external_method_body_content) @injection.content)
|
||||
(#set! injection.include-children)
|
||||
(#match? @mt "^\"?text/css\"?$")
|
||||
(#match? @_mt "^\"?text/css\"?$")
|
||||
(#set! injection.language "css"))
|
||||
|
||||
; -----------------------------------------
|
||||
|
|
@ -183,7 +175,6 @@
|
|||
(#set! injection.include-children)
|
||||
(#set! injection.language "xml"))
|
||||
|
||||
|
||||
; Storage definition is XML
|
||||
(storage
|
||||
(storage_body
|
||||
Loading…
Add table
Add a link
Reference in a new issue