Add various tree-sitter languages

This commit is contained in:
Logan Wemyss 2022-06-20 05:19:31 -06:00
parent 2166d96d32
commit 9fa40c4bdb
No known key found for this signature in database
GPG Key ID: FCAAA0511D066AD1
4 changed files with 165 additions and 1 deletions

50
Cargo.lock generated
View File

@ -2180,19 +2180,24 @@ dependencies = [
"tree-sitter-cpp",
"tree-sitter-elixir",
"tree-sitter-elm",
"tree-sitter-glimmer",
"tree-sitter-go",
"tree-sitter-haskell",
"tree-sitter-haxe",
"tree-sitter-hcl",
"tree-sitter-highlight",
"tree-sitter-html",
"tree-sitter-java",
"tree-sitter-javascript",
"tree-sitter-json",
"tree-sitter-md",
"tree-sitter-ocaml",
"tree-sitter-php",
"tree-sitter-python",
"tree-sitter-ql",
"tree-sitter-ruby",
"tree-sitter-rust",
"tree-sitter-scss",
"tree-sitter-swift",
"tree-sitter-toml",
"tree-sitter-typescript",
@ -4582,6 +4587,15 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-glimmer"
version = "0.0.1"
source = "git+https://github.com/VixieTSQ/tree-sitter-glimmer#726c956eafa1ddc1d453292716c1e6a3ee7a33c4"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-go"
version = "0.19.1"
@ -4601,6 +4615,24 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-haxe"
version = "0.0.1"
source = "git+https://github.com/VixieTSQ/tree-sitter-haxe#a3e23bc0f84a53371eb5d86229782ec6c21d3729"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-hcl"
version = "0.0.1"
source = "git+https://github.com/VixieTSQ/tree-sitter-hcl#fee8bab54172f972121d4e51f7de131d24922fa9"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-highlight"
version = "0.20.1"
@ -4660,6 +4692,15 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-ocaml"
version = "0.20.0"
source = "git+https://github.com/tree-sitter/tree-sitter-ocaml#cc26b1ef111100f26a137bcbcd39fd4e35be9a59"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-php"
version = "0.19.1"
@ -4707,6 +4748,15 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-scss"
version = "0.0.1"
source = "git+https://github.com/VixieTSQ/tree-sitter-scss?branch=patch-1#3aac3391ede5098edbf4cc8a9f6d0cfdfe28e5dc"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-swift"
version = "0.3.0"

View File

@ -34,6 +34,11 @@ tree-sitter-elm = { version = "5.6.0", optional = true }
tree-sitter-swift = { version = "0.3.0", optional = true }
tree-sitter-ql = { git = "https://github.com/tree-sitter/tree-sitter-ql", version = "0.19.0", optional = true }
tree-sitter-haskell = { git = "https://github.com/tree-sitter/tree-sitter-haskell", version = "0.14.0", optional = true }
tree-sitter-ocaml = { git = "https://github.com/tree-sitter/tree-sitter-ocaml", version = "0.20.0", optional = true }
tree-sitter-glimmer = { git = "https://github.com/VixieTSQ/tree-sitter-glimmer", version = "0.0.1", optional = true }
tree-sitter-haxe = { git = "https://github.com/VixieTSQ/tree-sitter-haxe", version = "0.0.1", optional = true }
tree-sitter-hcl = { git = "https://github.com/VixieTSQ/tree-sitter-hcl", version = "0.0.1", optional = true }
tree-sitter-scss = { git = "https://github.com/VixieTSQ/tree-sitter-scss", version = "0.0.1", branch = "patch-1", optional = true }
lsp-types = { version = "0.89.2", features = ["proposed"] }
xi-rope = { git = "https://github.com/lapce/xi-editor", features = ["serde"] }
lapce-rpc = { path = "../lapce-rpc" }
@ -62,3 +67,8 @@ lang-elm = ["dep:tree-sitter-elm"]
lang-swift = ["dep:tree-sitter-swift"]
lang-ql = ["dep:tree-sitter-ql"]
lang-haskell = ["dep:tree-sitter-haskell"]
lang-ocaml = ["dep:tree-sitter-ocaml"]
lang-glimmer = ["dep:tree-sitter-glimmer"]
lang-haxe = ["dep:tree-sitter-haxe"]
lang-hcl = ["dep:tree-sitter-hcl"]
lang-scss = ["dep:tree-sitter-scss"]

View File

@ -138,6 +138,18 @@ pub enum LapceLanguage {
QL,
#[cfg(feature = "lang-haskell")]
Haskell,
#[cfg(feature = "lang-glimmer")]
Glimmer,
#[cfg(feature = "lang-haxe")]
Haxe,
#[cfg(feature = "lang-hcl")]
HCL,
#[cfg(feature = "lang-ocaml")]
OCaml,
#[cfg(feature = "lang-ocaml")]
OCamlInterface,
#[cfg(feature = "lang-scss")]
SCSS,
}
// NOTE: Elements in the array must be in the same order as the enum variants of
@ -376,6 +388,66 @@ pub enum LapceLanguage {
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["hs"],
},
#[cfg(feature = "lang-glimmer")]
SyntaxProperties {
id: LapceLanguage::Glimmer,
language: tree_sitter_glimmer::language,
highlight: tree_sitter_glimmer::HIGHLIGHTS_QUERY,
comment: "{{!",
indent: " ",
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["hbs"],
},
#[cfg(feature = "lang-haxe")]
SyntaxProperties {
id: LapceLanguage::Haxe,
language: tree_sitter_haxe::language,
highlight: tree_sitter_haxe::HIGHLIGHTS_QUERY,
comment: "//",
indent: " ",
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["hx"],
},
#[cfg(feature = "lang-hcl")]
SyntaxProperties {
id: LapceLanguage::HCL,
language: tree_sitter_hcl::language,
highlight: tree_sitter_hcl::HIGHLIGHTS_QUERY,
comment: "//",
indent: " ",
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["hcl"],
},
#[cfg(feature = "lang-ocaml")]
SyntaxProperties {
id: LapceLanguage::OCaml,
language: tree_sitter_ocaml::language_ocaml,
highlight: tree_sitter_ocaml::HIGHLIGHTS_QUERY,
comment: "(*",
indent: " ",
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["ml"],
},
#[cfg(feature = "lang-ocaml")]
SyntaxProperties {
id: LapceLanguage::OCaml,
language: tree_sitter_ocaml::language_ocaml_interface,
highlight: tree_sitter_ocaml::HIGHLIGHTS_QUERY,
comment: "(*",
indent: " ",
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["mli"],
},
#[cfg(feature = "lang-scss")]
SyntaxProperties {
id: LapceLanguage::SCSS,
language: tree_sitter_scss::language,
highlight: tree_sitter_scss::HIGHLIGHTS_QUERY,
comment: "//",
indent: " ",
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["scss"],
},
];
impl LapceLanguage {
@ -614,4 +686,25 @@ fn test_ql_lang() {
fn test_haskell_lang() {
assert_language(LapceLanguage::Haskell, &["hs"]);
}
#[cfg(feature = "lang-glimmer")]
fn test_glimmer_lang() {
assert_language(LapceLanguage::Glimmer, &["hbs"]);
}
#[cfg(feature = "lang-haxe")]
fn test_haxe_lang() {
assert_language(LapceLanguage::Haxe, &["hx"]);
}
#[cfg(feature = "lang-hcl")]
fn test_hcl_lang() {
assert_language(LapceLanguage::HCL, &["hcl"]);
}
#[cfg(feature = "lang-ocaml")]
fn test_ocaml_lang() {
assert_language(LapceLanguage::OCaml, &["ml"]);
assert_language(LapceLanguage::OCamlInterface, &["mli"]);
}
#[cfg(feature = "lang-scss")]
fn test_scss_lang() {
assert_language(LapceLanguage::SCSS, &["scss"]);
}
}

View File

@ -81,7 +81,13 @@ all-languages = [
"lang-swift",
"lang-ql",
"lang-haskell",
"lang-ocaml",
"lang-glimmer",
"lang-haxe",
"lang-hcl",
"lang-scss"
]
lang-rust = ["lapce-core/lang-rust"]
lang-go = ["lapce-core/lang-go"]
lang-javascript= ["lapce-core/lang-javascript"]
@ -101,3 +107,8 @@ lang-elm = ["lapce-core/lang-elm"]
lang-swift = ["lapce-core/lang-swift"]
lang-ql = ["lapce-core/lang-ql"]
lang-haskell = ["lapce-core/lang-haskell"]
lang-ocaml = ["lapce-core/lang-ocaml"]
lang-glimmer = ["lapce-core/lang-glimmer"]
lang-haxe = ["lapce-core/lang-haxe"]
lang-hcl = ["lapce-core/lang-hcl"]
lang-scss = ["lapce-core/lang-scss"]