Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/fsharp/highlights.scm')
-rw-r--r--runtime/queries/fsharp/highlights.scm330
1 files changed, 88 insertions, 242 deletions
diff --git a/runtime/queries/fsharp/highlights.scm b/runtime/queries/fsharp/highlights.scm
index 43905c88..68b70ba7 100644
--- a/runtime/queries/fsharp/highlights.scm
+++ b/runtime/queries/fsharp/highlights.scm
@@ -1,176 +1,16 @@
;; ----------------------------------------------------------------------------
;; Literals and comments
-(line_comment) @comment.line
-
-(block_comment) @comment.block
-
-(xml_doc) @comment.block.documentation
-
-(const
- [
- (_) @constant
- (unit) @constant.builtin
- ])
-
-(primary_constr_args (_) @variable.parameter)
-
-((identifier_pattern (long_identifier (identifier) @special))
- (#match? @special "^\_.*"))
+[
+ (line_comment)
+ (block_comment)
+ (block_comment_content)
+] @comment
-((long_identifier
- (identifier)+
- .
- (identifier) @variable.other.member))
;; ----------------------------------------------------------------------------
;; Punctuation
-(wildcard_pattern) @string.special
-
-(type_name type_name: (_) @type)
-
-[
- (type)
- (atomic_type)
-] @type
-
-(member_signature
- .
- (identifier) @function.method
- (curried_spec
- (arguments_spec
- "*"* @operator
- (argument_spec
- (argument_name_spec
- "?"? @special
- name: (_) @variable.parameter)))))
-
-(union_type_case) @constant
-
-(rules
- (rule
- pattern: (_) @constant
- block: (_)))
-
-(identifier_pattern
- .
- (_) @constant
- .
- (_) @variable)
-
-(fsi_directive_decl . (string) @namespace)
-
-(import_decl . (_) @namespace)
-(named_module
- name: (_) @namespace)
-(namespace
- name: (_) @namespace)
-(module_defn
- .
- (_) @namespace)
-
-(ce_expression
- .
- (_) @function.macro)
-
-(field_initializer
- field: (_) @variable.other.member)
-
-(record_fields
- (record_field
- .
- (identifier) @variable.other.member))
-
-(dot_expression
- base: (_) @namespace
- field: (_) @variable.other.member)
-
-(value_declaration_left . (_) @variable)
-
-(function_declaration_left
- . (_) @function
- [
- (argument_patterns)
- (argument_patterns (long_identifier (identifier)))
- ] @variable.parameter)
-
-(member_defn
- (method_or_prop_defn
- [
- (property_or_ident) @function
- (property_or_ident
- instance: (identifier) @variable.builtin
- method: (identifier) @function.method)
- ]
- args: (_)* @variable.parameter))
-
-(application_expression
- .
- [
- (long_identifier_or_op [
- (long_identifier (identifier)* (identifier) @function)
- (identifier) @function
- ])
- (typed_expression . (long_identifier_or_op (long_identifier (identifier)* . (identifier) @function.call)))
- (dot_expression base: (_) @variable.other.member field: (_) @function)
- ] @function)
-
-((infix_expression
- .
- (_)
- .
- (infix_op) @operator
- .
- (_) @function
- )
- (#eq? @operator "|>")
- )
-
-((infix_expression
- .
- (_) @function
- .
- (infix_op) @operator
- .
- (_)
- )
- (#eq? @operator "<|")
- )
-
-[
- (xint)
- (int)
- (int16)
- (uint16)
- (int32)
- (uint32)
- (int64)
- (uint64)
- (nativeint)
- (unativeint)
-] @constant.numeric.integer
-
-[
- (ieee32)
- (ieee64)
- (float)
- (decimal)
-] @constant.numeric.float
-
-(bool) @constant.builtin.boolean
-
-([
- (string)
- (triple_quoted_string)
- (verbatim_string)
- (char)
-] @string)
-
-(compiler_directive_decl) @keyword.directive
-
-(attribute) @attribute
-
[
"("
")"
@@ -180,40 +20,31 @@
"]"
"[|"
"|]"
- "{|"
- "|}"
"[<"
">]"
] @punctuation.bracket
-(format_string_eval
- [
- "{"
- "}"
- ] @punctuation.special)
-
[
- ","
+ ","
";"
] @punctuation.delimiter
[
- "|"
+ "|"
"="
">"
"<"
"-"
"~"
- "->"
- "<-"
- "&&"
- "||"
- ":>"
- ":?>"
(infix_op)
(prefix_op)
+ (symbolic_op)
] @operator
+
+
+(attribute) @attribute
+
[
"if"
"then"
@@ -222,29 +53,22 @@
"when"
"match"
"match!"
-] @keyword.control.conditional
-
-[
"and"
"or"
- "not"
- "upcast"
- "downcast"
-] @keyword.operator
+ "&&"
+ "||"
+ "then"
+] @keyword.control.conditional
[
"return"
"return!"
- "yield"
- "yield!"
] @keyword.control.return
[
"for"
"while"
- "downto"
- "to"
-] @keyword.control.repeat
+] @keyword.control.return
[
@@ -258,93 +82,115 @@
"delegate"
"static"
"inline"
+ "internal"
"mutable"
"override"
+ "private"
+ "public"
"rec"
- "global"
- (access_modifier)
] @keyword.storage.modifier
[
+ "enum"
"let"
"let!"
- "use"
- "use!"
"member"
-] @keyword.function
-
-[
- "enum"
+ "module"
+ "namespace"
"type"
- "inherit"
- "interface"
-] @keyword.storage.type
-
-(try_expression
- [
- "try"
- "with"
- "finally"
- ] @keyword.control.exception)
-
-((identifier) @keyword.control.exception
- (#any-of? @keyword.control.exception "failwith" "failwithf" "raise" "reraise"))
+] @keyword.storage
[
"as"
"assert"
"begin"
- "end"
- "done"
"default"
- "in"
"do"
"do!"
+ "done"
+ "downcast"
+ "downto"
+ "end"
"event"
"field"
+ "finally"
"fun"
"function"
"get"
- "set"
+ "global"
+ "inherit"
+ "interface"
"lazy"
"new"
+ "not"
+ "null"
"of"
"param"
"property"
+ "set"
"struct"
+ "try"
+ "upcast"
+ "use"
+ "use!"
"val"
- "module"
- "namespace"
"with"
+ "yield"
+ "yield!"
] @keyword
[
- "null"
-] @constant.builtin
+ "true"
+ "false"
+ "unit"
+ ] @constant.builtin
+
+[
+ (type)
+ (const)
+] @constant
+
+[
+ (union_type_case)
+ (rules (rule (identifier_pattern)))
+] @type.enum
-(match_expression "with" @keyword.control.conditional)
+(fsi_directive_decl (string) @namespace)
-((type
- (long_identifier (identifier) @type.builtin))
- (#any-of? @type.builtin "bool" "byte" "sbyte" "int16" "uint16" "int" "uint" "int64" "uint64" "nativeint" "unativeint" "decimal" "float" "double" "float32" "single" "char" "string" "unit"))
+[
+ (import_decl (long_identifier))
+ (named_module (long_identifier))
+ (namespace (long_identifier))
+ (named_module
+ name: (long_identifier) )
+ (namespace
+ name: (long_identifier) )
+] @namespace
+
+
+(dot_expression
+ base: (long_identifier_or_op) @variable.other.member
+ field: (long_identifier_or_op) @function)
-(preproc_if
- [
- "#if" @keyword.directive
- "#endif" @keyword.directive
- ]
- condition: (_)? @keyword.directive)
+[
+ ;;(value_declaration_left (identifier_pattern) )
+ (function_declaration_left (identifier) )
+ (call_expression (long_identifier_or_op (long_identifier)))
+ ;;(application_expression (long_identifier_or_op (long_identifier)))
+] @function
-(preproc_else
- "#else" @keyword.directive)
+[
+ (string)
+ (triple_quoted_string)
+] @string
-((long_identifier
- (identifier)+ @namespace
- .
- (identifier)))
+[
+ (int)
+ (int16)
+ (int32)
+ (int64)
+ (float)
+ (decimal)
+] @constant.numeric
-(long_identifier_or_op
- (op_identifier) @operator)
-((identifier) @namespace
- (#any-of? @namespace "Array" "Async" "Directory" "File" "List" "Option" "Path" "Map" "Set" "Lazy" "Seq" "Task" "String" "Result" ))