Skip to content
This repository has been archived by the owner on Oct 18, 2024. It is now read-only.

LSP completion error: Content duplication #431

Closed
erasin opened this issue Mar 16, 2023 · 1 comment
Closed

LSP completion error: Content duplication #431

erasin opened this issue Mar 16, 2023 · 1 comment
Labels
bug Something isn't working

Comments

@erasin
Copy link

erasin commented Mar 16, 2023

System Information

V doctor

OS: macos, macOS, 13.2, 22D49
Processor: 8 cpus, 64bit, little endian, Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
CC version: Apple clang version 14.0.0 (clang-1400.0.29.102)

getwd: /Users/erasin/Development/vlang/vls
vmodules: /Users/erasin/.vmodules
vroot: /Users/erasin/Development/vlang/vlang
vexe: /Users/erasin/Development/vlang/vlang/v
vexe mtime: 2023-03-06 15:52:14
is vroot writable: true
is vmodules writable: true
V full version: V 0.3.3 d7a418f

Git version: git version 2.37.0 (Apple Git-136)
Git vroot status: Error: fatal: not a git repository (or any of the parent directories): .git
.git/config present: false
thirdparty/tcc status: thirdparty-macos-amd64 46662e20

editor

alacritty + tmux + helix fb56a4b

helix-editor/helix#6279 Improve tree-sitter queries for vlang.

> hx --version
helix 22.12 (fb56a4b)

> hx 
Configured language server: v
Binary for language server: /Users/erasin/.local/bin/v
Configured debug adapter: None
Highlight queries: ✓
Textobject queries: ✓
Indent queries: ✓

VLS info

> v ls --version
V 0.3.3 d7a418f

Problem Description

Helix editor send textDocument/completion,
The content returned by the v ls is all same.

Steps to Reproduce

example file analyzer/ast.v of vls project.

WX20230316-105139
WX20230316-105153

2023-03-16T10:51:30.477 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/completion","params":{"position":{"character":1,"line":3},"textDocument":{"uri":"file:///Users/erasin/Development/vlang/vls/analyzer/ast.v"}},"id":7}
2023-03-16T10:51:30.480 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":7,"result":[{"label":"C","kind":9,"detail":"C symbol definitions","insertText":"C.","insertTextFormat":1},{"label":"node_range","kind":6,"detail":"node_range C.TSRange","insertText":"node_range","insertTextFormat":1},{"label":"start_line","kind":6,"detail":"start_line u32","insertText":"start_line","insertTextFormat":1},{"label":"end_line","kind":6,"detail":"end_line u32","insertText":"end_line","insertTextFormat":1},{"label":"SemanticAnalyzerError","kind":22,"detail":"struct SemanticAnalyzerError","insertText":"SemanticAnalyzerError{code:$1, typ:$2, content:$3}","insertTextFormat":2},{"label":"error_is","kind":3,"detail":"fn error_is(err IError, err_code string) bool","insertText":"error_is($0, $1)","insertTextFormat":2},{"label":"AnalyzerContext","kind":22,"detail":"struct AnalyzerContext","insertText":"AnalyzerContext{store:$1, file_path:$2, file_version:$3, file_name:$4, file_dir:$5, text:$6}","insertTextFormat":2},{"label":"Symbol","kind":22,"detail":"struct Symbol","insertText":"Symbol{name:$1, kind:$2, access:$3, range:$4, parent_sym:$5, return_sym:$6, language:$7, is_top_level:$8, is_const:$9, generic_placeholder_len:$10, interface_children_len:$11, children_syms:$12, file_path:$13, file_version:$14, scope:$15, docstrings:$16}","insertTextFormat":2},{"label":"SymbolFormatter","kind":22,"detail":"pub struct SymbolFormatter","insertText":"SymbolFormatter{context:$1, replacers:$2}","insertTextFormat":2},{"label":"SemanticAnalyzer","kind":22,"detail":"pub struct SemanticAnalyzer","insertText":"SemanticAnalyzer{context:$1, parent_sym:$2, formatter:$3, is_import:$4}","insertTextFormat":2},{"label":"SemanticAnalyzerContext","kind":22,"detail":"struct SemanticAnalyzerContext","insertText":"SemanticAnalyzerContext{params:$1}","insertTextFormat":2},{"label":"Report","kind":22,"detail":"pub struct Report","insertText":"Report{kind:$1, code:$2, message:$3, file_path:$4, source:$5, range:$6, data:$7}","insertTextFormat":2},{"label":"max_int_value","kind":6,"detail":"const max_int_value string","insertText":"max_int_value","insertTextFormat":1},{"label":"parent_by_depth","kind":3,"detail":"fn parent_by_depth(node Node, depth int) !Node","insertText":"parent_by_depth($0, $1)","insertTextFormat":2},{"label":"multiplicative_operators","kind":6,"detail":"const multiplicative_operators []string","insertText":"multiplicative_operators","insertTextFormat":1},{"label":"additive_operators","kind":6,"detail":"const additive_operators []string","insertText":"additive_operators","insertTextFormat":1},{"label":"comparative_operators","kind":6,"detail":"const comparative_operators []string","insertText":"comparative_operators","insertTextFormat":1},{"label":"and_operators","kind":6,"detail":"const and_operators []string","insertText":"and_operators","insertTextFormat":1},{"label":"or_operators","kind":6,"detail":"const or_operators []string","insertText":"or_operators","insertTextFormat":1},{"label":"SemanticExpressionAnalyzeConfig","kind":22,"detail":"struct SemanticExpressionAnalyzeConfig","insertText":"SemanticExpressionAnalyzeConfig{as_value:$1}","insertTextFormat":2},{"label":"SymbolKind","kind":13,"detail":"pub enum SymbolKind","insertText":"SymbolKind","insertTextFormat":1},{"label":"TreeCursor","kind":22,"detail":"struct TreeCursor","insertText":"TreeCursor{start_line_nr:$1, cur_child_idx:$2, named_only:$3, child_count:$4, cursor:$5}","insertTextFormat":2},{"label":"Store","kind":22,"detail":"pub struct Store","insertText":"Store{anon_fn_counter:$1, reporter:$2, cur_version:$3, imports:$4, auto_imports:$5, dependency_tree:$6, symbols:$7, opened_scopes:$8, default_import_paths:$9, base_symbol_locations:$10, binded_symbol_locations:$11}","insertTextFormat":2},{"label":"NewTreeCursorConfig","kind":22,"detail":"struct NewTreeCursorConfig","insertText":"NewTreeCursorConfig{start_line_nr:$1}","insertTextFormat":2},{"label":"AnalyzerError","kind":22,"detail":"pub struct AnalyzerError","insertText":"AnalyzerError{, msg:$1, file_path:$2, range:$3}","insertTextFormat":2},{"label":"report_error","kind":3,"detail":"fn report_error(msg string, range C.TSRange) IError","insertText":"report_error($0, $1)","insertTextFormat":2},{"label":"Reporter","kind":8,"detail":"Reporter","insertText":"Reporter","insertTextFormat":1},{"label":"ScopeTree","kind":22,"detail":"struct ScopeTree","insertText":"ScopeTree{parent:$1, start_byte:$2, end_byte:$3, symbols:$4, children:$5}","insertTextFormat":2},{"label":"BaseSymbolLocation","kind":22,"detail":"pub struct BaseSymbolLocation","insertText":"BaseSymbolLocation{module_name:$1, symbol_name:$2, for_kind:$3}","insertTextFormat":2},{"label":"BindedSymbolLocation","kind":22,"detail":"pub struct BindedSymbolLocation","insertText":"BindedSymbolLocation{for_sym_name:$1, language:$2, module_path:$3}","insertTextFormat":2},{"label":"AnalyzerContextParams","kind":22,"detail":"struct AnalyzerContextParams","insertText":"AnalyzerContextParams{file_path:$1, file_version:$2, store:$3, text:$4}","insertTextFormat":2},{"label":"anon_fn_prefix","kind":6,"detail":"const anon_fn_prefix string","insertText":"anon_fn_prefix","insertTextFormat":1},{"label":"compare_params_and_ret_type","kind":3,"detail":"pub fn compare_params_and_ret_type(params []&Symbol, ret_type &Symbol, fn_to_compare &Symbol, include_param_name bool) bool","insertText":"compare_params_and_ret_type($0, $1, $2, $3)","insertTextFormat":2},{"label":"container_symbol_kinds","kind":6,"detail":"pub const container_symbol_kinds []SymbolKind","insertText":"container_symbol_kinds","insertTextFormat":1},{"label":"symbol_name_from_node","kind":3,"detail":"pub fn symbol_name_from_node(node Node, src_text SourceText) (SymbolKind, string, string)","insertText":"symbol_name_from_node($0, $1)","insertTextFormat":2},{"label":"Import","kind":22,"detail":"pub struct Import","insertText":"Import{resolved:$1, imported:$2, absolute_module_name:$3, module_name:$4, path:$5, ranges:$6, aliases:$7, symbols:$8}","insertTextFormat":2},{"label":"mut_struct_keyword","kind":6,"detail":"const mut_struct_keyword string","insertText":"mut_struct_keyword","insertTextFormat":1},{"label":"pub_struct_keyword","kind":6,"detail":"const pub_struct_keyword string","insertText":"pub_struct_keyword","insertTextFormat":1},{"label":"pub_mut_struct_keyword","kind":6,"detail":"const pub_mut_struct_keyword string","insertText":"pub_mut_struct_keyword","insertTextFormat":1},{"label":"global_struct_keyword","kind":6,"detail":"const global_struct_keyword string","insertText":"global_struct_keyword","insertTextFormat":1},{"label":"SymbolAnalyzer","kind":22,"detail":"pub struct SymbolAnalyzer","insertText":"SymbolAnalyzer{context:$1, module_name:$2, is_import:$3, is_script:$4, is_test:$5, first_var_decl_pos:$6}","insertTextFormat":2},{"label":"SymbolAccess","kind":13,"detail":"pub enum SymbolAccess","insertText":"SymbolAccess","insertTextFormat":1},{"label":"extract_parameter_list","kind":3,"detail":"fn extract_parameter_list(mut ctx AnalyzerContext, node Node) []&Symbol","insertText":"extract_parameter_list($0, $1)","insertTextFormat":2},{"label":"new_symbol_analyzer","kind":3,"detail":"pub fn new_symbol_analyzer(context AnalyzerContext, is_import bool) SymbolAnalyzer","insertText":"new_symbol_analyzer($0, $1)","insertTextFormat":2},{"label":"SymbolLanguage","kind":13,"detail":"pub enum SymbolLanguage","insertText":"SymbolLanguage","insertTextFormat":1},{"label":"void_sym","kind":6,"detail":"pub const void_sym &Symbol","insertText":"void_sym","insertTextFormat":1},{"label":"void_sym_arr","kind":6,"detail":"pub const void_sym_arr []&Symbol","insertText":"void_sym_arr","insertTextFormat":1},{"label":"kinds_in_multi_return_to_be_excluded","kind":6,"detail":"const kinds_in_multi_return_to_be_excluded []SymbolKind","insertText":"kinds_in_multi_return_to_be_excluded","insertTextFormat":1},{"label":"type_defining_sym_kinds","kind":6,"detail":"const type_defining_sym_kinds []SymbolKind","insertText":"type_defining_sym_kinds","insertTextFormat":1},{"label":"SymbolGenStrConfig","kind":22,"detail":"struct SymbolGenStrConfig","insertText":"SymbolGenStrConfig{module_prefix:$1, with_kind:$2, with_access:$3, with_contents:$4}","insertTextFormat":2},{"label":"child_cfg","kind":6,"detail":"const child_cfg SymbolGenStrConfig","insertText":"child_cfg","insertTextFormat":1},{"label":"sym_kinds_allowed_to_print_parent","kind":6,"detail":"const sym_kinds_allowed_to_print_parent []SymbolKind","insertText":"sym_kinds_allowed_to_print_parent","insertTextFormat":1},{"label":"sort_syms_by_name","kind":3,"detail":"fn sort_syms_by_name(a &&Symbol, b &&Symbol) int","insertText":"sort_syms_by_name($0, $1)","insertTextFormat":2},{"label":"sort_syms_by_access_and_name","kind":3,"detail":"fn sort_syms_by_access_and_name(a &&Symbol, b &&Symbol) int","insertText":"sort_syms_by_access_and_name($0, $1)","insertTextFormat":2},{"label":"is_interface_satisfied","kind":3,"detail":"pub fn is_interface_satisfied(sym &Symbol, interface_sym &Symbol) bool","insertText":"is_interface_satisfied($0, $1)","insertTextFormat":2},{"label":"numeric_types","kind":6,"detail":"const numeric_types []string","insertText":"numeric_types","insertTextFormat":1},{"label":"numeric_types_with_any_type","kind":6,"detail":"const numeric_types_with_any_type []string","insertText":"numeric_types_with_any_type","insertTextFormat":1},{"label":"Importer","kind":22,"detail":"pub struct Importer","insertText":"Importer{context:$1}","insertTextFormat":2},{"label":"setup_builtin","kind":3,"detail":"pub fn setup_builtin(mut store Store, builtin_path string)","insertText":"setup_builtin($0, $1)","insertTextFormat":2},{"label":"register_none","kind":3,"detail":"fn register_none(mut ss Store, builtin_import &Import)","insertText":"register_none($0, $1)","insertTextFormat":2},{"label":"register_builtin_symbols","kind":3,"detail":"fn register_builtin_symbols(mut ss Store, builtin_import &Import)","insertText":"register_builtin_symbols($0, $1)","insertTextFormat":2},{"label":"v_ext","kind":6,"detail":"const v_ext string","insertText":"v_ext","insertTextFormat":1},{"label":"user_os","kind":6,"detail":"const user_os string","insertText":"user_os","insertTextFormat":1},{"label":"c_file_suffixes","kind":6,"detail":"const c_file_suffixes []string","insertText":"c_file_suffixes","insertTextFormat":1},{"label":"os_file_specific_suffix_indices","kind":6,"detail":"const os_file_specific_suffix_indices","insertText":"os_file_specific_suffix_indices","insertTextFormat":1},{"label":"should_analyze_file_c","kind":3,"detail":"fn should_analyze_file_c(file_name string) bool","insertText":"should_analyze_file_c($0)","insertTextFormat":2},{"label":"should_analyze_file","kind":3,"detail":"pub fn should_analyze_file(file_name string) bool","insertText":"should_analyze_file($0)","insertTextFormat":2},{"label":"ImportPathIterator","kind":22,"detail":"struct ImportPathIterator","insertText":"ImportPathIterator{start_path:$1, lookup_paths:$2, fallback_lookup_paths:$3, idx:$4, in_start:$5, in_fallback:$6}","insertTextFormat":2},{"label":"SymbolFormatterConfig","kind":22,"detail":"struct SymbolFormatterConfig","insertText":"SymbolFormatterConfig{with_kind:$1, with_access:$2, with_contents:$3, docstring_line_len_limit:$4, field_indent:$5}","insertTextFormat":2},{"label":"params_format_cfg","kind":6,"detail":"pub const params_format_cfg SymbolFormatterConfig","insertText":"params_format_cfg","insertTextFormat":1},{"label":"types_format_cfg","kind":6,"detail":"const types_format_cfg SymbolFormatterConfig","insertText":"types_format_cfg","insertTextFormat":1},{"label":"child_types_format_cfg","kind":6,"detail":"const child_types_format_cfg SymbolFormatterConfig","insertText":"child_types_format_cfg","insertTextFormat":1},{"label":"check_is_header_line","kind":3,"detail":"fn check_is_header_line(line string) bool","insertText":"check_is_header_line($0)","insertTextFormat":2},{"label":"check_is_horizontal_rule","kind":3,"detail":"fn check_is_horizontal_rule(line string) bool","insertText":"check_is_horizontal_rule($0)","insertTextFormat":2},{"label":"write_line_with_wrapping","kind":3,"detail":"fn write_line_with_wrapping(mut builder Builder, line string, line_limit int, init_offset int) int","insertText":"write_line_with_wrapping($0, $1, $2, $3)","insertTextFormat":2},{"label":"new_context","kind":3,"detail":"pub fn new_context(params AnalyzerContextParams) AnalyzerContext","insertText":"new_context($0)","insertTextFormat":2},{"label":"ImportCheckResult","kind":13,"detail":"enum ImportCheckResult","insertText":"ImportCheckResult","insertTextFormat":1},{"label":"import_modules_from_tree","kind":3,"detail":"pub fn import_modules_from_tree(context AnalyzerContext, tree &Tree, lookup_paths ...string)","insertText":"import_modules_from_tree($0, $1, $2)","insertTextFormat":2},{"label":"new_tree_cursor","kind":3,"detail":"pub fn new_tree_cursor(root_node Node, cfg NewTreeCursorConfig) TreeCursor","insertText":"new_tree_cursor($0, $1)","insertTextFormat":2},{"label":"ReportData","kind":8,"detail":"ReportData","insertText":"ReportData","insertTextFormat":1},{"label":"ReportKind","kind":13,"detail":"pub enum ReportKind","insertText":"ReportKind","insertTextFormat":1},{"label":"ReporterPreferences","kind":22,"detail":"pub struct ReporterPreferences","insertText":"ReporterPreferences{limit:$1, warns_are_errors:$2}","insertTextFormat":2},{"label":"Collector","kind":22,"detail":"pub struct Collector","insertText":"Collector{prefs:$1, errors:$2, warnings:$3, notices:$4}","insertTextFormat":2},{"label":"within_range","kind":3,"detail":"fn within_range(node_range C.TSRange, start_line u32, end_line u32) bool","insertText":"within_range($0, $1, $2)","insertTextFormat":2},{"label":"string","kind":22,"detail":"pub struct string","insertText":"string","insertTextFormat":1},{"label":"array","kind":22,"detail":"pub struct array","insertText":"array","insertTextFormat":1},{"label":"map","kind":22,"detail":"pub struct map","insertText":"map","insertTextFormat":1},{"label":"IError","kind":8,"detail":"IError","insertText":"IError","insertTextFormat":1},{"label":"gc_check_leaks","kind":3,"detail":"pub fn gc_check_leaks()","insertText":"gc_check_leaks","insertTextFormat":1},{"label":"Error","kind":22,"detail":"pub struct Error","insertText":"Error","insertTextFormat":1},{"label":"error","kind":3,"detail":"pub fn error(message string) IError","insertText":"error","insertTextFormat":1},{"label":"error_with_code","kind":3,"detail":"pub fn error_with_code(message string, code int) IError","insertText":"error_with_code","insertTextFormat":1},{"label":"str","kind":3,"detail":"pub fn str() string","insertText":"str","insertTextFormat":1},{"label":"ChanState","kind":13,"detail":"pub enum ChanState","insertText":"ChanState","insertTextFormat":1},{"label":"ChanState.success","kind":20,"detail":"pub ChanState.success ChanState","insertText":"ChanState.success","insertTextFormat":1},{"label":"ChanState.not_ready","kind":20,"detail":"pub ChanState.not_ready ChanState","insertText":"ChanState.not_ready","insertTextFormat":1},{"label":"ChanState.closed","kind":20,"detail":"pub ChanState.closed ChanState","insertText":"ChanState.closed","insertTextFormat":1},{"label":"f32_abs","kind":3,"detail":"pub fn f32_abs(a f32) f32","insertText":"f32_abs","insertTextFormat":1},{"label":"f32_max","kind":3,"detail":"pub fn f32_max(a f32, b f32) f32","insertText":"f32_max","insertTextFormat":1},{"label":"f32_min","kind":3,"detail":"pub fn f32_min(a f32, b f32) f32","insertText":"f32_min","insertTextFormat":1},{"label":"f64_max","kind":3,"detail":"pub fn f64_max(a f64, b f64) f64","insertText":"f64_max","insertTextFormat":1},{"label":"copy","kind":3,"detail":"pub fn copy(mut dst []u8, src []u8) int","insertText":"copy","insertTextFormat":1},{"label":"string_from_wide","kind":3,"detail":"pub fn string_from_wide(_wstr &u16) string","insertText":"string_from_wide","insertTextFormat":1},{"label":"string_from_wide2","kind":3,"detail":"pub fn string_from_wide2(_wstr &u16, len int) string","insertText":"string_from_wide2","insertTextFormat":1},{"label":"utf8_char_len","kind":3,"detail":"pub fn utf8_char_len(b u8) int","insertText":"utf8_char_len","insertTextFormat":1},{"label":"utf32_to_str","kind":3,"detail":"pub fn utf32_to_str(code u32) string","insertText":"utf32_to_str","insertTextFormat":1},{"label":"utf32_to_str_no_malloc","kind":3,"detail":"pub fn utf32_to_str_no_malloc(code u32, buf &u8) string","insertText":"utf32_to_str_no_malloc","insertTextFormat":1},{"label":"utf32_decode_to_buffer","kind":3,"detail":"pub fn utf32_decode_to_buffer(code u32, buf &u8) int","insertText":"utf32_decode_to_buffer","insertTextFormat":1},{"label":"utf8_str_len","kind":3,"detail":"pub fn utf8_str_len(s string) int","insertText":"utf8_str_len","insertTextFormat":1},{"label":"utf8_str_visible_length","kind":3,"detail":"pub fn utf8_str_visible_length(s string) int","insertText":"utf8_str_visible_length","insertTextFormat":1},{"label":"SortedMap","kind":22,"detail":"pub struct SortedMap","insertText":"SortedMap","insertTextFormat":1},{"label":"cstring_to_vstring","kind":3,"detail":"pub fn cstring_to_vstring(s &char) string","insertText":"cstring_to_vstring","insertTextFormat":1},{"label":"tos_clone","kind":3,"detail":"pub fn tos_clone(s &u8) string","insertText":"tos_clone","insertTextFormat":1},{"label":"tos","kind":3,"detail":"pub fn tos(s &u8, len int) string","insertText":"tos","insertTextFormat":1},{"label":"tos2","kind":3,"detail":"pub fn tos2(s &u8) string","insertText":"tos2","insertTextFormat":1},{"label":"tos3","kind":3,"detail":"pub fn tos3(s &char) string","insertText":"tos3","insertTextFormat":1},{"label":"tos4","kind":3,"detail":"pub fn tos4(s &u8) string","insertText":"tos4","insertTextFormat":1},{"label":"tos5","kind":3,"detail":"pub fn tos5(s &char) string","insertText":"tos5","insertTextFormat":1},{"label":"compare_strings","kind":3,"detail":"pub fn compare_strings(a &string, b &string) int","insertText":"compare_strings","insertTextFormat":1},{"label":"vstrlen","kind":3,"detail":"pub fn vstrlen(s &byte) int","insertText":"vstrlen","insertTextFormat":1},{"label":"vstrlen_char","kind":3,"detail":"pub fn vstrlen_char(s &char) int","insertText":"vstrlen_char","insertTextFormat":1},{"label":"vmemcpy","kind":3,"detail":"pub fn vmemcpy(dest voidptr, const_src voidptr, n isize) voidptr","insertText":"vmemcpy","insertTextFormat":1},{"label":"vmemmove","kind":3,"detail":"pub fn vmemmove(dest voidptr, const_src voidptr, n isize) voidptr","insertText":"vmemmove","insertTextFormat":1},{"label":"vmemcmp","kind":3,"detail":"pub fn vmemcmp(const_s1 voidptr, const_s2 voidptr, n isize) int","insertText":"vmemcmp","insertTextFormat":1},{"label":"vmemset","kind":3,"detail":"pub fn vmemset(s voidptr, c int, n isize) voidptr","insertText":"vmemset","insertTextFormat":1},{"label":"exit","kind":3,"detail":"pub fn exit(code int)","insertText":"exit","insertTextFormat":1},{"label":"panic_option_not_set","kind":3,"detail":"pub fn panic_option_not_set(s string)","insertText":"panic_option_not_set","insertTextFormat":1},{"label":"panic_result_not_set","kind":3,"detail":"pub fn panic_result_not_set(s string)","insertText":"panic_result_not_set","insertTextFormat":1},{"label":"panic","kind":3,"detail":"pub fn panic(s string)","insertText":"panic","insertTextFormat":1},{"label":"c_error_number_str","kind":3,"detail":"pub fn c_error_number_str(errnum int) string","insertText":"c_error_number_str","insertTextFormat":1},{"label":"panic_error_number","kind":3,"detail":"pub fn panic_error_number(basestr string, errnum int)","insertText":"panic_error_number","insertTextFormat":1},{"label":"eprintln","kind":3,"detail":"pub fn eprintln(s string)","insertText":"eprintln","insertTextFormat":1},{"label":"eprint","kind":3,"detail":"pub fn eprint(s string)","insertText":"eprint","insertTextFormat":1},{"label":"flush_stdout","kind":3,"detail":"pub fn flush_stdout()","insertText":"flush_stdout","insertTextFormat":1},{"label":"flush_stderr","kind":3,"detail":"pub fn flush_stderr()","insertText":"flush_stderr","insertTextFormat":1},{"label":"print","kind":3,"detail":"pub fn print(s string)","insertText":"print","insertTextFormat":1},{"label":"println","kind":3,"detail":"pub fn println(s string)","insertText":"println","insertTextFormat":1},{"label":"malloc","kind":3,"detail":"pub fn malloc(n isize) &u8","insertText":"malloc","insertTextFormat":1},{"label":"malloc_noscan","kind":3,"detail":"pub fn malloc_noscan(n isize) &u8","insertText":"malloc_noscan","insertTextFormat":1},{"label":"malloc_uncollectable","kind":3,"detail":"pub fn malloc_uncollectable(n isize) &u8","insertText":"malloc_uncollectable","insertTextFormat":1},{"label":"v_realloc","kind":3,"detail":"pub fn v_realloc(b &u8, n isize) &u8","insertText":"v_realloc","insertTextFormat":1},{"label":"realloc_data","kind":3,"detail":"pub fn realloc_data(old_data &u8, old_size int, new_size int) &u8","insertText":"realloc_data","insertTextFormat":1},{"label":"vcalloc","kind":3,"detail":"pub fn vcalloc(n isize) &u8","insertText":"vcalloc","insertTextFormat":1},{"label":"vcalloc_noscan","kind":3,"detail":"pub fn vcalloc_noscan(n isize) &u8","insertText":"vcalloc_noscan","insertTextFormat":1},{"label":"free","kind":3,"detail":"pub fn free(ptr voidptr)","insertText":"free","insertTextFormat":1},{"label":"memdup","kind":3,"detail":"pub fn memdup(src voidptr, sz int) voidptr","insertText":"memdup","insertTextFormat":1},{"label":"memdup_noscan","kind":3,"detail":"pub fn memdup_noscan(src voidptr, sz int) voidptr","insertText":"memdup_noscan","insertTextFormat":1},{"label":"memdup_uncollectable","kind":3,"detail":"pub fn memdup_uncollectable(src voidptr, sz int) voidptr","insertText":"memdup_uncollectable","insertTextFormat":1},{"label":"print_backtrace","kind":3,"detail":"pub fn print_backtrace()","insertText":"print_backtrace","insertTextFormat":1},{"label":"StrIntpType","kind":13,"detail":"pub enum StrIntpType","insertText":"StrIntpType","insertTextFormat":1},{"label":"StrIntpMem","kind":22,"detail":"pub struct StrIntpMem","insertText":"StrIntpMem","insertTextFormat":1},{"label":"get_str_intp_u64_format","kind":3,"detail":"pub fn get_str_intp_u64_format(fmt_type StrIntpType, in_width int, in_precision int, in_tail_zeros bool, in_sign bool, in_pad_ch byte, in_base int, in_upper_case bool) u64","insertText":"get_str_intp_u64_format","insertTextFormat":1},{"label":"get_str_intp_u32_format","kind":3,"detail":"pub fn get_str_intp_u32_format(fmt_type StrIntpType, in_width int, in_precision int, in_tail_zeros bool, in_sign bool, in_pad_ch byte, in_base int, in_upper_case bool) u32","insertText":"get_str_intp_u32_format","insertTextFormat":1},{"label":"StrIntpData","kind":22,"detail":"pub struct StrIntpData","insertText":"StrIntpData","insertTextFormat":1},{"label":"StrIntpCgenData","kind":22,"detail":"pub struct StrIntpCgenData","insertText":"StrIntpCgenData","insertTextFormat":1},{"label":"str_intp","kind":3,"detail":"pub fn str_intp(data_len int, input_base &StrIntpData) string","insertText":"str_intp","insertTextFormat":1},{"label":"si_s_code","kind":6,"detail":"pub const si_s_code string","insertText":"si_s_code","insertTextFormat":1},{"label":"si_g32_code","kind":6,"detail":"pub const si_g32_code string","insertText":"si_g32_code","insertTextFormat":1},{"label":"si_g64_code","kind":6,"detail":"pub const si_g64_code string","insertText":"si_g64_code","insertTextFormat":1},{"label":"str_intp_sq","kind":3,"detail":"pub fn str_intp_sq(in_str string) string","insertText":"str_intp_sq","insertTextFormat":1},{"label":"str_intp_rune","kind":3,"detail":"pub fn str_intp_rune(in_str string) string","insertText":"str_intp_rune","insertTextFormat":1},{"label":"str_intp_g32","kind":3,"detail":"pub fn str_intp_g32(in_str string) string","insertText":"str_intp_g32","insertTextFormat":1},{"label":"str_intp_g64","kind":3,"detail":"pub fn str_intp_g64(in_str string) string","insertText":"str_intp_g64","insertTextFormat":1},{"label":"str_intp_sub","kind":3,"detail":"pub fn str_intp_sub(base_str string, in_str string) string","insertText":"str_intp_sub","insertTextFormat":1},{"label":"isnil","kind":3,"detail":"pub fn isnil(v voidptr) bool","insertText":"isnil","insertTextFormat":1},{"label":"VAssertMetaInfo","kind":22,"detail":"pub struct VAssertMetaInfo","insertText":"VAssertMetaInfo","insertTextFormat":1},{"label":"MethodArgs","kind":22,"detail":"pub struct MethodArgs","insertText":"MethodArgs","insertTextFormat":1},{"label":"FunctionData","kind":22,"detail":"pub struct FunctionData","insertText":"FunctionData","insertTextFormat":1},{"label":"FieldData","kind":22,"detail":"pub struct FieldData","insertText":"FieldData","insertTextFormat":1},{"label":"AttributeKind","kind":13,"detail":"pub enum AttributeKind","insertText":"AttributeKind","insertTextFormat":1},{"label":"AttributeKind.plain","kind":20,"detail":"pub AttributeKind.plain AttributeKind","insertText":"AttributeKind.plain","insertTextFormat":1},{"label":"AttributeKind.string","kind":20,"detail":"pub AttributeKind.string AttributeKind","insertText":"AttributeKind.string","insertTextFormat":1},{"label":"AttributeKind.number","kind":20,"detail":"pub AttributeKind.number AttributeKind","insertText":"AttributeKind.number","insertTextFormat":1},{"label":"AttributeKind.comptime_define","kind":20,"detail":"pub AttributeKind.comptime_define AttributeKind","insertText":"AttributeKind.comptime_define","insertTextFormat":1},{"label":"StructAttribute","kind":22,"detail":"pub struct StructAttribute","insertText":"StructAttribute","insertTextFormat":1},{"label":"ptr_str","kind":3,"detail":"pub fn ptr_str(ptr voidptr) string","insertText":"ptr_str","insertTextFormat":1},{"label":"len","kind":10,"detail":"pub mut array.len int","insertText":"len","insertTextFormat":1}]}

2023-03-16T10:51:46.722 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/completion","params":{"position":{"character":12,"line":3},"textDocument":{"uri":"file:///Users/erasin/Development/vlang/vls/analyzer/ast.v"}},"id":8}
2023-03-16T10:51:46.722 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/signatureHelp","params":{"position":{"character":12,"line":3},"textDocument":{"uri":"file:///Users/erasin/Development/vlang/vls/analyzer/ast.v"}},"id":9}
2023-03-16T10:51:46.727 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":8,"result":[{"label":"C","kind":9,"detail":"C symbol definitions","insertText":"C.","insertTextFormat":1},{"label":"node_range","kind":6,"detail":"node_range C.TSRange","insertText":"node_range","insertTextFormat":1},{"label":"start_line","kind":6,"detail":"start_line u32","insertText":"start_line","insertTextFormat":1},{"label":"end_line","kind":6,"detail":"end_line u32","insertText":"end_line","insertTextFormat":1},{"label":"SemanticAnalyzerError","kind":22,"detail":"struct SemanticAnalyzerError","insertText":"SemanticAnalyzerError{code:$1, typ:$2, content:$3}","insertTextFormat":2},{"label":"error_is","kind":3,"detail":"fn error_is(err IError, err_code string) bool","insertText":"error_is($0, $1)","insertTextFormat":2},{"label":"AnalyzerContext","kind":22,"detail":"struct AnalyzerContext","insertText":"AnalyzerContext{store:$1, file_path:$2, file_version:$3, file_name:$4, file_dir:$5, text:$6}","insertTextFormat":2},{"label":"Symbol","kind":22,"detail":"struct Symbol","insertText":"Symbol{name:$1, kind:$2, access:$3, range:$4, parent_sym:$5, return_sym:$6, language:$7, is_top_level:$8, is_const:$9, generic_placeholder_len:$10, interface_children_len:$11, children_syms:$12, file_path:$13, file_version:$14, scope:$15, docstrings:$16}","insertTextFormat":2},{"label":"SymbolFormatter","kind":22,"detail":"pub struct SymbolFormatter","insertText":"SymbolFormatter{context:$1, replacers:$2}","insertTextFormat":2},{"label":"SemanticAnalyzer","kind":22,"detail":"pub struct SemanticAnalyzer","insertText":"SemanticAnalyzer{context:$1, parent_sym:$2, formatter:$3, is_import:$4}","insertTextFormat":2},{"label":"SemanticAnalyzerContext","kind":22,"detail":"struct SemanticAnalyzerContext","insertText":"SemanticAnalyzerContext{params:$1}","insertTextFormat":2},{"label":"Report","kind":22,"detail":"pub struct Report","insertText":"Report{kind:$1, code:$2, message:$3, file_path:$4, source:$5, range:$6, data:$7}","insertTextFormat":2},{"label":"max_int_value","kind":6,"detail":"const max_int_value string","insertText":"max_int_value","insertTextFormat":1},{"label":"parent_by_depth","kind":3,"detail":"fn parent_by_depth(node Node, depth int) !Node","insertText":"parent_by_depth($0, $1)","insertTextFormat":2},{"label":"multiplicative_operators","kind":6,"detail":"const multiplicative_operators []string","insertText":"multiplicative_operators","insertTextFormat":1},{"label":"additive_operators","kind":6,"detail":"const additive_operators []string","insertText":"additive_operators","insertTextFormat":1},{"label":"comparative_operators","kind":6,"detail":"const comparative_operators []string","insertText":"comparative_operators","insertTextFormat":1},{"label":"and_operators","kind":6,"detail":"const and_operators []string","insertText":"and_operators","insertTextFormat":1},{"label":"or_operators","kind":6,"detail":"const or_operators []string","insertText":"or_operators","insertTextFormat":1},{"label":"SemanticExpressionAnalyzeConfig","kind":22,"detail":"struct SemanticExpressionAnalyzeConfig","insertText":"SemanticExpressionAnalyzeConfig{as_value:$1}","insertTextFormat":2},{"label":"SymbolKind","kind":13,"detail":"pub enum SymbolKind","insertText":"SymbolKind","insertTextFormat":1},{"label":"TreeCursor","kind":22,"detail":"struct TreeCursor","insertText":"TreeCursor{start_line_nr:$1, cur_child_idx:$2, named_only:$3, child_count:$4, cursor:$5}","insertTextFormat":2},{"label":"Store","kind":22,"detail":"pub struct Store","insertText":"Store{anon_fn_counter:$1, reporter:$2, cur_version:$3, imports:$4, auto_imports:$5, dependency_tree:$6, symbols:$7, opened_scopes:$8, default_import_paths:$9, base_symbol_locations:$10, binded_symbol_locations:$11}","insertTextFormat":2},{"label":"NewTreeCursorConfig","kind":22,"detail":"struct NewTreeCursorConfig","insertText":"NewTreeCursorConfig{start_line_nr:$1}","insertTextFormat":2},{"label":"AnalyzerError","kind":22,"detail":"pub struct AnalyzerError","insertText":"AnalyzerError{, msg:$1, file_path:$2, range:$3}","insertTextFormat":2},{"label":"report_error","kind":3,"detail":"fn report_error(msg string, range C.TSRange) IError","insertText":"report_error($0, $1)","insertTextFormat":2},{"label":"Reporter","kind":8,"detail":"Reporter","insertText":"Reporter","insertTextFormat":1},{"label":"ScopeTree","kind":22,"detail":"struct ScopeTree","insertText":"ScopeTree{parent:$1, start_byte:$2, end_byte:$3, symbols:$4, children:$5}","insertTextFormat":2},{"label":"BaseSymbolLocation","kind":22,"detail":"pub struct BaseSymbolLocation","insertText":"BaseSymbolLocation{module_name:$1, symbol_name:$2, for_kind:$3}","insertTextFormat":2},{"label":"BindedSymbolLocation","kind":22,"detail":"pub struct BindedSymbolLocation","insertText":"BindedSymbolLocation{for_sym_name:$1, language:$2, module_path:$3}","insertTextFormat":2},{"label":"AnalyzerContextParams","kind":22,"detail":"struct AnalyzerContextParams","insertText":"AnalyzerContextParams{file_path:$1, file_version:$2, store:$3, text:$4}","insertTextFormat":2},{"label":"anon_fn_prefix","kind":6,"detail":"const anon_fn_prefix string","insertText":"anon_fn_prefix","insertTextFormat":1},{"label":"compare_params_and_ret_type","kind":3,"detail":"pub fn compare_params_and_ret_type(params []&Symbol, ret_type &Symbol, fn_to_compare &Symbol, include_param_name bool) bool","insertText":"compare_params_and_ret_type($0, $1, $2, $3)","insertTextFormat":2},{"label":"container_symbol_kinds","kind":6,"detail":"pub const container_symbol_kinds []SymbolKind","insertText":"container_symbol_kinds","insertTextFormat":1},{"label":"symbol_name_from_node","kind":3,"detail":"pub fn symbol_name_from_node(node Node, src_text SourceText) (SymbolKind, string, string)","insertText":"symbol_name_from_node($0, $1)","insertTextFormat":2},{"label":"Import","kind":22,"detail":"pub struct Import","insertText":"Import{resolved:$1, imported:$2, absolute_module_name:$3, module_name:$4, path:$5, ranges:$6, aliases:$7, symbols:$8}","insertTextFormat":2},{"label":"mut_struct_keyword","kind":6,"detail":"const mut_struct_keyword string","insertText":"mut_struct_keyword","insertTextFormat":1},{"label":"pub_struct_keyword","kind":6,"detail":"const pub_struct_keyword string","insertText":"pub_struct_keyword","insertTextFormat":1},{"label":"pub_mut_struct_keyword","kind":6,"detail":"const pub_mut_struct_keyword string","insertText":"pub_mut_struct_keyword","insertTextFormat":1},{"label":"global_struct_keyword","kind":6,"detail":"const global_struct_keyword string","insertText":"global_struct_keyword","insertTextFormat":1},{"label":"SymbolAnalyzer","kind":22,"detail":"pub struct SymbolAnalyzer","insertText":"SymbolAnalyzer{context:$1, module_name:$2, is_import:$3, is_script:$4, is_test:$5, first_var_decl_pos:$6}","insertTextFormat":2},{"label":"SymbolAccess","kind":13,"detail":"pub enum SymbolAccess","insertText":"SymbolAccess","insertTextFormat":1},{"label":"extract_parameter_list","kind":3,"detail":"fn extract_parameter_list(mut ctx AnalyzerContext, node Node) []&Symbol","insertText":"extract_parameter_list($0, $1)","insertTextFormat":2},{"label":"new_symbol_analyzer","kind":3,"detail":"pub fn new_symbol_analyzer(context AnalyzerContext, is_import bool) SymbolAnalyzer","insertText":"new_symbol_analyzer($0, $1)","insertTextFormat":2},{"label":"SymbolLanguage","kind":13,"detail":"pub enum SymbolLanguage","insertText":"SymbolLanguage","insertTextFormat":1},{"label":"void_sym","kind":6,"detail":"pub const void_sym &Symbol","insertText":"void_sym","insertTextFormat":1},{"label":"void_sym_arr","kind":6,"detail":"pub const void_sym_arr []&Symbol","insertText":"void_sym_arr","insertTextFormat":1},{"label":"kinds_in_multi_return_to_be_excluded","kind":6,"detail":"const kinds_in_multi_return_to_be_excluded []SymbolKind","insertText":"kinds_in_multi_return_to_be_excluded","insertTextFormat":1},{"label":"type_defining_sym_kinds","kind":6,"detail":"const type_defining_sym_kinds []SymbolKind","insertText":"type_defining_sym_kinds","insertTextFormat":1},{"label":"SymbolGenStrConfig","kind":22,"detail":"struct SymbolGenStrConfig","insertText":"SymbolGenStrConfig{module_prefix:$1, with_kind:$2, with_access:$3, with_contents:$4}","insertTextFormat":2},{"label":"child_cfg","kind":6,"detail":"const child_cfg SymbolGenStrConfig","insertText":"child_cfg","insertTextFormat":1},{"label":"sym_kinds_allowed_to_print_parent","kind":6,"detail":"const sym_kinds_allowed_to_print_parent []SymbolKind","insertText":"sym_kinds_allowed_to_print_parent","insertTextFormat":1},{"label":"sort_syms_by_name","kind":3,"detail":"fn sort_syms_by_name(a &&Symbol, b &&Symbol) int","insertText":"sort_syms_by_name($0, $1)","insertTextFormat":2},{"label":"sort_syms_by_access_and_name","kind":3,"detail":"fn sort_syms_by_access_and_name(a &&Symbol, b &&Symbol) int","insertText":"sort_syms_by_access_and_name($0, $1)","insertTextFormat":2},{"label":"is_interface_satisfied","kind":3,"detail":"pub fn is_interface_satisfied(sym &Symbol, interface_sym &Symbol) bool","insertText":"is_interface_satisfied($0, $1)","insertTextFormat":2},{"label":"numeric_types","kind":6,"detail":"const numeric_types []string","insertText":"numeric_types","insertTextFormat":1},{"label":"numeric_types_with_any_type","kind":6,"detail":"const numeric_types_with_any_type []string","insertText":"numeric_types_with_any_type","insertTextFormat":1},{"label":"Importer","kind":22,"detail":"pub struct Importer","insertText":"Importer{context:$1}","insertTextFormat":2},{"label":"setup_builtin","kind":3,"detail":"pub fn setup_builtin(mut store Store, builtin_path string)","insertText":"setup_builtin($0, $1)","insertTextFormat":2},{"label":"register_none","kind":3,"detail":"fn register_none(mut ss Store, builtin_import &Import)","insertText":"register_none($0, $1)","insertTextFormat":2},{"label":"register_builtin_symbols","kind":3,"detail":"fn register_builtin_symbols(mut ss Store, builtin_import &Import)","insertText":"register_builtin_symbols($0, $1)","insertTextFormat":2},{"label":"v_ext","kind":6,"detail":"const v_ext string","insertText":"v_ext","insertTextFormat":1},{"label":"user_os","kind":6,"detail":"const user_os string","insertText":"user_os","insertTextFormat":1},{"label":"c_file_suffixes","kind":6,"detail":"const c_file_suffixes []string","insertText":"c_file_suffixes","insertTextFormat":1},{"label":"os_file_specific_suffix_indices","kind":6,"detail":"const os_file_specific_suffix_indices","insertText":"os_file_specific_suffix_indices","insertTextFormat":1},{"label":"should_analyze_file_c","kind":3,"detail":"fn should_analyze_file_c(file_name string) bool","insertText":"should_analyze_file_c($0)","insertTextFormat":2},{"label":"should_analyze_file","kind":3,"detail":"pub fn should_analyze_file(file_name string) bool","insertText":"should_analyze_file($0)","insertTextFormat":2},{"label":"ImportPathIterator","kind":22,"detail":"struct ImportPathIterator","insertText":"ImportPathIterator{start_path:$1, lookup_paths:$2, fallback_lookup_paths:$3, idx:$4, in_start:$5, in_fallback:$6}","insertTextFormat":2},{"label":"SymbolFormatterConfig","kind":22,"detail":"struct SymbolFormatterConfig","insertText":"SymbolFormatterConfig{with_kind:$1, with_access:$2, with_contents:$3, docstring_line_len_limit:$4, field_indent:$5}","insertTextFormat":2},{"label":"params_format_cfg","kind":6,"detail":"pub const params_format_cfg SymbolFormatterConfig","insertText":"params_format_cfg","insertTextFormat":1},{"label":"types_format_cfg","kind":6,"detail":"const types_format_cfg SymbolFormatterConfig","insertText":"types_format_cfg","insertTextFormat":1},{"label":"child_types_format_cfg","kind":6,"detail":"const child_types_format_cfg SymbolFormatterConfig","insertText":"child_types_format_cfg","insertTextFormat":1},{"label":"check_is_header_line","kind":3,"detail":"fn check_is_header_line(line string) bool","insertText":"check_is_header_line($0)","insertTextFormat":2},{"label":"check_is_horizontal_rule","kind":3,"detail":"fn check_is_horizontal_rule(line string) bool","insertText":"check_is_horizontal_rule($0)","insertTextFormat":2},{"label":"write_line_with_wrapping","kind":3,"detail":"fn write_line_with_wrapping(mut builder Builder, line string, line_limit int, init_offset int) int","insertText":"write_line_with_wrapping($0, $1, $2, $3)","insertTextFormat":2},{"label":"new_context","kind":3,"detail":"pub fn new_context(params AnalyzerContextParams) AnalyzerContext","insertText":"new_context($0)","insertTextFormat":2},{"label":"ImportCheckResult","kind":13,"detail":"enum ImportCheckResult","insertText":"ImportCheckResult","insertTextFormat":1},{"label":"import_modules_from_tree","kind":3,"detail":"pub fn import_modules_from_tree(context AnalyzerContext, tree &Tree, lookup_paths ...string)","insertText":"import_modules_from_tree($0, $1, $2)","insertTextFormat":2},{"label":"new_tree_cursor","kind":3,"detail":"pub fn new_tree_cursor(root_node Node, cfg NewTreeCursorConfig) TreeCursor","insertText":"new_tree_cursor($0, $1)","insertTextFormat":2},{"label":"ReportData","kind":8,"detail":"ReportData","insertText":"ReportData","insertTextFormat":1},{"label":"ReportKind","kind":13,"detail":"pub enum ReportKind","insertText":"ReportKind","insertTextFormat":1},{"label":"ReporterPreferences","kind":22,"detail":"pub struct ReporterPreferences","insertText":"ReporterPreferences{limit:$1, warns_are_errors:$2}","insertTextFormat":2},{"label":"Collector","kind":22,"detail":"pub struct Collector","insertText":"Collector{prefs:$1, errors:$2, warnings:$3, notices:$4}","insertTextFormat":2},{"label":"within_range","kind":3,"detail":"fn within_range(node_range C.TSRange, start_line u32, end_line u32) bool","insertText":"within_range($0, $1, $2)","insertTextFormat":2},{"label":"string","kind":22,"detail":"pub struct string","insertText":"string","insertTextFormat":1},{"label":"array","kind":22,"detail":"pub struct array","insertText":"array","insertTextFormat":1},{"label":"map","kind":22,"detail":"pub struct map","insertText":"map","insertTextFormat":1},{"label":"IError","kind":8,"detail":"IError","insertText":"IError","insertTextFormat":1},{"label":"gc_check_leaks","kind":3,"detail":"pub fn gc_check_leaks()","insertText":"gc_check_leaks","insertTextFormat":1},{"label":"Error","kind":22,"detail":"pub struct Error","insertText":"Error","insertTextFormat":1},{"label":"error","kind":3,"detail":"pub fn error(message string) IError","insertText":"error","insertTextFormat":1},{"label":"error_with_code","kind":3,"detail":"pub fn error_with_code(message string, code int) IError","insertText":"error_with_code","insertTextFormat":1},{"label":"str","kind":3,"detail":"pub fn str() string","insertText":"str","insertTextFormat":1},{"label":"ChanState","kind":13,"detail":"pub enum ChanState","insertText":"ChanState","insertTextFormat":1},{"label":"ChanState.success","kind":20,"detail":"pub ChanState.success ChanState","insertText":"ChanState.success","insertTextFormat":1},{"label":"ChanState.not_ready","kind":20,"detail":"pub ChanState.not_ready ChanState","insertText":"ChanState.not_ready","insertTextFormat":1},{"label":"ChanState.closed","kind":20,"detail":"pub ChanState.closed ChanState","insertText":"ChanState.closed","insertTextFormat":1},{"label":"f32_abs","kind":3,"detail":"pub fn f32_abs(a f32) f32","insertText":"f32_abs","insertTextFormat":1},{"label":"f32_max","kind":3,"detail":"pub fn f32_max(a f32, b f32) f32","insertText":"f32_max","insertTextFormat":1},{"label":"f32_min","kind":3,"detail":"pub fn f32_min(a f32, b f32) f32","insertText":"f32_min","insertTextFormat":1},{"label":"f64_max","kind":3,"detail":"pub fn f64_max(a f64, b f64) f64","insertText":"f64_max","insertTextFormat":1},{"label":"copy","kind":3,"detail":"pub fn copy(mut dst []u8, src []u8) int","insertText":"copy","insertTextFormat":1},{"label":"string_from_wide","kind":3,"detail":"pub fn string_from_wide(_wstr &u16) string","insertText":"string_from_wide","insertTextFormat":1},{"label":"string_from_wide2","kind":3,"detail":"pub fn string_from_wide2(_wstr &u16, len int) string","insertText":"string_from_wide2","insertTextFormat":1},{"label":"utf8_char_len","kind":3,"detail":"pub fn utf8_char_len(b u8) int","insertText":"utf8_char_len","insertTextFormat":1},{"label":"utf32_to_str","kind":3,"detail":"pub fn utf32_to_str(code u32) string","insertText":"utf32_to_str","insertTextFormat":1},{"label":"utf32_to_str_no_malloc","kind":3,"detail":"pub fn utf32_to_str_no_malloc(code u32, buf &u8) string","insertText":"utf32_to_str_no_malloc","insertTextFormat":1},{"label":"utf32_decode_to_buffer","kind":3,"detail":"pub fn utf32_decode_to_buffer(code u32, buf &u8) int","insertText":"utf32_decode_to_buffer","insertTextFormat":1},{"label":"utf8_str_len","kind":3,"detail":"pub fn utf8_str_len(s string) int","insertText":"utf8_str_len","insertTextFormat":1},{"label":"utf8_str_visible_length","kind":3,"detail":"pub fn utf8_str_visible_length(s string) int","insertText":"utf8_str_visible_length","insertTextFormat":1},{"label":"SortedMap","kind":22,"detail":"pub struct SortedMap","insertText":"SortedMap","insertTextFormat":1},{"label":"cstring_to_vstring","kind":3,"detail":"pub fn cstring_to_vstring(s &char) string","insertText":"cstring_to_vstring","insertTextFormat":1},{"label":"tos_clone","kind":3,"detail":"pub fn tos_clone(s &u8) string","insertText":"tos_clone","insertTextFormat":1},{"label":"tos","kind":3,"detail":"pub fn tos(s &u8, len int) string","insertText":"tos","insertTextFormat":1},{"label":"tos2","kind":3,"detail":"pub fn tos2(s &u8) string","insertText":"tos2","insertTextFormat":1},{"label":"tos3","kind":3,"detail":"pub fn tos3(s &char) string","insertText":"tos3","insertTextFormat":1},{"label":"tos4","kind":3,"detail":"pub fn tos4(s &u8) string","insertText":"tos4","insertTextFormat":1},{"label":"tos5","kind":3,"detail":"pub fn tos5(s &char) string","insertText":"tos5","insertTextFormat":1},{"label":"compare_strings","kind":3,"detail":"pub fn compare_strings(a &string, b &string) int","insertText":"compare_strings","insertTextFormat":1},{"label":"vstrlen","kind":3,"detail":"pub fn vstrlen(s &byte) int","insertText":"vstrlen","insertTextFormat":1},{"label":"vstrlen_char","kind":3,"detail":"pub fn vstrlen_char(s &char) int","insertText":"vstrlen_char","insertTextFormat":1},{"label":"vmemcpy","kind":3,"detail":"pub fn vmemcpy(dest voidptr, const_src voidptr, n isize) voidptr","insertText":"vmemcpy","insertTextFormat":1},{"label":"vmemmove","kind":3,"detail":"pub fn vmemmove(dest voidptr, const_src voidptr, n isize) voidptr","insertText":"vmemmove","insertTextFormat":1},{"label":"vmemcmp","kind":3,"detail":"pub fn vmemcmp(const_s1 voidptr, const_s2 voidptr, n isize) int","insertText":"vmemcmp","insertTextFormat":1},{"label":"vmemset","kind":3,"detail":"pub fn vmemset(s voidptr, c int, n isize) voidptr","insertText":"vmemset","insertTextFormat":1},{"label":"exit","kind":3,"detail":"pub fn exit(code int)","insertText":"exit","insertTextFormat":1},{"label":"panic_option_not_set","kind":3,"detail":"pub fn panic_option_not_set(s string)","insertText":"panic_option_not_set","insertTextFormat":1},{"label":"panic_result_not_set","kind":3,"detail":"pub fn panic_result_not_set(s string)","insertText":"panic_result_not_set","insertTextFormat":1},{"label":"panic","kind":3,"detail":"pub fn panic(s string)","insertText":"panic","insertTextFormat":1},{"label":"c_error_number_str","kind":3,"detail":"pub fn c_error_number_str(errnum int) string","insertText":"c_error_number_str","insertTextFormat":1},{"label":"panic_error_number","kind":3,"detail":"pub fn panic_error_number(basestr string, errnum int)","insertText":"panic_error_number","insertTextFormat":1},{"label":"eprintln","kind":3,"detail":"pub fn eprintln(s string)","insertText":"eprintln","insertTextFormat":1},{"label":"eprint","kind":3,"detail":"pub fn eprint(s string)","insertText":"eprint","insertTextFormat":1},{"label":"flush_stdout","kind":3,"detail":"pub fn flush_stdout()","insertText":"flush_stdout","insertTextFormat":1},{"label":"flush_stderr","kind":3,"detail":"pub fn flush_stderr()","insertText":"flush_stderr","insertTextFormat":1},{"label":"print","kind":3,"detail":"pub fn print(s string)","insertText":"print","insertTextFormat":1},{"label":"println","kind":3,"detail":"pub fn println(s string)","insertText":"println","insertTextFormat":1},{"label":"malloc","kind":3,"detail":"pub fn malloc(n isize) &u8","insertText":"malloc","insertTextFormat":1},{"label":"malloc_noscan","kind":3,"detail":"pub fn malloc_noscan(n isize) &u8","insertText":"malloc_noscan","insertTextFormat":1},{"label":"malloc_uncollectable","kind":3,"detail":"pub fn malloc_uncollectable(n isize) &u8","insertText":"malloc_uncollectable","insertTextFormat":1},{"label":"v_realloc","kind":3,"detail":"pub fn v_realloc(b &u8, n isize) &u8","insertText":"v_realloc","insertTextFormat":1},{"label":"realloc_data","kind":3,"detail":"pub fn realloc_data(old_data &u8, old_size int, new_size int) &u8","insertText":"realloc_data","insertTextFormat":1},{"label":"vcalloc","kind":3,"detail":"pub fn vcalloc(n isize) &u8","insertText":"vcalloc","insertTextFormat":1},{"label":"vcalloc_noscan","kind":3,"detail":"pub fn vcalloc_noscan(n isize) &u8","insertText":"vcalloc_noscan","insertTextFormat":1},{"label":"free","kind":3,"detail":"pub fn free(ptr voidptr)","insertText":"free","insertTextFormat":1},{"label":"memdup","kind":3,"detail":"pub fn memdup(src voidptr, sz int) voidptr","insertText":"memdup","insertTextFormat":1},{"label":"memdup_noscan","kind":3,"detail":"pub fn memdup_noscan(src voidptr, sz int) voidptr","insertText":"memdup_noscan","insertTextFormat":1},{"label":"memdup_uncollectable","kind":3,"detail":"pub fn memdup_uncollectable(src voidptr, sz int) voidptr","insertText":"memdup_uncollectable","insertTextFormat":1},{"label":"print_backtrace","kind":3,"detail":"pub fn print_backtrace()","insertText":"print_backtrace","insertTextFormat":1},{"label":"StrIntpType","kind":13,"detail":"pub enum StrIntpType","insertText":"StrIntpType","insertTextFormat":1},{"label":"StrIntpMem","kind":22,"detail":"pub struct StrIntpMem","insertText":"StrIntpMem","insertTextFormat":1},{"label":"get_str_intp_u64_format","kind":3,"detail":"pub fn get_str_intp_u64_format(fmt_type StrIntpType, in_width int, in_precision int, in_tail_zeros bool, in_sign bool, in_pad_ch byte, in_base int, in_upper_case bool) u64","insertText":"get_str_intp_u64_format","insertTextFormat":1},{"label":"get_str_intp_u32_format","kind":3,"detail":"pub fn get_str_intp_u32_format(fmt_type StrIntpType, in_width int, in_precision int, in_tail_zeros bool, in_sign bool, in_pad_ch byte, in_base int, in_upper_case bool) u32","insertText":"get_str_intp_u32_format","insertTextFormat":1},{"label":"StrIntpData","kind":22,"detail":"pub struct StrIntpData","insertText":"StrIntpData","insertTextFormat":1},{"label":"StrIntpCgenData","kind":22,"detail":"pub struct StrIntpCgenData","insertText":"StrIntpCgenData","insertTextFormat":1},{"label":"str_intp","kind":3,"detail":"pub fn str_intp(data_len int, input_base &StrIntpData) string","insertText":"str_intp","insertTextFormat":1},{"label":"si_s_code","kind":6,"detail":"pub const si_s_code string","insertText":"si_s_code","insertTextFormat":1},{"label":"si_g32_code","kind":6,"detail":"pub const si_g32_code string","insertText":"si_g32_code","insertTextFormat":1},{"label":"si_g64_code","kind":6,"detail":"pub const si_g64_code string","insertText":"si_g64_code","insertTextFormat":1},{"label":"str_intp_sq","kind":3,"detail":"pub fn str_intp_sq(in_str string) string","insertText":"str_intp_sq","insertTextFormat":1},{"label":"str_intp_rune","kind":3,"detail":"pub fn str_intp_rune(in_str string) string","insertText":"str_intp_rune","insertTextFormat":1},{"label":"str_intp_g32","kind":3,"detail":"pub fn str_intp_g32(in_str string) string","insertText":"str_intp_g32","insertTextFormat":1},{"label":"str_intp_g64","kind":3,"detail":"pub fn str_intp_g64(in_str string) string","insertText":"str_intp_g64","insertTextFormat":1},{"label":"str_intp_sub","kind":3,"detail":"pub fn str_intp_sub(base_str string, in_str string) string","insertText":"str_intp_sub","insertTextFormat":1},{"label":"isnil","kind":3,"detail":"pub fn isnil(v voidptr) bool","insertText":"isnil","insertTextFormat":1},{"label":"VAssertMetaInfo","kind":22,"detail":"pub struct VAssertMetaInfo","insertText":"VAssertMetaInfo","insertTextFormat":1},{"label":"MethodArgs","kind":22,"detail":"pub struct MethodArgs","insertText":"MethodArgs","insertTextFormat":1},{"label":"FunctionData","kind":22,"detail":"pub struct FunctionData","insertText":"FunctionData","insertTextFormat":1},{"label":"FieldData","kind":22,"detail":"pub struct FieldData","insertText":"FieldData","insertTextFormat":1},{"label":"AttributeKind","kind":13,"detail":"pub enum AttributeKind","insertText":"AttributeKind","insertTextFormat":1},{"label":"AttributeKind.plain","kind":20,"detail":"pub AttributeKind.plain AttributeKind","insertText":"AttributeKind.plain","insertTextFormat":1},{"label":"AttributeKind.string","kind":20,"detail":"pub AttributeKind.string AttributeKind","insertText":"AttributeKind.string","insertTextFormat":1},{"label":"AttributeKind.number","kind":20,"detail":"pub AttributeKind.number AttributeKind","insertText":"AttributeKind.number","insertTextFormat":1},{"label":"AttributeKind.comptime_define","kind":20,"detail":"pub AttributeKind.comptime_define AttributeKind","insertText":"AttributeKind.comptime_define","insertTextFormat":1},{"label":"StructAttribute","kind":22,"detail":"pub struct StructAttribute","insertText":"StructAttribute","insertTextFormat":1},{"label":"ptr_str","kind":3,"detail":"pub fn ptr_str(ptr voidptr) string","insertText":"ptr_str","insertTextFormat":1},{"label":"len","kind":10,"detail":"pub mut array.len int","insertText":"len","insertTextFormat":1}]}


@erasin erasin added the bug Something isn't working label Mar 16, 2023
@erasin erasin changed the title LSP completion error LSP completion error: Content duplication Mar 16, 2023
@JalonSolov
Copy link

Try https://blog.vosca.dev/meet-v-analyzer/ instead, now that it is released.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants