diff --git a/Cargo.lock b/Cargo.lock index e6ecd875..59363134 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1868,6 +1868,7 @@ dependencies = [ "tree-sitter-go", "tree-sitter-highlight", "tree-sitter-html", + "tree-sitter-java", "tree-sitter-javascript", "tree-sitter-json", "tree-sitter-php", @@ -4124,6 +4125,15 @@ dependencies = [ "tree-sitter", ] +[[package]] +name = "tree-sitter-java" +version = "0.20.0" +source = "git+https://github.com/tree-sitter/tree-sitter-java.git#e7cb801ef57f74db5c4ebe14df74de852bb451b5" +dependencies = [ + "cc", + "tree-sitter", +] + [[package]] name = "tree-sitter-javascript" version = "0.20.0" diff --git a/lapce-core/Cargo.toml b/lapce-core/Cargo.toml index fbbc1cf5..da0028f4 100644 --- a/lapce-core/Cargo.toml +++ b/lapce-core/Cargo.toml @@ -23,5 +23,6 @@ tree-sitter-c = "0.20.1" tree-sitter-cpp = "0.20.0" tree-sitter-json = "0.19.0" tree-sitter-html = "0.19.0" +tree-sitter-java = { git = "https://github.com/tree-sitter/tree-sitter-java.git", version = "0.20.0" } xi-rope = { git = "https://github.com/lapce/xi-editor", features = ["serde"] } lapce-rpc = { path = "../lapce-rpc" } diff --git a/lapce-core/src/language.rs b/lapce-core/src/language.rs index e5566fc3..aafce335 100644 --- a/lapce-core/src/language.rs +++ b/lapce-core/src/language.rs @@ -49,6 +49,7 @@ pub enum LapceLanguage { Cpp, Json, Html, + Java, } impl LapceLanguage { @@ -71,6 +72,7 @@ pub fn from_path(path: &Path) -> Option { } "json" => LapceLanguage::Json, "html" | "htm" => LapceLanguage::Html, + "java" => LapceLanguage::Java, _ => return None, }) } @@ -91,6 +93,7 @@ pub fn comment_token(&self) -> &str { LapceLanguage::Cpp => "//", LapceLanguage::Json => "", LapceLanguage::Html => "", + LapceLanguage::Java => "//", } } @@ -110,6 +113,7 @@ pub fn indent_unit(&self) -> &str { LapceLanguage::Cpp => " ", LapceLanguage::Json => " ", LapceLanguage::Html => " ", + LapceLanguage::Java => " ", } } @@ -131,6 +135,7 @@ fn tree_sitter_language(&self) -> tree_sitter::Language { LapceLanguage::Cpp => tree_sitter_cpp::language(), LapceLanguage::Json => tree_sitter_json::language(), LapceLanguage::Html => tree_sitter_html::language(), + LapceLanguage::Java => tree_sitter_java::language(), } } @@ -158,6 +163,7 @@ pub(crate) fn new_highlight_config(&self) -> HighlightConfiguration { LapceLanguage::Cpp => tree_sitter_cpp::HIGHLIGHT_QUERY, LapceLanguage::Json => tree_sitter_json::HIGHLIGHT_QUERY, LapceLanguage::Html => tree_sitter_html::HIGHLIGHT_QUERY, + LapceLanguage::Java => tree_sitter_java::HIGHLIGHT_QUERY, }; HighlightConfiguration::new(language, query, "", "").unwrap()