Use latest tree-sitter-bicep, support bicepparams (#11525)

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
This commit is contained in:
Heath Stewart 2024-11-20 14:38:15 -08:00 committed by GitHub
parent ed7e5bd8dc
commit 843c058f0b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 214 additions and 55 deletions

View File

@ -2811,7 +2811,7 @@ source = { git = "https://github.com/inko-lang/tree-sitter-inko", rev = "7860637
[[language]] [[language]]
name = "bicep" name = "bicep"
scope = "source.bicep" scope = "source.bicep"
file-types = ["bicep"] file-types = ["bicep","bicepparam"]
auto-format = true auto-format = true
comment-token = "//" comment-token = "//"
block-comment-tokens = { start = "/*", end = "*/" } block-comment-tokens = { start = "/*", end = "*/" }
@ -2820,7 +2820,7 @@ language-servers = [ "bicep-langserver" ]
[[grammar]] [[grammar]]
name = "bicep" name = "bicep"
source = { git = "https://github.com/the-mikedavis/tree-sitter-bicep", rev = "d8e097fcfa143854861ef737161163a09cc2916b" } source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-bicep", rev = "0092c7d1bd6bb22ce0a6f78497d50ea2b87f19c0" }
[[language]] [[language]]
name = "qml" name = "qml"

View File

@ -1,73 +1,232 @@
; Keywords ; Includes
[ [
"module"
"var"
"param"
"import" "import"
"resource" "provider"
"existing" "with"
"if" "as"
"targetScope" "from"
"output" ] @keyword.control.import
] @keyword
; Namespaces
(module_declaration
(identifier) @namespace)
; Builtins
(primitive_type) @type.builtin
((member_expression
object: (identifier) @type.builtin)
(#eq? @type.builtin "sys"))
; Functions ; Functions
(call_expression
function: (identifier) @function)
(decorator) @function.builtin (user_defined_function
name: (identifier) @function)
(functionCall) @function ; Properties
(object_property
(identifier) @function.method
":" @punctuation.delimiter
(_))
(functionCall (object_property
(functionArgument (compatible_identifier) @function.method
(variableAccess) @variable)) ":" @punctuation.delimiter
(_))
; Literals/Types (property_identifier) @function.method
; Attributes
(decorator
"@" @attribute)
(decorator
(call_expression
(identifier) @attribute))
(decorator
(call_expression
(member_expression
object: (identifier) @attribute
property: (property_identifier) @attribute)))
; Types
(type_declaration
(identifier) @type)
(type_declaration
(identifier)
"="
(identifier) @type)
(type
(identifier) @type)
(resource_declaration
(identifier) @type)
(resource_expression
(identifier) @type)
; Parameters
(parameter_declaration
(identifier) @variable.parameter
(_))
(call_expression
function: (_)
(arguments
(identifier) @variable.parameter))
(call_expression
function: (_)
(arguments
(member_expression
object: (identifier) @variable.parameter)))
(parameter
.
(identifier) @variable.parameter)
; Variables
(variable_declaration
(identifier) @variable
(_))
(metadata_declaration
(identifier) @variable
(_))
(output_declaration
(identifier) @variable
(_))
(object_property
(_)
":"
(identifier) @variable)
(for_statement
"for"
(for_loop_parameters
(loop_variable) @variable
(loop_enumerator) @variable))
; Conditionals
"if" @keyword.conditional
(ternary_expression
"?" @keyword.control.conditional
":" @keyword.control.conditional)
; Loops
(for_statement
"for" @keyword.control.repeat
"in"
":" @punctuation.delimiter)
; Keywords
[
"module"
"metadata"
"output"
"param"
"resource"
"existing"
"targetScope"
"type"
"var"
"using"
"test"
] @keyword
"func" @keyword.function
"assert" @keyword.control.exception
; Operators
[
"+"
"-"
"*"
"/"
"%"
"||"
"&&"
"|"
"=="
"!="
"=~"
"!~"
">"
">="
"<="
"<"
"??"
"="
"!"
".?"
] @operator
(subscript_expression
"?" @operator)
(nullable_type
"?" @operator)
"in" @keyword.operator
; Literals
(string) @string
(escape_sequence) @constant.character
(number) @constant.number
(boolean) @constant.builtin.boolean
(null) @constant.builtin
; Misc
(compatible_identifier
"?" @punctuation.special)
(nullable_return_type) @punctuation.special
[ [
"("
")"
"["
"]"
"{" "{"
"}" "}"
] @punctuation.bracket ] @punctuation.bracket
(resourceDeclaration [
(string "["
(stringLiteral) @string.special)) "]"
] @punctuation.bracket
(moduleDeclaration
(string
(stringLiteral) @string.special))
[ [
(string) "("
(stringLiteral) ")"
] @string ] @punctuation.bracket
(nullLiteral) @keyword [
(booleanLiteral) @constant.builtin.boolean "."
(integerLiteral) @constant.numeric.integer ":"
(comment) @comment "::"
"=>"
] @punctuation.delimiter
(string ; Interpolation
(variableAccess (interpolation
(identifier) @variable)) "${" @punctuation.special
"}" @punctuation.special)
(type) @type (interpolation
(identifier) @variable)
; Variables ; Comments
[
(localVariable) @variable (comment)
(diagnostic_comment)
; Statements ] @comment
(object
(objectProperty
(identifier) @identifier))
(propertyAccess
(identifier) @identifier)
(ifCondition) @keyword.control.conditional