diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs index 65c3eb3eca2e..b26e9e9ff9be 100644 --- a/crates/ra_analysis/src/lib.rs +++ b/crates/ra_analysis/src/lib.rs @@ -14,6 +14,7 @@ mod db; mod imp; mod completion; mod symbol_index; +mod syntax_highlighting; pub mod mock_analysis; use std::{fmt, sync::Arc}; @@ -340,8 +341,7 @@ impl Analysis { Ok(ra_editor::runnables(&file)) } pub fn highlight(&self, file_id: FileId) -> Cancelable> { - let file = self.imp.file_syntax(file_id); - Ok(ra_editor::highlight(&file)) + syntax_highlighting::highlight(&*self.imp.db, file_id) } pub fn completions(&self, position: FilePosition) -> Cancelable>> { self.imp.completions(position) diff --git a/crates/ra_analysis/src/syntax_highlighting.rs b/crates/ra_analysis/src/syntax_highlighting.rs new file mode 100644 index 000000000000..65409beb20f9 --- /dev/null +++ b/crates/ra_analysis/src/syntax_highlighting.rs @@ -0,0 +1,12 @@ +use ra_editor::HighlightedRange; +use ra_db::SyntaxDatabase; + +use crate::{ + db::RootDatabase, + FileId, Cancelable, +}; + +pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Cancelable> { + let file = db.source_file(file_id); + Ok(ra_editor::highlight(&file)) +}