@@ -9,7 +9,7 @@ use tui::text::{Span, Spans};
9use super::{align_view, push_jump, Align, Context, Editor, Open};
9use super::{align_view, push_jump, Align, Context, Editor, Open};
11use helix_core::{path, Selection};
11use helix_core::{path, Selection};
12−use helix_view::{apply_transaction, editor::Action, theme::Style};
12+use helix_view::{apply_transaction, document::Mode, editor::Action, theme::Style};
14use crate::{
14use crate::{
15 compositor::{self, Compositor},
15 compositor::{self, Compositor},
@@ -957,6 +957,14 @@ pub fn signature_help_impl(cx: &mut Context, invoked: SignatureHelpInvoked) {
960+ // If the signature help invocation is automatic, don't show it outside of Insert Mode:
961+ // it very probably means the server was a little slow to respond and the user has
962+ // already moved on to something else, making a signature help popup will just be an
963+ // annoyance, see https://github.com/helix-editor/helix/issues/3112
964+ if !was_manually_invoked && editor.mode != Mode::Insert {
960 let response = match response {
968 let response = match response {
961 // According to the spec the response should be None if there
969 // According to the spec the response should be None if there
962 // are no signatures, but some servers don't follow this.
970 // are no signatures, but some servers don't follow this.