Skip to content

Commit 52bec17

Browse files
committed
Don't send snippets in completion
if client doesn't support them.
1 parent bea5f92 commit 52bec17

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

source/ada/lsp-ada_client_capabilities.adb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,24 @@ package body LSP.Ada_Client_Capabilities is
6363
else False);
6464
end Code_ActionLiteralSupport;
6565

66+
-------------------------------
67+
-- Completion_SnippetSupport --
68+
-------------------------------
69+
70+
function Completion_SnippetSupport
71+
(Self : Client_Capability'Class) return Boolean
72+
is
73+
use LSP.Structures.Unwrap;
74+
75+
Result : constant LSP.Structures.Boolean_Optional :=
76+
snippetSupport
77+
(completionItem
78+
(completion
79+
(Self.Value.capabilities.textDocument)));
80+
begin
81+
return (if Result.Is_Set then Result.Value else False);
82+
end Completion_SnippetSupport;
83+
6684
-----------------------------------------------
6785
-- didChangeWatchedFiles_dynamicRegistration --
6886
-----------------------------------------------

source/ada/lsp-ada_client_capabilities.ads

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ package LSP.Ada_Client_Capabilities is
7575
(Self : Client_Capability'Class) return Boolean;
7676
-- Returns textDocument.documentSymbol.hierarchicalDocumentSymbolSupport
7777

78+
function Completion_SnippetSupport
79+
(Self : Client_Capability'Class) return Boolean;
80+
-- Returns textDocument.completion.completionItem.snippetSupport
81+
7882
function didChangeWatchedFiles_dynamicRegistration
7983
(Self : Client_Capability'Class) return Boolean;
8084
-- Returns capabilities.workspace.didChangeWatchedFiles.dynamicRegistration

source/ada/lsp-ada_handlers.adb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1633,7 +1633,9 @@ package body LSP.Ada_Handlers is
16331633
LSP.Ada_Completions.Attributes.Attributes_Completion_Provider;
16341634

16351635
P5 : aliased LSP.Ada_Completions.Names.Name_Completion_Provider
1636-
(Self.Configuration.Use_Completion_Snippets);
1636+
(Self.Configuration.Use_Completion_Snippets
1637+
and then Self.Client.Completion_SnippetSupport);
1638+
16371639
P6 : aliased LSP.Ada_Handlers.Invisibles.Invisible_Completion_Provider
16381640
(Self'Access, Context);
16391641
P7 : aliased

source/lsp_3.17/lsp-structures-unwrap.ads

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ package LSP.Structures.Unwrap is
4444
return resolveSupport_OfWorkspaceSymbolClientCapabilities_Optional is
4545
(if X.Is_Set then X.Value.resolveSupport else (Is_Set => False));
4646

47+
function snippetSupport
48+
(X : completionItem_OfCompletionClientCapabilities_Optional)
49+
return Boolean_Optional is
50+
(if X.Is_Set then X.Value.snippetSupport else (Is_Set => False));
51+
4752
function properties
4853
(X : resolveSupport_OfWorkspaceSymbolClientCapabilities_Optional)
4954
return LSP.Structures.Virtual_String_Vector is

0 commit comments

Comments
 (0)