diff --git a/Cargo.lock b/Cargo.lock index e10b38d2..6c7655e2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1871,6 +1871,7 @@ dependencies = [ "tree-sitter-json", "tree-sitter-php", "tree-sitter-python", + "tree-sitter-ruby", "tree-sitter-rust", "tree-sitter-toml", "tree-sitter-typescript", @@ -4152,6 +4153,15 @@ dependencies = [ "tree-sitter", ] +[[package]] +name = "tree-sitter-ruby" +version = "0.19.0" +source = "git+https://github.com/Liberatys/tree-sitter-ruby.git?branch=chore/allow-range-of-tree-sitter#26086eeb072266abf51273af631a2cb62d0fd1e8" +dependencies = [ + "cc", + "tree-sitter", +] + [[package]] name = "tree-sitter-rust" version = "0.20.0" diff --git a/lapce-core/Cargo.toml b/lapce-core/Cargo.toml index 232d7eb2..589eac29 100644 --- a/lapce-core/Cargo.toml +++ b/lapce-core/Cargo.toml @@ -19,6 +19,7 @@ tree-sitter-python = "0.19.1" tree-sitter-toml = "0.20.0" tree-sitter-elixir = { git = "https://github.com/elixir-lang/tree-sitter-elixir.git", version = "0.19.0" } tree-sitter-php = { git = "https://github.com/tree-sitter/tree-sitter-php.git", version = "0.19.1" } +tree-sitter-ruby = { git = "https://github.com/Liberatys/tree-sitter-ruby.git", branch = "chore/allow-range-of-tree-sitter" } tree-sitter-c = "0.20.1" tree-sitter-cpp = "0.20.0" tree-sitter-json = "0.19.0" diff --git a/lapce-core/src/language.rs b/lapce-core/src/language.rs index 69895b11..d2346b48 100644 --- a/lapce-core/src/language.rs +++ b/lapce-core/src/language.rs @@ -48,6 +48,7 @@ pub enum LapceLanguage { C, Cpp, Json, + Ruby, } impl LapceLanguage { @@ -69,6 +70,7 @@ pub fn from_path(path: &Path) -> Option { LapceLanguage::Cpp } "json" => LapceLanguage::Json, + "rb" => LapceLanguage::Ruby, _ => return None, }) } @@ -88,6 +90,7 @@ pub fn comment_token(&self) -> &str { LapceLanguage::C => "//", LapceLanguage::Cpp => "//", LapceLanguage::Json => "", + LapceLanguage::Ruby => "#", } } @@ -106,6 +109,7 @@ pub fn indent_unit(&self) -> &str { LapceLanguage::C => " ", LapceLanguage::Cpp => " ", LapceLanguage::Json => " ", + LapceLanguage::Ruby => " ", } } @@ -126,6 +130,7 @@ fn tree_sitter_language(&self) -> tree_sitter::Language { LapceLanguage::C => tree_sitter_c::language(), LapceLanguage::Cpp => tree_sitter_cpp::language(), LapceLanguage::Json => tree_sitter_json::language(), + LapceLanguage::Ruby => tree_sitter_ruby::language(), } } @@ -152,6 +157,7 @@ pub(crate) fn new_highlight_config(&self) -> HighlightConfiguration { LapceLanguage::C => tree_sitter_c::HIGHLIGHT_QUERY, LapceLanguage::Cpp => tree_sitter_cpp::HIGHLIGHT_QUERY, LapceLanguage::Json => tree_sitter_json::HIGHLIGHT_QUERY, + LapceLanguage::Ruby => tree_sitter_ruby::HIGHLIGHT_QUERY, }; HighlightConfiguration::new(language, query, "", "").unwrap()