From 100f2183e07cd3347fe7e988588187ea8594a2f4 Mon Sep 17 00:00:00 2001 From: cornishon Date: Sun, 2 Feb 2025 11:28:24 +0100 Subject: Add `cap` magic completion for dynamic arrays and maps. Also add `len` to map, since it was missing. --- src/server/completion.odin | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'src/server') diff --git a/src/server/completion.odin b/src/server/completion.odin index 05a8fe6..1f65af9 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -1743,6 +1743,36 @@ append_magic_map_completion :: proc( append(items, item) } + + //len + { + text := fmt.tprintf("len(%v)", symbol_str) + + item := CompletionItem { + label = "len", + kind = .Function, + detail = "len", + textEdit = TextEdit{newText = text, range = {start = range.end, end = range.end}}, + additionalTextEdits = additionalTextEdits, + } + + append(items, item) + } + + //cap + { + text := fmt.tprintf("cap(%v)", symbol_str) + + item := CompletionItem { + label = "cap", + kind = .Function, + detail = "cap", + textEdit = TextEdit{newText = text, range = {start = range.end, end = range.end}}, + additionalTextEdits = additionalTextEdits, + } + + append(items, item) + } } get_expression_string_from_position_context :: proc(position_context: ^DocumentPositionContext) -> string { src := position_context.file.src @@ -1820,6 +1850,21 @@ append_magic_dynamic_array_completion :: proc( return } + //cap + { + text := fmt.tprintf("cap(%v)", symbol_str) + + item := CompletionItem { + label = "cap", + kind = .Function, + detail = "cap", + textEdit = TextEdit{newText = text, range = {start = range.end, end = range.end}}, + additionalTextEdits = additionalTextEdits, + } + + append(items, item) + } + // allocator { item := CompletionItem { -- cgit v1.2.3