aboutsummaryrefslogtreecommitdiff
path: root/helix-view/src
diff options
context:
space:
mode:
authorGokul Soumya2022-07-19 02:28:24 +0000
committerGitHub2022-07-19 02:28:24 +0000
commit791bf7e50a19bcf7612788deb7514847089cb976 (patch)
tree0bac607be8b940aed8000b77a2f4dfa2e14882b8 /helix-view/src
parent02f009921007301284cbb0db4bc36bc629088fbb (diff)
Add lsp signature help (#1755)
* Add lsp signature help * Do not move signature help popup on multiple triggers * Highlight current parameter in signature help * Auto close signature help * Position signature help above to not block completion * Update signature help on backspace/insert mode delete * Add lsp.auto-signature-help config option * Add serde default annotation for LspConfig * Show LSP inactive message only if signature help is invoked manually * Do not assume valid signature help response from LSP Malformed LSP responses are common, and these should not crash the editor. * Check signature help capability before sending request * Reuse Open enum for PositionBias in popup * Close signature popup and exit insert mode on escape * Add config to control signature help docs display * Use new Margin api in signature help * Invoke signature help on changing to insert mode
Diffstat (limited to 'helix-view/src')
-rw-r--r--helix-view/src/editor.rs19
1 files changed, 17 insertions, 2 deletions
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs
index babb5c43..0178d399 100644
--- a/helix-view/src/editor.rs
+++ b/helix-view/src/editor.rs
@@ -167,10 +167,25 @@ pub struct Config {
pub color_modes: bool,
}
-#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
-#[serde(rename_all = "kebab-case", deny_unknown_fields)]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
+#[serde(default, rename_all = "kebab-case", deny_unknown_fields)]
pub struct LspConfig {
+ /// Display LSP progress messages below statusline
pub display_messages: bool,
+ /// Enable automatic pop up of signature help (parameter hints)
+ pub auto_signature_help: bool,
+ /// Display docs under signature help popup
+ pub display_signature_help_docs: bool,
+}
+
+impl Default for LspConfig {
+ fn default() -> Self {
+ Self {
+ display_messages: false,
+ auto_signature_help: true,
+ display_signature_help_docs: true,
+ }
+ }
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]