mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 01:16:18 +04:00
Add fsharp language support (#7619)
This commit is contained in:
parent
86bf0e00fe
commit
2ace6032e7
@ -43,6 +43,7 @@
|
||||
| fish | ✓ | ✓ | ✓ | |
|
||||
| forth | ✓ | | | `forth-lsp` |
|
||||
| fortran | ✓ | | ✓ | `fortls` |
|
||||
| fsharp | ✓ | | | `fsautocomplete` |
|
||||
| gdscript | ✓ | ✓ | ✓ | |
|
||||
| git-attributes | ✓ | | | |
|
||||
| git-commit | ✓ | ✓ | | |
|
||||
|
@ -26,6 +26,7 @@ erlang-ls = { command = "erlang_ls" }
|
||||
forc = { command = "forc", args = ["lsp"] }
|
||||
forth-lsp = { command = "forth-lsp" }
|
||||
fortls = { command = "fortls", args = ["--lowercase_intrinsics"] }
|
||||
fsharp-ls = { command = "fsautocomplete", config = { AutomaticWorkspaceInit = true } }
|
||||
gleam = { command = "gleam", args = ["lsp"] }
|
||||
haskell-language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] }
|
||||
idris2-lsp = { command = "idris2-lsp" }
|
||||
@ -2661,6 +2662,21 @@ indent = { tab-width = 3, unit = " " }
|
||||
name = "forth"
|
||||
source = { git = "https://github.com/alexanderbrevig/tree-sitter-forth", rev = "304ed77beb113e37af38b20ff14e3c37bf350d10" }
|
||||
|
||||
[[language]]
|
||||
name = "fsharp"
|
||||
scope = "source.fs"
|
||||
roots = ["sln", "fsproj"]
|
||||
injection-regex = "fsharp"
|
||||
file-types = ["fs", "fsx"]
|
||||
comment-token = "//"
|
||||
indent = { tab-width = 4, unit = " " }
|
||||
auto-format = true
|
||||
language-servers = ["fsharp-ls"]
|
||||
|
||||
[[grammar]]
|
||||
name = "fsharp"
|
||||
source = { git = "https://github.com/kaashyapan/tree-sitter-fsharp", rev = "1b5a315e003024db6181744f1d25b8f525732665" }
|
||||
|
||||
[[language]]
|
||||
name = "t32"
|
||||
scope = "source.t32"
|
||||
|
196
runtime/queries/fsharp/highlights.scm
Normal file
196
runtime/queries/fsharp/highlights.scm
Normal file
@ -0,0 +1,196 @@
|
||||
;; ----------------------------------------------------------------------------
|
||||
;; 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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user