;; ---------------------------------------------------------------------------- ;; Literals and comments [ (line_comment) (block_comment) (block_comment_content) ] @comment ;; ---------------------------------------------------------------------------- ;; Punctuation [ "(" ")" "{" "}" "[" "]" "[|" "|]" "[<" ">]" ] @punctuation.bracket [ "," ";" ] @punctuation.delimiter [ "|" "=" ">" "<" "-" "~" (infix_op) (prefix_op) (symbolic_op) ] @operator (attribute) @attribute [ "if" "then" "else" "elif" "when" "match" "match!" "and" "or" "&&" "||" "then" ] @keyword.control.conditional [ "return" "return!" ] @keyword.control.return [ "for" "while" ] @keyword.control.return [ "open" "#r" "#load" ] @keyword.control.import [ "abstract" "delegate" "static" "inline" "internal" "mutable" "override" "private" "public" "rec" ] @keyword.storage.modifier [ "enum" "let" "let!" "member" "module" "namespace" "type" ] @keyword.storage [ "as" "assert" "begin" "default" "do" "do!" "done" "downcast" "downto" "end" "event" "field" "finally" "fun" "function" "get" "global" "inherit" "interface" "lazy" "new" "not" "null" "of" "param" "property" "set" "struct" "try" "upcast" "use" "use!" "val" "with" "yield" "yield!" ] @keyword [ "true" "false" "unit" ] @constant.builtin [ (type) (const) ] @constant [ (union_type_case) (rules (rule (identifier_pattern))) ] @type.enum (fsi_directive_decl (string) @namespace) [ (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) [ ;;(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 [ (string) (triple_quoted_string) ] @string [ (int) (int16) (int32) (int64) (float) (decimal) ] @constant.numeric