only include snippet completions when enable_snippet is set
This commit is contained in:
parent
90b468ac9f
commit
9a7d262e6c
@ -436,14 +436,11 @@ fn populateSnippedCompletions(
|
|||||||
completions: *std.ArrayListUnmanaged(types.CompletionItem),
|
completions: *std.ArrayListUnmanaged(types.CompletionItem),
|
||||||
snippets: []const snipped_data.Snipped,
|
snippets: []const snipped_data.Snipped,
|
||||||
config: Config,
|
config: Config,
|
||||||
start_with: ?[]const u8,
|
|
||||||
) error{OutOfMemory}!void {
|
) error{OutOfMemory}!void {
|
||||||
try completions.ensureUnusedCapacity(allocator, snippets.len);
|
try completions.ensureUnusedCapacity(allocator, snippets.len);
|
||||||
|
|
||||||
for (snippets) |snipped| {
|
for (snippets) |snipped| {
|
||||||
if (start_with) |needle| {
|
if (!config.enable_snippets and snipped.kind == .Snippet) continue;
|
||||||
if (!std.mem.startsWith(u8, snipped.label, needle)) continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
completions.appendAssumeCapacity(.{
|
completions.appendAssumeCapacity(.{
|
||||||
.label = snipped.label,
|
.label = snipped.label,
|
||||||
@ -511,7 +508,7 @@ fn completeGlobal(server: *Server, pos_index: usize, handle: *const DocumentStor
|
|||||||
.orig_handle = handle,
|
.orig_handle = handle,
|
||||||
};
|
};
|
||||||
try server.analyser.iterateSymbolsGlobal(handle, pos_index, declToCompletion, context);
|
try server.analyser.iterateSymbolsGlobal(handle, pos_index, declToCompletion, context);
|
||||||
try populateSnippedCompletions(server.arena.allocator(), &completions, &snipped_data.generic, server.config.*, null);
|
try populateSnippedCompletions(server.arena.allocator(), &completions, &snipped_data.generic, server.config.*);
|
||||||
|
|
||||||
if (server.client_capabilities.label_details_support) {
|
if (server.client_capabilities.label_details_support) {
|
||||||
for (completions.items) |*item| {
|
for (completions.items) |*item| {
|
||||||
@ -1021,7 +1018,7 @@ pub fn completionAtIndex(server: *Server, source_index: usize, handle: *const Do
|
|||||||
const at_line_start = offsets.lineSliceUntilIndex(handle.tree.source, source_index).len == 0;
|
const at_line_start = offsets.lineSliceUntilIndex(handle.tree.source, source_index).len == 0;
|
||||||
if (at_line_start) {
|
if (at_line_start) {
|
||||||
var completions = std.ArrayListUnmanaged(types.CompletionItem){};
|
var completions = std.ArrayListUnmanaged(types.CompletionItem){};
|
||||||
try populateSnippedCompletions(server.arena.allocator(), &completions, &snipped_data.top_level_decl_data, server.config.*, null);
|
try populateSnippedCompletions(server.arena.allocator(), &completions, &snipped_data.top_level_decl_data, server.config.*);
|
||||||
|
|
||||||
return .{ .isIncomplete = false, .items = completions.items };
|
return .{ .isIncomplete = false, .items = completions.items };
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user