[Trace - 22:34:32] Sending request 'initialize - (0)'.
Params: {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":43027,"clientInfo":{"name":"Visual Studio Code","version":"1.55.2"},"locale":"en-us","rootPath":"/Users/jarredsumner/Code/esdev","rootUri":"file:///Users/jarredsumner/Code/esdev","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional","normalizesLineEndings":true,"changeAnnotationSupport":{"groupsOnLabel":true}},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"tagSupport":{"valueSet":[1]}},"codeLens":{"refreshSupport":true},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true,"semanticTokens":{"refreshSupport":true},"fileOperations":{"dynamicRegistration":true,"didCreate":true,"didRename":true,"didDelete":true,"willCreate":true,"willRename":true,"willDelete":true}},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]},"codeDescriptionSupport":true,"dataSupport":true},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]},"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"insertTextModeSupport":{"valueSet":[1,2]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true,"tagSupport":{"valueSet":[1]},"labelSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"disabledSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]},"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"honorsChangeAnnotations":false},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true,"prepareSupportDefaultBehavior":1,"honorsChangeAnnotations":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true},"semanticTokens":{"dynamicRegistration":true,"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"formats":["relative"],"requests":{"range":true,"full":{"delta":true}},"multilineTokenSupport":false,"overlappingTokenSupport":false},"linkedEditingRange":{"dynamicRegistration":true}},"window":{"showMessage":{"messageActionItem":{"additionalPropertiesSupport":true}},"showDocument":{"support":true},"workDoneProgress":true},"general":{"regularExpressions":{"engine":"ECMAScript","version":"ES2020"},"markdown":{"parser":"marked","version":"1.1.0"}}},"trace":"off","workspaceFolders":[{"uri":"file:///Users/jarredsumner/Code/esdev","name":"esdev"}]}}
[Trace - 22:34:32] Received request 'initialize - (0)'.
Params: {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":43027,"clientInfo":{"name":"Visual Studio Code","version":"1.55.2"},"locale":"en-us","rootPath":"/Users/jarredsumner/Code/esdev","rootUri":"file:///Users/jarredsumner/Code/esdev","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional","normalizesLineEndings":true,"changeAnnotationSupport":{"groupsOnLabel":true}},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"tagSupport":{"valueSet":[1]}},"codeLens":{"refreshSupport":true},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true,"semanticTokens":{"refreshSupport":true},"fileOperations":{"dynamicRegistration":true,"didCreate":true,"didRename":true,"didDelete":true,"willCreate":true,"willRename":true,"willDelete":true}},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]},"codeDescriptionSupport":true,"dataSupport":true},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]},"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"insertTextModeSupport":{"valueSet":[1,2]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true,"tagSupport":{"valueSet":[1]},"labelSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"disabledSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]},"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"honorsChangeAnnotations":false},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true,"prepareSupportDefaultBehavior":1,"honorsChangeAnnotations":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true},"semanticTokens":{"dynamicRegistration":true,"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"formats":["relative"],"requests":{"range":true,"full":{"delta":true}},"multilineTokenSupport":false,"overlappingTokenSupport":false},"linkedEditingRange":{"dynamicRegistration":true}},"window":{"showMessage":{"messageActionItem":{"additionalPropertiesSupport":true}},"showDocument":{"support":true},"workDoneProgress":true},"general":{"regularExpressions":{"engine":"ECMAScript","version":"ES2020"},"markdown":{"parser":"marked","version":"1.1.0"}}},"trace":"off","workspaceFolders":[{"uri":"file:///Users/jarredsumner/Code/esdev","name":"esdev"}]}}
[Trace - 22:34:32] Sending notification 'window/logMessage'.
Params: {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"VLS Version: 0.0.1, OS: macos 64"}}
[Trace - 22:34:32] Received notification 'window/logMessage'.
Params: {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"VLS Version: 0.0.1, OS: macos 64"}}
[Trace - 22:34:32] Sending notification 'window/logMessage'.
Params: {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"Client / Editor: Visual Studio Code 1.55.2"}}
[Trace - 22:34:32] Received notification 'window/logMessage'.
Params: {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"Client / Editor: Visual Studio Code 1.55.2"}}
[Trace - 22:34:32] Sending response 'initialize - (0)' took 23ms
Result: {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":1,"hoverProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["=",".",":","{",",","("," "]},"signatureHelpProvider":{"triggerCharacters":["("],"retriggerCharacters":[","," "]},"definitionProvider":true,"typeDefinitionProvider":false,"implementationProvider":false,"referencesProvider":false,"documentHightlightProvider":false,"documentSymbolProvider":true,"workspaceSymbolProvider":true,"codeActionProvider":false,"codeLensProvider":{"resolveProvider":false},"documentFormattingProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":[]},"renameProvider":false,"documentLinkProvider":false,"colorProvider":false,"declarationProvider":false,"executeCommandProvider":"","foldingRangeProvider":true,"experimental":{}}}}
[Trace - 22:34:32] Received response ' - (0)' in 0ms
Result: {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":1,"hoverProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["=",".",":","{",",","("," "]},"signatureHelpProvider":{"triggerCharacters":["("],"retriggerCharacters":[","," "]},"definitionProvider":true,"typeDefinitionProvider":false,"implementationProvider":false,"referencesProvider":false,"documentHightlightProvider":false,"documentSymbolProvider":true,"workspaceSymbolProvider":true,"codeActionProvider":false,"codeLensProvider":{"resolveProvider":false},"documentFormattingProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":[]},"renameProvider":false,"documentLinkProvider":false,"colorProvider":false,"declarationProvider":false,"executeCommandProvider":"","foldingRangeProvider":true,"experimental":{}}}}
[Trace - 22:34:32] Sending request 'initialized - (0)'.
Params: {"jsonrpc":"2.0","method":"initialized","params":{}}
[Trace - 22:34:32] Received request 'initialized - (0)'.
Params: {"jsonrpc":"2.0","method":"initialized","params":{}}
[Trace - 22:34:32] Sending request 'textDocument/didOpen - (0)'.
Params: {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/jarredsumner/Code/esdev/esdev.v","languageId":"v","version":1,"text":"module main\n\nimport debugger\nimport lexer\n\nfn main() {\n\tprintln('Hello World!')\n}\n"}}}
[Trace - 22:34:32] Received request 'textDocument/didOpen - (0)'.
Params: {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/jarredsumner/Code/esdev/esdev.v","languageId":"v","version":1,"text":"module main\n\nimport debugger\nimport lexer\n\nfn main() {\n\tprintln('Hello World!')\n}\n"}}}
[Trace - 22:34:32] Sending notification 'textDocument/publishDiagnostics'.
Params: {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/jarredsumner/Code/esdev/esdev.v","diagnostics":[{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":15}},"severity":2,"code":"","source":"","message":"module 'debugger' is imported but never used","relatedInformation":[]},{"range":{"start":{"line":3,"character":7},"end":{"line":3,"character":12}},"severity":2,"code":"","source":"","message":"module 'lexer' is imported but never used","relatedInformation":[]}]}}
[Trace - 22:34:32] Received notification 'textDocument/publishDiagnostics'.
Params: {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/jarredsumner/Code/esdev/esdev.v","diagnostics":[{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":15}},"severity":2,"code":"","source":"","message":"module 'debugger' is imported but never used","relatedInformation":[]},{"range":{"start":{"line":3,"character":7},"end":{"line":3,"character":12}},"severity":2,"code":"","source":"","message":"module 'lexer' is imported but never used","relatedInformation":[]}]}}
[Trace - 22:34:32] Sending request 'textDocument/didOpen - (0)'.
Params: {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/jarredsumner/Code/esdev/lexer/lexer.v","languageId":"v","version":1,"text":"module lexer\n\npub struct Lexer {\npub:\n\t// log logger.Log\n\t// source logger.Source\n\tcurrent int\n\tstart int\n\tend int\n\tapproximate_newline_count int\n\t// LegacyOctalLoc logger.Loc\n\t// PreviousBackslashQuoteInJSX logger.Range\n\ttoken T\n\thas_newline_before bool\n\thas_pure_comment_before bool\n\tpreserve_all_comments_before bool\n\tis_legacy_octal_literal bool\n\t// comments_to_preserve_before []js_ast.Comment\n\t// all_original_comments []js_ast.Comment\n\tcode_point rune\n\tstring_literal []uint16\n\tidentifier string\n\t// jsx_factory_pragma_comment js_ast.Span\n\t// jsx_fragment_pragma_comment js_ast.Span\n\t// source_mapping_url js_ast.Span\n\tnumber f64\n\trescan_close_brace_as_template_token bool\n\tfor_global_name bool\n\t// json json\n\t// prev_error_loc logger.Loc\n}\n\npub enum TKind {\n\tt_end_of_file\n\tt_syntax_error\n\t// \"#!/usr/bin/env node\"\n\tt_hashbang\n\t// Literals\n\tt_no_substitution_template_literal // Contents are in lexer.StringLiteral ([]uint16)\n\tt_numeric_literal // Contents are in lexer.Number (float64)\n\tt_string_literal // Contents are in lexer.StringLiteral ([]uint16)\n\tt_big_integer_literal // Contents are in lexer.Identifier (string)\n\t// Pseudo-literals\n\tt_template_head // Contents are in lexer.StringLiteral ([]uint16)\n\tt_template_middle // Contents are in lexer.StringLiteral ([]uint16)\n\tt_template_tail // Contents are in lexer.StringLiteral ([]uint16)\n\t// Punctuation\n\tt_ampersand\n\tt_ampersand_ampersand\n\tt_asterisk\n\tt_asterisk_asterisk\n\tt_at\n\tt_bar\n\tt_bar_bar\n\tt_caret\n\tt_close_brace\n\tt_close_bracket\n\tt_close_paren\n\tt_colon\n\tt_comma\n\tt_dot\n\tt_dot_dot_dot\n\tt_equals_equals\n\tt_equals_equals_equals\n\tt_equals_greater_than\n\tt_exclamation\n\tt_exclamation_equals\n\tt_exclamation_equals_equals\n\tt_greater_than\n\tt_greater_than_equals\n\tt_greater_than_greater_than\n\tt_greater_than_greater_than_greater_than\n\tt_less_than\n\tt_less_than_equals\n\tt_less_than_less_than\n\tt_minus\n\tt_minus_minus\n\tt_open_brace\n\tt_open_bracket\n\tt_open_paren\n\tt_percent\n\tt_plus\n\tt_plus_plus\n\tt_question\n\tt_question_dot\n\tt_question_question\n\tt_semicolon\n\tt_slash\n\tt_tilde\n\t// Assignments (keep in sync with IsAssign() below)\n\tt_ampersand_ampersand_equals\n\tt_ampersand_equals\n\tt_asterisk_asterisk_equals\n\tt_asterisk_equals\n\tt_bar_bar_equals\n\tt_bar_equals\n\tt_caret_equals\n\tt_equals\n\tt_greater_than_greater_than_equals\n\tt_greater_than_greater_than_greater_than_equals\n\tt_less_than_less_than_equals\n\tt_minus_equals\n\tt_percent_equals\n\tt_plus_equals\n\tt_question_question_equals\n\tt_slash_equals\n\t// Class-private fields and methods\n\tt_private_identifier\n\t// Identifiers\n\tt_identifier // Contents are in lexer.Identifier (string)\n\tt_escaped_keyword // A keyword that has been escaped as an identifer\n\t// Reserved words\n\tt_break\n\tt_case\n\tt_catch\n\tt_class\n\tt_const\n\tt_continue\n\tt_debugger\n\tt_default\n\tt_delete\n\tt_do\n\tt_else\n\tt_enum\n\tt_export\n\tt_extends\n\tt_false\n\tt_finally\n\tt_for\n\tt_function\n\tt_if\n\tt_import\n\tt_in\n\tt_instanceof\n\tt_new\n\tt_null\n\tt_return\n\tt_super\n\tt_switch\n\tt_this\n\tt_throw\n\tt_true\n\tt_try\n\tt_typeof\n\tt_var\n\tt_void\n\tt_while\n\tt_with\n}\n\npub fn (t TKind) is_assign() bool {\n\treturn int(t) >= int(TKind.t_ampersand_ampersand_equals) && int(t) <= int(TKind.t_slash_equals)\n}\n"}}}
[Trace - 22:34:32] Received request 'textDocument/didOpen - (0)'.
Params: {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/jarredsumner/Code/esdev/lexer/lexer.v","languageId":"v","version":1,"text":"module lexer\n\npub struct Lexer {\npub:\n\t// log logger.Log\n\t// source logger.Source\n\tcurrent int\n\tstart int\n\tend int\n\tapproximate_newline_count int\n\t// LegacyOctalLoc logger.Loc\n\t// PreviousBackslashQuoteInJSX logger.Range\n\ttoken T\n\thas_newline_before bool\n\thas_pure_comment_before bool\n\tpreserve_all_comments_before bool\n\tis_legacy_octal_literal bool\n\t// comments_to_preserve_before []js_ast.Comment\n\t// all_original_comments []js_ast.Comment\n\tcode_point rune\n\tstring_literal []uint16\n\tidentifier string\n\t// jsx_factory_pragma_comment js_ast.Span\n\t// jsx_fragment_pragma_comment js_ast.Span\n\t// source_mapping_url js_ast.Span\n\tnumber f64\n\trescan_close_brace_as_template_token bool\n\tfor_global_name bool\n\t// json json\n\t// prev_error_loc logger.Loc\n}\n\npub enum TKind {\n\tt_end_of_file\n\tt_syntax_error\n\t// \"#!/usr/bin/env node\"\n\tt_hashbang\n\t// Literals\n\tt_no_substitution_template_literal // Contents are in lexer.StringLiteral ([]uint16)\n\tt_numeric_literal // Contents are in lexer.Number (float64)\n\tt_string_literal // Contents are in lexer.StringLiteral ([]uint16)\n\tt_big_integer_literal // Contents are in lexer.Identifier (string)\n\t// Pseudo-literals\n\tt_template_head // Contents are in lexer.StringLiteral ([]uint16)\n\tt_template_middle // Contents are in lexer.StringLiteral ([]uint16)\n\tt_template_tail // Contents are in lexer.StringLiteral ([]uint16)\n\t// Punctuation\n\tt_ampersand\n\tt_ampersand_ampersand\n\tt_asterisk\n\tt_asterisk_asterisk\n\tt_at\n\tt_bar\n\tt_bar_bar\n\tt_caret\n\tt_close_brace\n\tt_close_bracket\n\tt_close_paren\n\tt_colon\n\tt_comma\n\tt_dot\n\tt_dot_dot_dot\n\tt_equals_e