From b3050bded1e7a874da265d94dc32c4a98bc98390 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 24 Apr 2020 02:06:12 +0200 Subject: Introduce internal snippet cap --- crates/ra_ide/src/completion/completion_config.rs | 13 +++++++++++++ crates/rust-analyzer/src/config.rs | 1 + 2 files changed, 14 insertions(+) (limited to 'crates') diff --git a/crates/ra_ide/src/completion/completion_config.rs b/crates/ra_ide/src/completion/completion_config.rs index c01a8f608..6cf7ed6e4 100644 --- a/crates/ra_ide/src/completion/completion_config.rs +++ b/crates/ra_ide/src/completion/completion_config.rs @@ -1,8 +1,20 @@ +//! Settings for tweaking completion. +//! +//! The fun thing here is `SnippetCap` -- this type can only be created in this +//! module, and we use to statically check that we only produce snippet +//! completions if we are allowed to. + #[derive(Clone, Debug, PartialEq, Eq)] pub struct CompletionConfig { pub enable_postfix_completions: bool, pub add_call_parenthesis: bool, pub add_call_argument_snippets: bool, + pub snippet_cap: Option, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct SnippetCap { + _private: (), } impl Default for CompletionConfig { @@ -11,6 +23,7 @@ impl Default for CompletionConfig { enable_postfix_completions: true, add_call_parenthesis: true, add_call_argument_snippets: true, + snippet_cap: Some(SnippetCap { _private: () }), } } } diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 642c34574..33d7c95a8 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs @@ -104,6 +104,7 @@ impl Default for Config { enable_postfix_completions: true, add_call_parenthesis: true, add_call_argument_snippets: true, + ..CompletionConfig::default() }, call_info_full: true, } -- cgit v1.2.3