From 48c58309cca718701e902b05221a8e8ec81310db Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 2 Apr 2020 12:47:58 +0200 Subject: Lean onto default implementation of configs --- crates/rust-analyzer/src/config.rs | 6 +++--- crates/rust-analyzer/src/main_loop.rs | 17 +++++++++++------ crates/rust-analyzer/src/req.rs | 4 ++-- 3 files changed, 16 insertions(+), 11 deletions(-) (limited to 'crates') diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index b19421c16..15aab7f09 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs @@ -38,12 +38,12 @@ pub struct Config { #[derive(Debug, Clone)] pub struct FilesConfig { - watcher: FilesWatcher, - exclude: Vec, + pub watcher: FilesWatcher, + pub exclude: Vec, } #[derive(Debug, Clone)] -enum FilesWatcher { +pub enum FilesWatcher { Client, Notify, } diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs index 47fef59d4..36ea85cc6 100644 --- a/crates/rust-analyzer/src/main_loop.rs +++ b/crates/rust-analyzer/src/main_loop.rs @@ -30,7 +30,7 @@ use serde::{de::DeserializeOwned, Serialize}; use threadpool::ThreadPool; use crate::{ - config::Config, + config::{Config, FilesWatcher}, diagnostics::DiagnosticTask, main_loop::{ pending_requests::{PendingRequest, PendingRequests}, @@ -40,7 +40,6 @@ use crate::{ world::{WorldSnapshot, WorldState}, Result, }; -use req::ConfigurationParams; #[derive(Debug)] pub struct LspError { @@ -122,12 +121,13 @@ pub fn main_loop(ws_roots: Vec, config: Config, connection: Connection) }; let globs = config - .exclude_globs + .files + .exclude .iter() .map(|glob| crate::vfs_glob::Glob::new(glob)) .collect::, _>>()?; - if config.use_client_watching { + if let FilesWatcher::Client = config.files.watcher { let registration_options = req::DidChangeWatchedFilesRegistrationOptions { watchers: workspaces .iter() @@ -153,7 +153,7 @@ pub fn main_loop(ws_roots: Vec, config: Config, connection: Connection) workspaces, config.lru_capacity, &globs, - Watch(!config.use_client_watching), + Watch(matches!(config.files.watcher, FilesWatcher::Notify)), config, ) }; @@ -607,7 +607,12 @@ fn on_notification( let request_id = loop_state.next_request_id(); let request = request_new::( request_id.clone(), - ConfigurationParams::default(), + req::ConfigurationParams { + items: vec![req::ConfigurationItem { + scope_uri: None, + section: Some("rust-analyzer".to_string()), + }], + }, ); msg_sender.send(request.into())?; loop_state.configuration_request_id = Some(request_id); diff --git a/crates/rust-analyzer/src/req.rs b/crates/rust-analyzer/src/req.rs index ce799a683..b8b627e28 100644 --- a/crates/rust-analyzer/src/req.rs +++ b/crates/rust-analyzer/src/req.rs @@ -6,8 +6,8 @@ use serde::{Deserialize, Serialize}; pub use lsp_types::{ notification::*, request::*, ApplyWorkspaceEditParams, CodeActionParams, CodeLens, - CodeLensParams, CompletionParams, CompletionResponse, ConfigurationParams, DiagnosticTag, - DidChangeConfigurationParams, DidChangeWatchedFilesParams, + CodeLensParams, CompletionParams, CompletionResponse, ConfigurationItem, ConfigurationParams, + DiagnosticTag, DidChangeConfigurationParams, DidChangeWatchedFilesParams, DidChangeWatchedFilesRegistrationOptions, DocumentOnTypeFormattingParams, DocumentSymbolParams, DocumentSymbolResponse, FileSystemWatcher, Hover, InitializeResult, MessageType, PartialResultParams, ProgressParams, ProgressParamsValue, ProgressToken, -- cgit v1.2.3