From 659b0e73cfd9ef7755d032f90622a08576f1d86d Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Mon, 17 Feb 2020 19:03:03 +0100 Subject: Merge cli and ra_lsp_server --- crates/ra_lsp_server/src/main.rs | 46 +++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 17 deletions(-) (limited to 'crates/ra_lsp_server/src/main.rs') diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index ed2eaabd4..a549e5ff1 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs @@ -1,14 +1,39 @@ //! `ra_lsp_server` binary +mod args; use lsp_server::Connection; -use ra_lsp_server::{from_json, show_message, Result, ServerConfig}; +use ra_lsp_server::{cli, from_json, show_message, Result, ServerConfig}; use ra_prof; +use crate::args::HelpPrinted; + fn main() -> Result<()> { setup_logging()?; - match Args::parse()? { - Args::Version => println!("rust-analyzer {}", env!("REV")), - Args::Run => run_server()?, + let args = match args::Args::parse()? { + Ok(it) => it, + Err(HelpPrinted) => return Ok(()), + }; + match args.command { + args::Command::Parse { no_dump } => cli::parse(no_dump)?, + args::Command::Symbols => cli::symbols()?, + args::Command::Highlight { rainbow } => cli::highlight(rainbow)?, + args::Command::Stats { randomize, memory_usage, only, with_deps, path } => { + cli::analysis_stats( + args.verbosity, + memory_usage, + path.as_ref(), + only.as_ref().map(String::as_ref), + with_deps, + randomize, + )? + } + + args::Command::Bench { path, what } => { + cli::analysis_bench(args.verbosity, path.as_ref(), what)? + } + + args::Command::RunServer => run_server()?, + args::Command::Version => println!("rust-analyzer {}", env!("REV")), } Ok(()) } @@ -20,19 +45,6 @@ fn setup_logging() -> Result<()> { Ok(()) } -enum Args { - Version, - Run, -} - -impl Args { - fn parse() -> Result { - let res = - if std::env::args().any(|it| it == "--version") { Args::Version } else { Args::Run }; - Ok(res) - } -} - fn run_server() -> Result<()> { log::info!("lifecycle: server started"); -- cgit v1.2.3