Jesse Luehrs 2023-07-17 01:09:38 -04:00 committed by GitHub
parent ad2061bab6
commit e7f60611ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 109 additions and 203 deletions

View File

@ -109,7 +109,7 @@
| pascal | ✓ | ✓ | | `pasls` |
| passwd | ✓ | | | |
| pem | ✓ | | | |
| perl | ✓ | | | `perlnavigator` |
| perl | ✓ | | | `perlnavigator` |
| php | ✓ | ✓ | ✓ | `intelephense` |
| po | ✓ | ✓ | | |
| ponylang | ✓ | ✓ | ✓ | |

View File

@ -1112,7 +1112,7 @@ indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "perl"
source = { git = "https://github.com/ganezdragon/tree-sitter-perl", rev = "0ac2c6da562c7a2c26ed7e8691d4a590f7e8b90a" }
source = { git = "https://github.com/tree-sitter-perl/tree-sitter-perl", rev = "ed21ecbcc128a6688770ebafd3ef68a1c9bc1ea9" }
[[language]]
name = "racket"

View File

@ -0,0 +1,19 @@
(comment) @fold
(pod) @fold
; fold the block-typed package statements only
(package_statement (block)) @fold
[(subroutine_declaration_statement)
(conditional_statement)
(loop_statement)
(for_statement)
(cstyle_for_statement)
(block_statement)
(phaser_statement)] @fold
(anonymous_subroutine_expression) @fold
; perhaps folks want to fold these too?
[(anonymous_array_expression)
(anonymous_hash_expression)] @fold

View File

@ -1,181 +1,100 @@
; Variables
(variable_declaration
.
(scope) @keyword)
[
(single_var_declaration)
(scalar_variable)
(array_variable)
(hash_variable)
(hash_variable)
] @variable
"use" "no" "require" "package"
] @keyword.control.import
[
(package_name)
(special_scalar_variable)
(special_array_variable)
(special_hash_variable)
(special_literal)
(super)
] @constant
(
[
(package_name)
(super)
]
.
("::" @operator)
)
(comments) @comment
(pod_statement) @comment.block.documentation
[
(use_no_statement)
(use_no_feature_statement)
(use_no_if_statement)
(use_no_version)
(use_constant_statement)
(use_parent_statement)
] @keyword
(use_constant_statement
constant: (identifier) @constant)
[
"require"
] @keyword
(method_invocation
.
(identifier) @variable)
(method_invocation
(arrow_operator)
.
(identifier) @function)
(method_invocation
function_name: (identifier) @function)
(named_block_statement
function_name: (identifier) @function)
(call_expression
function_name: (identifier) @function)
(function_definition
name: (identifier) @function)
[
(function)
(map)
(grep)
(bless)
] @function
[
"return"
"sub"
"package"
"BEGIN"
"END"
"sub"
] @keyword.function
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
(standard_input_to_variable) @punctuation.bracket
[
"=~"
"or"
"="
"=="
"+"
"-"
"."
"//"
"||"
(arrow_operator)
(hash_arrow_operator)
(array_dereference)
(hash_dereference)
(to_reference)
(type_glob)
(hash_access_variable)
(ternary_expression)
(ternary_expression_in_hash)
] @operator
[
(regex_option)
(regex_option_for_substitution)
(regex_option_for_transliteration)
] @variable.parameter
(type_glob
(identifier) @variable)
(
(scalar_variable)
.
("->" @operator))
[
(word_list_qw)
(command_qx_quoted)
(string_single_quoted)
(string_double_quoted)
(string_qq_quoted)
(bareword)
(transliteration_tr_or_y)
] @string
[
(regex_pattern_qr)
(patter_matcher_m)
(substitution_pattern_s)
] @string.regexp
(escape_sequence) @string.special
[
","
(semi_colon)
(start_delimiter)
(end_delimiter)
(ellipsis_statement)
] @punctuation.delimiter
[
(integer)
(floating_point)
(scientific_notation)
(hexadecimal)
] @constant.numeric
[
; (if_statement)
(unless_statement)
(if_simple_statement)
(unless_simple_statement)
"if" "elsif" "else" "unless"
] @keyword.control.conditional
[
"if"
"elsif"
"else"
] @keyword.control.conditional
"while" "until"
"for" "foreach"
"do"
] @keyword.control.repeat
(foreach_statement) @keyword.control.repeat
(foreach_statement
.
(scope) @keyword)
[
"my" "our" "local"
] @keyword.storage.modifier
(function_attribute) @label
[
"last" "next" "redo" "goto" "return"
] @keyword.control.return
(function_signature) @type
[
"undef"
] @constant.builtin
(phaser_statement phase: _ @keyword.directive)
[
"or" "and"
"eq" "ne" "cmp" "lt" "le" "ge" "gt"
"isa"
] @keyword.operator
(comment) @comment
(eof_marker) @keyword.directive
(data_section) @comment
(pod) @comment.block.documentation
(number) @constant.numeric
(version) @constant
(string_literal) @string
(interpolated_string_literal) @string
(quoted_word_list) @string
(command_string) @string
[(heredoc_token) (command_heredoc_token)] @string.special
(heredoc_content) @string
(heredoc_end) @string.special
[(escape_sequence) (escaped_delimiter)] @constant.character.escape
[(quoted_regexp) (match_regexp)] @string.regexp
(autoquoted_bareword _?) @string.special
[(scalar) (arraylen)] @variable
(scalar_deref_expression ["->" "$" "*"] @variable)
(array) @variable
(array_deref_expression ["->" "@" "*"] @variable)
(hash) @variable
(hash_deref_expression ["->" "%" "*"] @variable)
(array_element_expression [array:(_) "->" "[" "]"] @variable)
(slice_expression [array:(_) "->" "[" "]"] @variable)
(keyval_expression [array:(_) "->" "[" "]"] @variable)
(hash_element_expression [hash:(_) "->" "{" "}"] @variable)
(slice_expression [hash:(_) "->" "[" "]"] @variable)
(keyval_expression [hash:(_) "->" "[" "]"] @variable)
(hash_element_expression key: (bareword) @string.special)
(use_statement (package) @type)
(package_statement (package) @type)
(require_expression (bareword) @type)
(subroutine_declaration_statement name: (_) @function)
(attrlist (attribute) @attribute)
(goto_expression (label) @label)
(loopex_expression (label) @label)
(statement_label label: _ @label)
(relational_expression operator: "isa" right: (bareword) @type)
(function_call_expression (function) @function)
(method_call_expression (method) @function.method)
(method_call_expression invocant: (bareword) @type)
(func0op_call_expression function: _ @function.builtin)
(func1op_call_expression function: _ @function.builtin)
(function) @function

View File

@ -1,15 +0,0 @@
[
(function)
(identifier)
(method_invocation)
(if_statement)
(unless_statement)
(if_simple_statement)
(unless_simple_statement)
(variable_declaration)
(block)
(list_item)
(word_list_qw)
] @indent
"}" @outdent

View File

@ -1,2 +1,2 @@
((comments) @injection.content
((comment) @injection.content
(#set! injection.language "comment"))

View File

@ -1,17 +0,0 @@
(function_definition
(identifier) (_) @function.inside) @function.around
(anonymous_function
(_) @function.inside) @function.around
(argument
(_) @parameter.inside)
[
(comments)
(pod_statement)
] @comment.inside
(comments)+ @comment.around
(pod_statement) @comment.around