use ArrayList for dotCompletions
This commit is contained in:
parent
3577e719fb
commit
05ad3294f1
@ -20,7 +20,7 @@ const tracy = @import("tracy.zig");
|
||||
const uri_utils = @import("uri.zig");
|
||||
const diff = @import("diff.zig");
|
||||
const ComptimeInterpreter = @import("ComptimeInterpreter.zig");
|
||||
const analyser_completions = @import("analyser/completions.zig");
|
||||
const analyser = @import("analyser/analyser.zig");
|
||||
|
||||
const data = @import("data/data.zig");
|
||||
const snipped_data = @import("data/snippets.zig");
|
||||
@ -596,8 +596,7 @@ fn typeToCompletion(
|
||||
),
|
||||
.primitive, .array_index => {},
|
||||
.@"comptime" => |co| {
|
||||
const items = try analyser_completions.dotCompletions(allocator, &co.interpreter.ip, co.value.ty, co.value.val, co.value.node_idx);
|
||||
try list.appendSlice(allocator, items);
|
||||
try analyser.completions.dotCompletions(allocator, list, &co.interpreter.ip, co.value.ty, co.value.val, co.value.node_idx);
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -4,19 +4,16 @@ const types = @import("../lsp.zig");
|
||||
|
||||
const Ast = std.zig.Ast;
|
||||
|
||||
|
||||
/// TODO use std.ArrayListUnmanaged instead of returning a slice
|
||||
pub fn dotCompletions(
|
||||
arena: std.mem.Allocator,
|
||||
completions: *std.ArrayListUnmanaged(types.CompletionItem),
|
||||
ip: *InternPool,
|
||||
ty: InternPool.Index,
|
||||
val: InternPool.Index,
|
||||
node: ?Ast.Node.Index
|
||||
) error{OutOfMemory}![]types.CompletionItem {
|
||||
) error{OutOfMemory}!void {
|
||||
_ = node;
|
||||
|
||||
var completions = std.ArrayListUnmanaged(types.CompletionItem){};
|
||||
|
||||
const key = ip.indexToKey(ty);
|
||||
const inner_key = switch (key) {
|
||||
.pointer_type => |info| if (info.size == .One) ip.indexToKey(info.elem_type) else key,
|
||||
@ -160,5 +157,4 @@ pub fn dotCompletions(
|
||||
.union_value,
|
||||
=> unreachable,
|
||||
}
|
||||
return try completions.toOwnedSlice(arena);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user