mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			250 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
			
		
		
	
	
			250 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
| ;; Keywords
 | |
| 
 | |
| "return" @keyword.return
 | |
| 
 | |
| [
 | |
|  "goto"
 | |
|  "in"
 | |
|  "local"
 | |
| ] @keyword
 | |
| 
 | |
| (break_statement) @keyword
 | |
| 
 | |
| (do_statement
 | |
| [
 | |
|   "do"
 | |
|   "end"
 | |
| ] @keyword)
 | |
| 
 | |
| (while_statement
 | |
| [
 | |
|   "while"
 | |
|   "do"
 | |
|   "end"
 | |
| ] @repeat)
 | |
| 
 | |
| (repeat_statement
 | |
| [
 | |
|   "repeat"
 | |
|   "until"
 | |
| ] @repeat)
 | |
| 
 | |
| (if_statement
 | |
| [
 | |
|   "if"
 | |
|   "elseif"
 | |
|   "else"
 | |
|   "then"
 | |
|   "end"
 | |
| ] @conditional)
 | |
| 
 | |
| (elseif_statement
 | |
| [
 | |
|   "elseif"
 | |
|   "then"
 | |
|   "end"
 | |
| ] @conditional)
 | |
| 
 | |
| (else_statement
 | |
| [
 | |
|   "else"
 | |
|   "end"
 | |
| ] @conditional)
 | |
| 
 | |
| (for_statement
 | |
| [
 | |
|   "for"
 | |
|   "do"
 | |
|   "end"
 | |
| ] @repeat)
 | |
| 
 | |
| (function_declaration
 | |
| [
 | |
|   "function"
 | |
|   "end"
 | |
| ] @keyword.function)
 | |
| 
 | |
| (function_definition
 | |
| [
 | |
|   "function"
 | |
|   "end"
 | |
| ] @keyword.function)
 | |
| 
 | |
| ;; Operators
 | |
| 
 | |
| [
 | |
|  "and"
 | |
|  "not"
 | |
|  "or"
 | |
| ] @keyword.operator
 | |
| 
 | |
| [
 | |
|   "+"
 | |
|   "-"
 | |
|   "*"
 | |
|   "/"
 | |
|   "%"
 | |
|   "^"
 | |
|   "#"
 | |
|   "=="
 | |
|   "~="
 | |
|   "<="
 | |
|   ">="
 | |
|   "<"
 | |
|   ">"
 | |
|   "="
 | |
|   "&"
 | |
|   "~"
 | |
|   "|"
 | |
|   "<<"
 | |
|   ">>"
 | |
|   "//"
 | |
|   ".."
 | |
| ] @operator
 | |
| 
 | |
| ;; Punctuations
 | |
| 
 | |
| [
 | |
|   ";"
 | |
|   ":"
 | |
|   "::"
 | |
|   ","
 | |
|   "."
 | |
| ] @punctuation.delimiter
 | |
| 
 | |
| ;; Brackets
 | |
| 
 | |
| [
 | |
|  "("
 | |
|  ")"
 | |
|  "["
 | |
|  "]"
 | |
|  "{"
 | |
|  "}"
 | |
| ] @punctuation.bracket
 | |
| 
 | |
| ;; Variables
 | |
| 
 | |
| (identifier) @variable
 | |
| 
 | |
| ((identifier) @constant.builtin
 | |
|   (#eq? @constant.builtin "_VERSION"))
 | |
| 
 | |
| ((identifier) @variable.builtin
 | |
|   (#eq? @variable.builtin "self"))
 | |
| 
 | |
| ((identifier) @namespace.builtin
 | |
|   (#any-of? @namespace.builtin "_G" "debug" "io" "jit" "math" "os" "package" "string" "table" "utf8"))
 | |
| 
 | |
| ((identifier) @keyword.coroutine
 | |
|   (#eq? @keyword.coroutine "coroutine"))
 | |
| 
 | |
| (variable_list
 | |
|    attribute: (attribute
 | |
|      (["<" ">"] @punctuation.bracket
 | |
|       (identifier) @attribute)))
 | |
| 
 | |
| ;; Labels
 | |
| 
 | |
| (label_statement (identifier) @label)
 | |
| 
 | |
| (goto_statement (identifier) @label)
 | |
| 
 | |
| ;; Constants
 | |
| 
 | |
| ((identifier) @constant
 | |
|  (#lua-match? @constant "^[A-Z][A-Z_0-9]*$"))
 | |
| 
 | |
| (vararg_expression) @constant
 | |
| 
 | |
| (nil) @constant.builtin
 | |
| 
 | |
| [
 | |
|   (false)
 | |
|   (true)
 | |
| ] @boolean
 | |
| 
 | |
| ;; Tables
 | |
| 
 | |
| (field name: (identifier) @field)
 | |
| 
 | |
| (dot_index_expression field: (identifier) @field)
 | |
| 
 | |
| (table_constructor
 | |
| [
 | |
|   "{"
 | |
|   "}"
 | |
| ] @constructor)
 | |
| 
 | |
| ;; Functions
 | |
| 
 | |
| (parameters (identifier) @parameter)
 | |
| 
 | |
| (function_declaration
 | |
|   name: [
 | |
|     (identifier) @function
 | |
|     (dot_index_expression
 | |
|       field: (identifier) @function)
 | |
|   ])
 | |
| 
 | |
| (function_declaration
 | |
|   name: (method_index_expression
 | |
|     method: (identifier) @method))
 | |
| 
 | |
| (assignment_statement
 | |
|   (variable_list .
 | |
|     name: [
 | |
|       (identifier) @function
 | |
|       (dot_index_expression
 | |
|         field: (identifier) @function)
 | |
|     ])
 | |
|   (expression_list .
 | |
|     value: (function_definition)))
 | |
| 
 | |
| (table_constructor
 | |
|   (field
 | |
|     name: (identifier) @function
 | |
|     value: (function_definition)))
 | |
| 
 | |
| (function_call
 | |
|   name: [
 | |
|     (identifier) @function.call
 | |
|     (dot_index_expression
 | |
|       field: (identifier) @function.call)
 | |
|     (method_index_expression
 | |
|       method: (identifier) @method.call)
 | |
|   ])
 | |
| 
 | |
| (function_call
 | |
|   (identifier) @function.builtin
 | |
|   (#any-of? @function.builtin
 | |
|     ;; built-in functions in Lua 5.1
 | |
|     "assert" "collectgarbage" "dofile" "error" "getfenv" "getmetatable" "ipairs"
 | |
|     "load" "loadfile" "loadstring" "module" "next" "pairs" "pcall" "print"
 | |
|     "rawequal" "rawget" "rawlen" "rawset" "require" "select" "setfenv" "setmetatable"
 | |
|     "tonumber" "tostring" "type" "unpack" "xpcall"
 | |
|     "__add" "__band" "__bnot" "__bor" "__bxor" "__call" "__concat" "__div" "__eq" "__gc"
 | |
|     "__idiv" "__index" "__le" "__len" "__lt" "__metatable" "__mod" "__mul" "__name" "__newindex"
 | |
|     "__pairs" "__pow" "__shl" "__shr" "__sub" "__tostring" "__unm"))
 | |
| 
 | |
| ;; Others
 | |
| 
 | |
| (comment) @comment @spell
 | |
| 
 | |
| ((comment) @comment.documentation
 | |
|   (#lua-match? @comment.documentation "^[-][-][-]"))
 | |
| 
 | |
| ((comment) @comment.documentation
 | |
|   (#lua-match? @comment.documentation "^[-][-](%s?)@"))
 | |
| 
 | |
| (hash_bang_line) @preproc
 | |
| 
 | |
| (number) @number
 | |
| 
 | |
| (string) @string @spell
 | |
| 
 | |
| (escape_sequence) @string.escape
 | |
| 
 | |
| ;; Error
 | |
| (ERROR) @error
 | 
