mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-10 23:40:04 -04:00
Merge pull request #25 from TravonteD/ruby-support
Add query/locals for ruby syntax highlighting
This commit is contained in:
commit
2a4fece2b6
2 changed files with 185 additions and 0 deletions
140
queries/ruby/highlights.scm
Normal file
140
queries/ruby/highlights.scm
Normal file
|
|
@ -0,0 +1,140 @@
|
||||||
|
; Keywords
|
||||||
|
|
||||||
|
"alias" @keyword
|
||||||
|
"and" @keyword
|
||||||
|
"begin" @keyword
|
||||||
|
"break" @keyword
|
||||||
|
"case" @keyword
|
||||||
|
"class" @keyword
|
||||||
|
"def" @keyword
|
||||||
|
"do" @keyword
|
||||||
|
"else" @keyword
|
||||||
|
"elsif" @keyword
|
||||||
|
"end" @keyword
|
||||||
|
"ensure" @keyword
|
||||||
|
"for" @keyword
|
||||||
|
"if" @keyword
|
||||||
|
"in" @keyword
|
||||||
|
"module" @keyword
|
||||||
|
"next" @keyword
|
||||||
|
"or" @keyword
|
||||||
|
"rescue" @keyword
|
||||||
|
"retry" @keyword
|
||||||
|
"return" @keyword
|
||||||
|
"then" @keyword
|
||||||
|
"unless" @keyword
|
||||||
|
"until" @keyword
|
||||||
|
"when" @keyword
|
||||||
|
"while" @keyword
|
||||||
|
"yield" @keyword
|
||||||
|
|
||||||
|
((identifier) @keyword
|
||||||
|
(match? @keyword "^(private|protected|public)$"))
|
||||||
|
|
||||||
|
; Function calls
|
||||||
|
|
||||||
|
((identifier) @function
|
||||||
|
(eq? @function "require"))
|
||||||
|
|
||||||
|
"defined?" @function
|
||||||
|
|
||||||
|
(call
|
||||||
|
receiver: (constant) @constant)
|
||||||
|
(method_call
|
||||||
|
receiver: (constant) @constant)
|
||||||
|
(call
|
||||||
|
method: (identifier) @function)
|
||||||
|
(method_call
|
||||||
|
method: (identifier) @function)
|
||||||
|
(call
|
||||||
|
method: (constant) @function)
|
||||||
|
(method_call
|
||||||
|
method: (constant) @function)
|
||||||
|
|
||||||
|
; Function definitions
|
||||||
|
|
||||||
|
(alias (identifier) @function)
|
||||||
|
(setter (identifier) @function)
|
||||||
|
(method name: (identifier) @function)
|
||||||
|
(method name: (constant) @constant)
|
||||||
|
(class name: (constant) @constant)
|
||||||
|
(singleton_method name: (identifier) @function)
|
||||||
|
(singleton_method name: (constant) @constant)
|
||||||
|
|
||||||
|
; Identifiers
|
||||||
|
|
||||||
|
(class_variable) @Identifier
|
||||||
|
(instance_variable) @Identifier
|
||||||
|
|
||||||
|
((identifier) @constant
|
||||||
|
(match? @constant "^__(FILE|LINE|ENCODING)__$"))
|
||||||
|
|
||||||
|
((constant) @constant
|
||||||
|
(match? @constant "^[A-Z\\d_]+$"))
|
||||||
|
|
||||||
|
(constant) @constant
|
||||||
|
|
||||||
|
(self) @constant
|
||||||
|
(super) @Identifier
|
||||||
|
|
||||||
|
(method_parameters (identifier) @Type)
|
||||||
|
(lambda_parameters (identifier) @Type)
|
||||||
|
(block_parameters (identifier) @Type)
|
||||||
|
(splat_parameter (identifier) @Type)
|
||||||
|
(hash_splat_parameter (identifier) @Type)
|
||||||
|
(optional_parameter (identifier) @Type)
|
||||||
|
(destructured_parameter (identifier) @Type)
|
||||||
|
(block_parameter (identifier) @Type)
|
||||||
|
(keyword_parameter (identifier) @Type)
|
||||||
|
|
||||||
|
((identifier) @function
|
||||||
|
(is-not? local))
|
||||||
|
|
||||||
|
; Literals
|
||||||
|
|
||||||
|
(string) @string
|
||||||
|
(bare_string) @string
|
||||||
|
(bare_symbol) @constant
|
||||||
|
(subshell) @string
|
||||||
|
(heredoc_beginning) @Delimiter
|
||||||
|
(heredoc_body) @string
|
||||||
|
(heredoc_end) @Delimiter
|
||||||
|
(symbol) @constant
|
||||||
|
(regex) @string
|
||||||
|
(escape_sequence) @Special
|
||||||
|
(integer) @number
|
||||||
|
(float) @number
|
||||||
|
|
||||||
|
(nil) @Identifier
|
||||||
|
(true) @Identifier
|
||||||
|
(false) @Identifier
|
||||||
|
|
||||||
|
(interpolation
|
||||||
|
"#{" @Delimiter
|
||||||
|
(identifier) @Identifier
|
||||||
|
"}" @Delimiter) @embedded
|
||||||
|
|
||||||
|
(comment) @comment
|
||||||
|
|
||||||
|
; Operators
|
||||||
|
|
||||||
|
"=" @operator
|
||||||
|
"=>" @operator
|
||||||
|
"->" @operator
|
||||||
|
"+" @operator
|
||||||
|
"-" @operator
|
||||||
|
"*" @operator
|
||||||
|
"/" @operator
|
||||||
|
|
||||||
|
"," @Normal
|
||||||
|
";" @Normal
|
||||||
|
"." @Normal
|
||||||
|
|
||||||
|
"(" @Normal
|
||||||
|
")" @Normal
|
||||||
|
"[" @Normal
|
||||||
|
"]" @Normal
|
||||||
|
"{" @Normal
|
||||||
|
"}" @Normal
|
||||||
|
"%w(" @Normal
|
||||||
|
"%i(" @Normal
|
||||||
45
queries/ruby/locals.scm
Normal file
45
queries/ruby/locals.scm
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
; The MIT License (MIT)
|
||||||
|
;
|
||||||
|
; Copyright (c) 2016 Rob Rix
|
||||||
|
;
|
||||||
|
; Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
; of this software and associated documentation files (the "Software"), to deal
|
||||||
|
; in the Software without restriction, including without limitation the rights
|
||||||
|
; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
; copies of the Software, and to permit persons to whom the Software is
|
||||||
|
; furnished to do so, subject to the following conditions:
|
||||||
|
;
|
||||||
|
; The above copyright notice and this permission notice shall be included in all
|
||||||
|
; copies or substantial portions of the Software.
|
||||||
|
;
|
||||||
|
; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
; SOFTWARE.
|
||||||
|
|
||||||
|
;;; DESCLARATIONS AND SCOPES
|
||||||
|
((method) @scope
|
||||||
|
(set! scope-inherits false))
|
||||||
|
|
||||||
|
(block) @scope
|
||||||
|
(do_block) @scope
|
||||||
|
|
||||||
|
(method_parameters (identifier) @definition)
|
||||||
|
(lambda_parameters (identifier) @definition)
|
||||||
|
(block_parameters (identifier) @definition)
|
||||||
|
(splat_parameter name: (identifier) @definition)
|
||||||
|
(hash_splat_parameter name: (identifier) @definition)
|
||||||
|
(optional_parameter name: (identifier) @definition)
|
||||||
|
(destructured_parameter name: (identifier) @definition)
|
||||||
|
(block_parameter name: (identifier) @definition)
|
||||||
|
(keyword_parameter name: (identifier) @definition)
|
||||||
|
|
||||||
|
(identifier) @reference
|
||||||
|
|
||||||
|
(assignment left:(identifier) @definition)
|
||||||
|
(left_assignment_list (identifier) @definition)
|
||||||
|
(rest_assignment (identifier) @definition)
|
||||||
|
(destructured_left_assignment (identifier) @definition)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue