1
0
mirror of https://github.com/helix-editor/helix synced 2026-03-07 20:46:21 +01:00
helix/runtime/queries/freebasic/highlights.scm

97 lines
1.1 KiB
Scheme

; Keywords
[
"DIM"
"IF"
"THEN"
"ELSE"
"END IF"
"WHILE"
"WEND"
"FOR"
"TO"
"STEP"
"NEXT"
"DO"
"LOOP"
"UNTIL"
"SUB"
"END SUB"
"FUNCTION"
"END FUNCTION"
"RETURN"
"PRINT"
"INPUT"
"SLEEP"
"AS"
] @keyword
; Logical operators
[
"AND"
"OR"
"NOT"
"MOD"
] @keyword.operator
; Types
[
"INTEGER"
"LONG"
"SINGLE"
"DOUBLE"
"STRING"
"BYTE"
] @type
(type_identifier) @type
; Function and sub declarations
(sub_declaration
name: (identifier) @function)
(function_declaration
name: (identifier) @function)
; Function calls
(call_expression
function: (identifier) @function.call)
; Built-in functions
((identifier) @function.builtin
(#match? @function.builtin "^(?i)(ABS|SIN|COS|TAN|SQR|LEN|VAL|ASC|CHR|LEFT|RIGHT|MID|STR|INT|RND|INSTR|UCASE|LCASE|LTRIM|RTRIM|SPACE|TIME|DATE|TIMER)$"))
; Literals
(number_literal) @constant.numeric
(string_literal) @string
; Comments
(comment) @comment
; Operators
[
"="
"+"
"-"
"*"
"/"
"^"
"<>"
"<"
">"
"<="
">="
] @operator
; Punctuation
[
"("
")"
] @punctuation.bracket
[
","
";"
] @punctuation.delimiter
; Variables
(identifier) @variable