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-c",
"tree-sitter-cpp", "tree-sitter-cpp",
"tree-sitter-elixir", "tree-sitter-elixir",
"tree-sitter-elm",
"tree-sitter-go", "tree-sitter-go",
"tree-sitter-highlight", "tree-sitter-highlight",
"tree-sitter-html", "tree-sitter-html",
@ -4567,6 +4568,16 @@ dependencies = [
"tree-sitter", "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]] [[package]]
name = "tree-sitter-go" name = "tree-sitter-go"
version = "0.19.1" 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-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-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-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"] } lsp-types = { version = "0.89.2", features = ["proposed"] }
xi-rope = { git = "https://github.com/lapce/xi-editor", features = ["serde"] } xi-rope = { git = "https://github.com/lapce/xi-editor", features = ["serde"] }
lapce-rpc = { path = "../lapce-rpc" } lapce-rpc = { path = "../lapce-rpc" }
@ -54,3 +55,4 @@ lang-json = ["dep:tree-sitter-json"]
lang-md = ["dep:tree-sitter-md"] lang-md = ["dep:tree-sitter-md"]
lang-html = ["dep:tree-sitter-html"] lang-html = ["dep:tree-sitter-html"]
lang-java = ["dep:tree-sitter-java"] lang-java = ["dep:tree-sitter-java"]
lang-elm = ["dep:tree-sitter-elm"]

View File

@ -130,6 +130,8 @@ pub enum LapceLanguage {
Html, Html,
#[cfg(feature = "lang-java")] #[cfg(feature = "lang-java")]
Java, Java,
#[cfg(feature = "lang-elm")]
Elm,
} }
// NOTE: Elements in the array must be in the same order as the enum variants of // 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), code_lens: (DEFAULT_CODE_LENS_LIST, DEFAULT_CODE_LENS_IGNORE_LIST),
extensions: &["java"], 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 { impl LapceLanguage {
@ -546,4 +558,9 @@ fn test_html_lang() {
fn test_java_lang() { fn test_java_lang() {
assert_language(LapceLanguage::Java, &["java"]); 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-json",
"lang-md", "lang-md",
"lang-html", "lang-html",
"lang-java" "lang-java",
"lang-elm"
] ]
lang-rust = ["lapce-core/lang-rust"] lang-rust = ["lapce-core/lang-rust"]
lang-go = ["lapce-core/lang-go"] lang-go = ["lapce-core/lang-go"]
@ -90,3 +91,4 @@ lang-json= ["lapce-core/lang-json"]
lang-md = ["lapce-core/lang-md"] lang-md = ["lapce-core/lang-md"]
lang-html = ["lapce-core/lang-html"] lang-html = ["lapce-core/lang-html"]
lang-java = ["lapce-core/lang-java"] lang-java = ["lapce-core/lang-java"]
lang-elm = ["lapce-core/lang-elm"]