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