diff options
Diffstat (limited to 'crates/rust-analyzer/src/cli.rs')
| -rw-r--r-- | crates/rust-analyzer/src/cli.rs | 48 |
1 files changed, 7 insertions, 41 deletions
diff --git a/crates/rust-analyzer/src/cli.rs b/crates/rust-analyzer/src/cli.rs index 2f65a1dad07..efd8a2aa9fc 100644 --- a/crates/rust-analyzer/src/cli.rs +++ b/crates/rust-analyzer/src/cli.rs @@ -1,24 +1,22 @@ //! Various batch processing tasks, intended primarily for debugging. +pub mod flags; pub mod load_cargo; +mod parse; +mod symbols; +mod highlight; mod analysis_stats; mod diagnostics; -mod progress_report; mod ssr; +mod progress_report; + use std::io::Read; use anyhow::Result; -use ide::{Analysis, AnalysisHost}; -use syntax::{AstNode, SourceFile}; +use ide::AnalysisHost; use vfs::Vfs; -pub use self::{ - analysis_stats::AnalysisStatsCmd, - diagnostics::diagnostics, - ssr::{apply_ssr_rules, search_for_patterns}, -}; - #[derive(Clone, Copy)] pub enum Verbosity { Spammy, @@ -36,38 +34,6 @@ impl Verbosity { } } -pub fn parse(no_dump: bool) -> Result<()> { - let _p = profile::span("parsing"); - let file = file()?; - if !no_dump { - println!("{:#?}", file.syntax()); - } - std::mem::forget(file); - Ok(()) -} - -pub fn symbols() -> Result<()> { - let text = read_stdin()?; - let (analysis, file_id) = Analysis::from_single_file(text); - let structure = analysis.file_structure(file_id).unwrap(); - for s in structure { - println!("{:?}", s); - } - Ok(()) -} - -pub fn highlight(rainbow: bool) -> Result<()> { - let (analysis, file_id) = Analysis::from_single_file(read_stdin()?); - let html = analysis.highlight_as_html(file_id, rainbow).unwrap(); - println!("{}", html); - Ok(()) -} - -fn file() -> Result<SourceFile> { - let text = read_stdin()?; - Ok(SourceFile::parse(&text).tree()) -} - fn read_stdin() -> Result<String> { let mut buff = String::new(); std::io::stdin().read_to_string(&mut buff)?; |
