add elm syntax highlighting using tree-sitter-elm

Signed-off-by: Suraj Ghimire <suraj@ghishadow.com>
This commit is contained in:
Suraj Ghimire 2022-06-18 01:11:21 +05:30
parent e8d5fd1bf1
commit b9af8cab53
No known key found for this signature in database
GPG Key ID: 1263B04589021BE8
4 changed files with 33 additions and 1 deletions

11
Cargo.lock generated
View File

@ -2179,6 +2179,7 @@ dependencies = [
"tree-sitter-c",
"tree-sitter-cpp",
"tree-sitter-elixir",
"tree-sitter-elm",
"tree-sitter-go",
"tree-sitter-highlight",
"tree-sitter-html",
@ -4567,6 +4568,16 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-elm"
version = "5.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d4c28acbbdb8a0d72a5eb181e05d29f664e6631c3182f1e3d9974ae900addf3"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-go"
version = "0.19.1"

View File

@ -30,6 +30,7 @@ tree-sitter-json = { version = "0.19.0", optional = true }
tree-sitter-md = { git = "https://github.com/MDeiml/tree-sitter-markdown.git", version = "0.0.1", optional = true }
tree-sitter-html = { version = "0.19.0", optional = true }
tree-sitter-java = { git = "https://github.com/tree-sitter/tree-sitter-java.git", version = "0.20.0", optional = true }
tree-sitter-elm = { version = "5.6.0", 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" }
@ -54,3 +55,4 @@ lang-json = ["dep:tree-sitter-json"]
lang-md = ["dep:tree-sitter-md"]
lang-html = ["dep:tree-sitter-html"]
lang-java = ["dep:tree-sitter-java"]
lang-elm = ["dep:tree-sitter-elm"]

View File

@ -130,6 +130,8 @@ pub enum LapceLanguage {
Html,
#[cfg(feature = "lang-java")]
Java,
#[cfg(feature = "lang-elm")]
Elm,
}
// NOTE: Elements in the array must be in the same order as the enum variants of
@ -328,6 +330,16 @@ pub enum LapceLanguage {
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["java"],
},
#[cfg(feature = "lang-elm")]
SyntaxProperties {
id: LapceLanguage::Elm,
language: tree_sitter_elm::language,
highlight: tree_sitter_elm::HIGHLIGHTS_QUERY,
comment: "#",
indent: " ",
code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["elm"],
},
];
impl LapceLanguage {
@ -546,4 +558,9 @@ fn test_html_lang() {
fn test_java_lang() {
assert_language(LapceLanguage::Java, &["java"]);
}
#[test]
#[cfg(feature = "lang-elm")]
fn test_elm_lang() {
assert_language(LapceLanguage::Elm, &["elm"]);
}
}

View File

@ -73,7 +73,8 @@ all-languages = [
"lang-json",
"lang-md",
"lang-html",
"lang-java"
"lang-java",
"lang-elm"
]
lang-rust = ["lapce-core/lang-rust"]
lang-go = ["lapce-core/lang-go"]
@ -90,3 +91,4 @@ lang-json= ["lapce-core/lang-json"]
lang-md = ["lapce-core/lang-md"]
lang-html = ["lapce-core/lang-html"]
lang-java = ["lapce-core/lang-java"]
lang-elm = ["lapce-core/lang-elm"]