This commit is contained in:
parent
ad2061bab6
commit
e7f60611ac
7 changed files with 109 additions and 203 deletions
|
@ -109,7 +109,7 @@
|
|||
| pascal | ✓ | ✓ | | `pasls` |
|
||||
| passwd | ✓ | | | |
|
||||
| pem | ✓ | | | |
|
||||
| perl | ✓ | ✓ | ✓ | `perlnavigator` |
|
||||
| perl | ✓ | | | `perlnavigator` |
|
||||
| php | ✓ | ✓ | ✓ | `intelephense` |
|
||||
| po | ✓ | ✓ | | |
|
||||
| ponylang | ✓ | ✓ | ✓ | |
|
||||
|
|
|
@ -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"
|
||||
|
|
19
runtime/queries/perl/fold.scm
Normal file
19
runtime/queries/perl/fold.scm
Normal 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
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -1,2 +1,2 @@
|
|||
((comments) @injection.content
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
|
|
|
@ -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
|
Loading…
Reference in a new issue