mirror of
https://github.com/chenasraf/nvim-treesitter.git
synced 2026-05-17 17:38:02 +00:00
feat(brightscript): brightscript parser and queries (#7780)
This commit is contained in:
@@ -191,6 +191,7 @@ We are looking for maintainers to add more parsers and to write query files for
|
||||
- [x] [blade](https://github.com/EmranMR/tree-sitter-blade) (maintained by @calebdw)
|
||||
- [x] [blueprint](https://gitlab.com/gabmus/tree-sitter-blueprint.git) (experimental, maintained by @gabmus)
|
||||
- [x] [bp](https://github.com/ambroisie/tree-sitter-bp) (maintained by @ambroisie)
|
||||
- [x] [brightscript](https://github.com/ajdelcimmuto/tree-sitter-brightscript) (maintained by @ajdelcimmuto)
|
||||
- [x] [c](https://github.com/tree-sitter/tree-sitter-c) (maintained by @amaanq)
|
||||
- [x] [c_sharp](https://github.com/tree-sitter/tree-sitter-c-sharp) (maintained by @amaanq)
|
||||
- [x] [caddy](https://github.com/opa-oz/tree-sitter-caddy) (maintained by @opa-oz)
|
||||
|
||||
@@ -53,6 +53,9 @@
|
||||
"bp": {
|
||||
"revision": "16c43068ec30828c5aed11e87262c56f36782595"
|
||||
},
|
||||
"brightscript": {
|
||||
"revision": "48ce1687125c6dfefcc7a1bef19fa0f0f00426cc"
|
||||
},
|
||||
"c": {
|
||||
"revision": "2a265d69a4caf57108a73ad2ed1e6922dd2f998c"
|
||||
},
|
||||
|
||||
@@ -216,6 +216,14 @@ list.bp = {
|
||||
maintainers = { "@ambroisie" },
|
||||
}
|
||||
|
||||
list.brightscript = {
|
||||
install_info = {
|
||||
url = "https://github.com/ajdelcimmuto/tree-sitter-brightscript",
|
||||
files = { "src/parser.c" },
|
||||
},
|
||||
maintainers = { "@ajdelcimmuto" },
|
||||
}
|
||||
|
||||
list.c = {
|
||||
install_info = {
|
||||
url = "https://github.com/tree-sitter/tree-sitter-c",
|
||||
|
||||
8
queries/brightscript/folds.scm
Normal file
8
queries/brightscript/folds.scm
Normal file
@@ -0,0 +1,8 @@
|
||||
[
|
||||
(function_statement)
|
||||
(sub_statement)
|
||||
(while_statement)
|
||||
(for_statement)
|
||||
(if_statement)
|
||||
(try_statement)
|
||||
] @fold
|
||||
177
queries/brightscript/highlights.scm
Normal file
177
queries/brightscript/highlights.scm
Normal file
@@ -0,0 +1,177 @@
|
||||
; Identifiers
|
||||
(identifier) @variable
|
||||
|
||||
; Function declaration
|
||||
(function_statement
|
||||
name: (identifier) @function)
|
||||
|
||||
; Sub declaration
|
||||
(sub_statement
|
||||
name: (identifier) @function)
|
||||
|
||||
[
|
||||
(sub_start)
|
||||
(function_start)
|
||||
(end_sub)
|
||||
(end_function)
|
||||
] @keyword.function
|
||||
|
||||
; Parameters
|
||||
(parameter
|
||||
name: (identifier) @variable.parameter)
|
||||
|
||||
; Types
|
||||
(type_specifier) @type
|
||||
|
||||
; Variables
|
||||
; Base variable in variable declarator (immediate child of prefix_exp)
|
||||
(variable_declarator
|
||||
(prefix_exp
|
||||
(identifier) @variable
|
||||
(#not-has-ancestor? @variable prefix_exp)))
|
||||
|
||||
; Properties in variable declarator
|
||||
(variable_declarator
|
||||
(prefix_exp)
|
||||
(identifier) @property)
|
||||
|
||||
(multiplicative_expression
|
||||
operator: (_) @keyword.operator)
|
||||
|
||||
(logical_not_expression
|
||||
operator: (_) @keyword.operator)
|
||||
|
||||
(logical_expression
|
||||
operator: (_) @keyword.operator)
|
||||
|
||||
; Property access
|
||||
; First identifier in a chain (base variable)
|
||||
(prefix_exp
|
||||
.
|
||||
(identifier) @variable
|
||||
(#not-has-ancestor? @variable prefix_exp))
|
||||
|
||||
; All other identifiers in a chain (properties)
|
||||
(prefix_exp
|
||||
(prefix_exp)
|
||||
(identifier) @property)
|
||||
|
||||
; Function calls
|
||||
(function_call
|
||||
function: (prefix_exp
|
||||
(identifier) @function.call))
|
||||
|
||||
; Statements
|
||||
[
|
||||
(if_start)
|
||||
(else)
|
||||
(else_if)
|
||||
(end_if)
|
||||
(then)
|
||||
(conditional_compl_end_if)
|
||||
] @keyword.conditional
|
||||
|
||||
[
|
||||
(for_start)
|
||||
(while_start)
|
||||
(for_each)
|
||||
(for_in)
|
||||
(for_to)
|
||||
(for_step)
|
||||
(end_for)
|
||||
(end_while)
|
||||
(exit_while_statement)
|
||||
(exit_for_statement)
|
||||
] @keyword.repeat
|
||||
|
||||
; Statements
|
||||
[
|
||||
(try_start)
|
||||
(try_catch)
|
||||
(throw)
|
||||
(end_try)
|
||||
] @keyword.exception
|
||||
|
||||
(return) @keyword.return
|
||||
|
||||
(print) @function.builtin
|
||||
|
||||
(constant) @constant
|
||||
|
||||
; Operators
|
||||
[
|
||||
"="
|
||||
"<>"
|
||||
"<"
|
||||
"<="
|
||||
">"
|
||||
">="
|
||||
"+"
|
||||
"-"
|
||||
"*"
|
||||
"/"
|
||||
] @operator
|
||||
|
||||
; Literals
|
||||
(boolean) @boolean
|
||||
|
||||
(number) @number
|
||||
|
||||
(string) @string
|
||||
|
||||
(invalid) @constant.builtin
|
||||
|
||||
; Comments
|
||||
(comment) @comment @spell
|
||||
|
||||
; Punctuation
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"["
|
||||
"]"
|
||||
"{"
|
||||
"}"
|
||||
"?["
|
||||
] @punctuation.bracket
|
||||
|
||||
[
|
||||
"."
|
||||
","
|
||||
"?."
|
||||
] @punctuation.delimiter
|
||||
|
||||
; Special highlights for library statements
|
||||
(library_statement) @keyword.import
|
||||
|
||||
(library_statement
|
||||
path: (string) @module)
|
||||
|
||||
; Array and associative array literals
|
||||
(array) @constructor
|
||||
|
||||
(assoc_array) @constructor
|
||||
|
||||
(assoc_array_element
|
||||
key: (identifier) @property)
|
||||
|
||||
; Increment/decrement operators
|
||||
[
|
||||
(prefix_increment_expression)
|
||||
(prefix_decrement_expression)
|
||||
(postfix_increment_expression)
|
||||
(postfix_decrement_expression)
|
||||
] @operator
|
||||
|
||||
; Comparison operators
|
||||
(comparison_expression
|
||||
[
|
||||
"="
|
||||
"<>"
|
||||
"<"
|
||||
"<="
|
||||
">"
|
||||
">="
|
||||
] @operator)
|
||||
|
||||
(as) @keyword.operator
|
||||
39
queries/brightscript/indents.scm
Normal file
39
queries/brightscript/indents.scm
Normal file
@@ -0,0 +1,39 @@
|
||||
; Start indentation for block-level constructs
|
||||
[
|
||||
(sub_statement)
|
||||
(function_statement)
|
||||
(annonymous_sub)
|
||||
(annonymous_function)
|
||||
(conditional_compl)
|
||||
(multi_line_if)
|
||||
(for_statement)
|
||||
(while_statement)
|
||||
(try_statement)
|
||||
(array)
|
||||
(assoc_array)
|
||||
] @indent.begin
|
||||
|
||||
; End indentation for all end statements
|
||||
[
|
||||
(end_sub)
|
||||
(end_function)
|
||||
(end_if)
|
||||
(end_for)
|
||||
(end_while)
|
||||
(end_try)
|
||||
(conditional_compl_end_if)
|
||||
"]"
|
||||
"}"
|
||||
] @indent.branch @indent.end
|
||||
|
||||
; Handle branching constructs
|
||||
[
|
||||
(else_if_clause)
|
||||
(else_clause)
|
||||
(conditional_compl_else_if_clause)
|
||||
(conditional_compl_else_clause)
|
||||
(catch_clause)
|
||||
] @indent.branch
|
||||
|
||||
; Ignore comments for indentation
|
||||
(comment) @indent.ignore
|
||||
2
queries/brightscript/injections.scm
Normal file
2
queries/brightscript/injections.scm
Normal file
@@ -0,0 +1,2 @@
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
Reference in New Issue
Block a user