Git Product home page Git Product logo

vls's Introduction

⚠️ Warning (Please read this first) ⚠️

OFFICIAL EFFORTS ARE NOW LOCATED AT: https://github.com/vlang/v-analyzer

🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺 🔺

V Language Server

CI

V Language Server (also known as "VLS") is a LSP v3.15-compatible language server for the V programming language.

Installation

You can get the V language server on a variety of methods.

Via V CLI (Recommended)

Starting with V 0.3.1, you can now install and update VLS via the V CLI by simply executing the following command:

v ls --install

Pre-built/Precompiled Binaries

Pre-built binaries for Windows (x64), MacOS (x64/M1), and Linux (x64) can be found here.

VSCode

The official V VSCode extension provides built-in support for VLS. To install VLS, go to the V section of your editor's settings and check the "Enable VLS" setting. This will look for any existing installation of VLS and will download a copy if there's none.

If you want to use an existing copy of VLS, please refer to this guide.

Build from Source

NOTE: TCC, the default compiler shipped with V, is not recommended ATM due to some issues in the Tree Sitter's output.

To build the language server from source, you need to have the following:

  • GCC/Clang (Latest),
  • Git
  • V (0.2.2 and later).

NOTE: If you are downloading V from Homebrew and other community-maintained packages, please do v up first before proceeding.

Afterwards, open your operating system's terminal and execute the following:

## Clone the project:
git clone https://github.com/vlang/vls && cd vls

## Build the project
## Use "v run build.vsh gcc" if you're compiling VLS with GCC.
v run build.vsh clang

# The binary will be created in the `bin` directory inside the vls folder.

Usage

To use the language server, you need to have an editor with LSP support. See this link for a full list of supported editors.

VSCode, VSCodium, and other derivatives

GitHub Web Editor and VSCode Online are not supported yet at this moment. See this issue comment.

For Visual Studio Code and other derivatives, all you need to do is to install 0.1.4 or above versions of the V VSCode extension. Afterwards, go to settings and scroll to the V extension section. From there, enable VLS by checking the "Enable VLS" box.

If you have VLS downloaded in a custom directory, you need to input the absolute path of the vls language server executable to the "Custom Path" setting. If you cloned the repository and compiled it from source, the executable will be in the vls root directory. So make sure to add vls/bin/vls or vls/bin/vls.exe (for Windows).

Instructions

Sublime Text (3 and 4)

For Sublime Text, please install the LSP extension via Package Control. Afterwards, open the command palette, select Preferences: LSP Settings, and add the following configuration:

{
    "clients": {
        "vls": {
            "enabled": true,
            "command": ["v", "ls", "--socket"], // or ["<path-to-vls>", "--socket"] if you downloaded / compiled it manually
            "tcp_port": 5007,
            "selector": "source.v"
        }
    }
}

Be sure to install the Sublime V Plugin first in order for the language server to start properly.

NeoVim

For NeoVim, install nvim-lspconfig and install vls on your system.

Then, you open your lsp configuration and add the following to enable the usage of the vls require('lspconfig').vls.setup{}.

Afterwards, just paste the following line into your neovim configuration vim.cmd([[au BufNewFile,BufRead *.v set filetype=vlang]]).

Vim

For Vim, please install vim-lsp and vim-lsp-settings. Afterwards, open any .v file, and execute :LspInstallServer.

See the VLS extension for detailed instructions on how to install VLS on Panic Nova.

IntelliJ IDEA, GoLand, and other derivatives

VLS on JetBrains / IntelliJ-based IDEs does not work at this moment. See issue 52 for more details.

You can use IntelliJ V plugin instead: https://intellij-v.github.io

Other Editors

For other editors, please refer to the plugin's/editor's documentation for instructions on how to setup an LSP server connection.

Crash Reports

VLS generates a report and notifies the user by default when something is wrong. These crash reports are accessible which can be found inside C:\Users\<user_name\.vls\reports for Windows and ~/.vls/reports for both Linux and MacOS. The contents of the file can be then pasted into the issue tracker form.

Bugs that are not crashes however can still generate reports by passing the --generate-report flag to the language server CLI.

Logging

VLS provides a log file (${workspacePath}/vls.log) for debugging the language server incoming requests and outgoing responses / notifications. By default, this can only be saved and accessed on server crash. To save the log on every exit, pass the --debug flag to the language server CLI.

Frequently Asked Questions

What is a language server?

A language server is a software that understands the code provided by the user and provides information to supported text editors and IDEs. Think of it as a compiler that does not emit an executable but a format that your text editor can use in order for you to work on a project better and faster.

Some of the commonly used features such as autocompletion / IntelliSense, go to definition, and diagnostics are directly handled by the language server itself and not by the dedicated language extensions.

What does it support?

Currently, VLS supports the following language features:

Feature Name Supported? Notes
Diagnostics Via v -check
Completion Needs polish
Hover
Signature Help
Go to Declaration
Go to Definition
Go to Implementation Limited to interfaces for now.
References
Document Highlight
Code Lens Stub implementation
Code Action
Document Symbol / Outline
Workspace Symbols Limited to opened documents.
Document Link Stub implementation
Formatting Via v fmt
Range Formatting
Type Formatting
Rename
Folding Range

For a full list of features/methods VLS supports, see CAPABILITIES.md.

Contributing

Submitting a pull request

  • Fork it (https://github.com/vlang/vls/fork)
  • Create your feature branch (git checkout -b my-new-feature)
  • Commit your changes (git commit -am 'Add some feature')
  • Push to the branch (git push origin my-new-feature)
  • Create a new Pull Request

Contributors

vls's People

Contributors

chaosunity avatar danieldaeschle avatar delta456 avatar ekopalypse avatar enghitalo avatar gladear avatar henrixounez avatar hillerstorm avatar hungrybluedev avatar i582 avatar iacore avatar jarred-sumner avatar jotrorox avatar krotki avatar medvednikov avatar nedpals avatar shyim avatar sirzenith avatar spaceface777 avatar spytheman avatar surmanpp avatar timbasel avatar ttytm avatar vincenzopalazzo avatar ylluminarious avatar ylluminate avatar yochem avatar yuyi98 avatar zakuro9715 avatar zhouzhuojie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vls's Issues

Building vls fails in docker image

Dockerfile

FROM thevlang/vlang

RUN apt-get update && \
    apt-get install curl -y && \
    apt-get install unzip -y

RUN curl -L -o vls.zip https://github.com/vlang/vls/archive/master.zip && \
    unzip vls && \
    cd vls-master && \
    v -prod cmd/vls

Output:

 v -v cmd/vls
...
builder.cc() pref.out_name="/workspaces/v-vscode-remote-development-template/vls-master/cmd/vls/vls"
build_thirdparty_obj_files: v.table.cflags: [CFlag{ name: "-I" value: "/opt/vlang/thirdparty/cJSON" mod: "json" os: "" cached: "" }, CFlag{ name: "" value: "/opt/vlang/thirdparty/cJSON/cJSON.o" mod: "json" os: "" cached: "/root/.vmodules/cache/9d/9d98e153e152effa36bc10350274dcac.o" }]
cc() isprod=false outname=/workspaces/v-vscode-remote-development-template/vls-master/cmd/vls/vls

=====================
> C compiler cmd: /opt/vlang/thirdparty/tcc/tcc.exe "@/tmp/v/vls.3261355545972556428.tmp.c.rsp"
=====================
519.632  ms C tcc.exe
>> remove tmp file: /tmp/v/vls.3261355545972556428.tmp.c
>> remove tmp file: /tmp/v/vls.3261355545972556428.tmp.c.rsp
/opt/vlang/thirdparty/tcc/tcc.exe
=========

Trying to build VLS in dev-container https://github.com/stereobooster/v-vscode-remote-development-template

Unify text document URI conversion methods

Currently there are three methods for converting the text document URI from an LSP request to a real filesystem path and vice versa: fspath_to_uri_str, fspath_to_uri, uri_str_to_fspath each with different return types (all except for fspath_to_uri_str returns an option). Would be cool if we can simplify things and boil down to two functions

documentSymbol crash

Here is the vls.log. Notice that the JSON is malformed at the end -- it crashed before it finished writing. You'll ned to remove the last two lines for LSP inspector to show something useful.

[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

Suggestion: Make the --debug flag optionally accept a path and set the path to a logs directory for vls itself. That way, clients can enable it to log by default so that its easier to spot when it crashes.

File that crashes:

module lexer

pub struct Lexer {
pub:
	// log                             logger.Log
	// source                          logger.Source
	current                   int
	start                     int
	end                       int
	approximate_newline_count int
	// LegacyOctalLoc                  logger.Loc
	// PreviousBackslashQuoteInJSX     logger.Range
	token                        T
	has_newline_before           bool
	has_pure_comment_before      bool
	preserve_all_comments_before bool
	is_legacy_octal_literal      bool
	// comments_to_preserve_before        []js_ast.Comment
	// all_original_comments             []js_ast.Comment
	code_point     rune
	string_literal []uint16
	identifier     string
	// jsx_factory_pragma_comment         js_ast.Span
	// jsx_fragment_pragma_comment        js_ast.Span
	// source_mapping_url                js_ast.Span
	number                               f64
	rescan_close_brace_as_template_token bool
	for_global_name                      bool
	// json                            json
	// prev_error_loc                    logger.Loc
}

pub enum TKind {
	t_end_of_file
	t_syntax_error
	// "#!/usr/bin/env node"
	t_hashbang
	// Literals
	t_no_substitution_template_literal // Contents are in lexer.StringLiteral ([]uint16)
	t_numeric_literal // Contents are in lexer.Number (float64)
	t_string_literal // Contents are in lexer.StringLiteral ([]uint16)
	t_big_integer_literal // Contents are in lexer.Identifier (string)
	// Pseudo-literals
	t_template_head // Contents are in lexer.StringLiteral ([]uint16)
	t_template_middle // Contents are in lexer.StringLiteral ([]uint16)
	t_template_tail // Contents are in lexer.StringLiteral ([]uint16)
	// Punctuation
	t_ampersand
	t_ampersand_ampersand
	t_asterisk
	t_asterisk_asterisk
	t_at
	t_bar
	t_bar_bar
	t_caret
	t_close_brace
	t_close_bracket
	t_close_paren
	t_colon
	t_comma
	t_dot
	t_dot_dot_dot
	t_equals_equals
	t_equals_equals_equals
	t_equals_greater_than
	t_exclamation
	t_exclamation_equals
	t_exclamation_equals_equals
	t_greater_than
	t_greater_than_equals
	t_greater_than_greater_than
	t_greater_than_greater_than_greater_than
	t_less_than
	t_less_than_equals
	t_less_than_less_than
	t_minus
	t_minus_minus
	t_open_brace
	t_open_bracket
	t_open_paren
	t_percent
	t_plus
	t_plus_plus
	t_question
	t_question_dot
	t_question_question
	t_semicolon
	t_slash
	t_tilde
	// Assignments (keep in sync with IsAssign() below)
	t_ampersand_ampersand_equals
	t_ampersand_equals
	t_asterisk_asterisk_equals
	t_asterisk_equals
	t_bar_bar_equals
	t_bar_equals
	t_caret_equals
	t_equals
	t_greater_than_greater_than_equals
	t_greater_than_greater_than_greater_than_equals
	t_less_than_less_than_equals
	t_minus_equals
	t_percent_equals
	t_plus_equals
	t_question_question_equals
	t_slash_equals
	// Class-private fields and methods
	t_private_identifier
	// Identifiers
	t_identifier // Contents are in lexer.Identifier (string)
	t_escaped_keyword // A keyword that has been escaped as an identifer
	// Reserved words
	t_break
	t_case
	t_catch
	t_class
	t_const
	t_continue
	t_debugger
	t_default
	t_delete
	t_do
	t_else
	t_enum
	t_export
	t_extends
	t_false
	t_finally
	t_for
	t_function
	t_if
	t_import
	t_in
	t_instanceof
	t_new
	t_null
	t_return
	t_super
	t_switch
	t_this
	t_throw
	t_true
	t_try
	t_typeof
	t_var
	t_void
	t_while
	t_with
}

pub fn (t TKind) is_assign() bool {
	return int(t) >= int(TKind.t_ampersand_ampersand_equals) && int(t) <= int(TKind.t_slash_equals)
}

Initialize message does not get parsed correctly

On Windows, the following initialize message

Content-Length: 2284

{"jsonrpc": "2.0", "id": 0, "method": "initialize", "params": {"processId": 2020, "rootUri": "file:///D:/scripts/v", "initializationOptions": {}, "capabilities": {"workspace": {"applyEdit": true, "workspaceEdit": {"documentChanges": false}, "didChangeConfiguration": {"dynamicRegistration": false}, "didChangeWatchedFiles": {"dynamicRegistration": false}, "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]}}, "executeCommand": {"dynamicRegistration": true}, "configuration": true, "workspaceFolders": true}, "textDocument": {"publishDiagnostics": {"relatedInformation": true}, "synchronization": {"dynamicRegistration": true, "willSave": true, "willSaveWaitUntil": false, "didSave": true}, "completion": {"dynamicRegistration": true, "contextSupport": true, "completionItem": {"snippetSupport": true, "commitCharactersSupport": true, "documentationFormat": ["markdown", "plaintext"], "deprecatedSupport": true}, "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"]}}, "definition": {"dynamicRegistration": 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]}}, "codeAction": {"dynamicRegistration": true}, "codeLens": {"dynamicRegistration": true}, "formatting": {"dynamicRegistration": true}, "rangeFormatting": {"dynamicRegistration": true}, "onTypeFormatting": {"dynamicRegistration": true}, "rename": {"dynamicRegistration": true}, "documentLink": {"dynamicRegistration": true}, "typeDefinition": {"dynamicRegistration": true}, "implementation": {"dynamicRegistration": true}, "colorProvider": {"dynamicRegistration": true}, "foldingRange": {"dynamicRegistration": false, "rangeLimit": 5000, "lineFoldingOnly": true}}}, "trace": "off", "workspaceFolders": null}}

does result in a -32700 Invalid Json message.

Content-Length: 96\r\r\n  <-- seems to be wrong, there is a \n missing
{"jsonrpc":"2.0","id":0,"error":{"code":-32700,"message":"Invalid JSON.","data":""},"result":""}

Similar messages sent to rls (rust language server) or pyls (python language server) are working.

Server crashes with invalid code.

I've accidentally typed a ? inside an interface definition and noticed that it crashed the server. I did something like this:

interface MyInterface {
  ?duh() string
}

That was the error:

V panic: get_type_symbol: invalid type (typ=0 idx=0). Compiler bug. This should never happen. Please create a GitHub issue.

0   vls                                 0x000000010b205498 v__checker__Checker_check + 408
1   vls                                 0x000000010b226890 vls__Vls_process_file + 3344
2   vls                                 0x000000010b23256e vls__Vls_start_loop + 62
3   vls                                 0x000000010b2335d2 main__run_cli + 3378
4   vls                                 0x000000010b16c687 cli__Command_parse + 5047
5   vls                                 0x000000010b238193 main + 1731
6   vls                                 0x000000010b156f94 start + 52

VLS get_type_symbol invalid type

Opened up vscodium.

[Info  - 15:36:01] VLS Version: 0.0.1, OS: windows 64
[Info  - 15:36:01] Client / Editor: VSCodium 1.54.3
V panic: get_type_symbol: invalid type (typ=0 idx=0). Compiler bug. This should never happen. Please create a GitHub issue.

print_backtrace_skipping_top_frames is not implemented
[Error - 15:36:02] Connection to server is erroring. Shutting down server.
[Error - 15:36:02] Connection to server is erroring. Shutting down server.
[Error - 15:36:02] Connection to server is erroring. Shutting down server.
[Error - 15:36:02] Connection to server is erroring. Shutting down server.
[Error - 15:36:02] Connection to server is erroring. Shutting down server.

Output of v version

V 0.2.2 92f19f5

vls: displays other methods coming from 'builtin' modules

Issue description

VLS import suggestion is displaying bunch of other methods from the builtin module?

Steps to reproduce the issue

  1. Set up VLS with VScode
  2. type import and press space bar and look for suggestions.

What's the expected result?

When user types: import and space bar to see for suggestions. It should display every modules first like in the example A:

IMAGE A
As you can see, on the image A, the Go's language server displays in a clean format of the modules.


What's the actual result?

The VLS is recommending modules with builtin methods? (this was discussed on Discord at #vls text-chat). Look at the image B

IMAGE B
Image B, the VLS displays modules from builtin.

There was a discussion on discord regarding the methods were coming from the builtin module. Could it be better if it didn't clutter? Or maybe we can make a flag where user can explicitly ask the VLS to display these methods?

build fail when use -usecache

os:macos
v: V 0.2.2 5aaeac7, timestamp: 2021-02-02 12:06:54 +0200

build sucess with: v -prop cmd/vls
build fail with: v -prod -usecache cmd/vls

here is the error message:

==================
ld: 83 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

==================
(Use v -cg to print the entire error message)

builder error:

==================
C error. This should never happen.

If you were not working with C interop, please raise an issue on GitHub:

https://github.com/vlang/v/issues/new/choose

You can also use #help on Discord: https://discord.gg/vlang

latest vls can't compile

Hi there. It seems that I couldn't compile the latest version of vls using the compiler from vlang website (v0.2). I'm using Linux. Here's the error, ask me for more detail if needed. Thanks in advance!

image

V panic: as cast: cannot cast `v.ast.StringLiteral` to `v.ast.Ident`

If you type ''. into Visual Studio Code with VLS running (vls from HEAD and V from HEAD), it crashes with the exception below.

Here is a video:

Screen.Recording.2021-04-08.at.10.43.00.PM.mov
[Info  - 10:42:47 PM] VLS Version: 0.0.1, OS: macos 64
[Info  - 10:42:47 PM] Client / Editor: Visual Studio Code 1.55.1
V panic: as cast: cannot cast `v.ast.StringLiteral` to `v.ast.Ident`
0   vls                                 0x0000000106bb4304 vls__Vls_completion + 5476
1   vls                                 0x0000000106bcd7ae vls__Vls_start_loop + 62
2   vls                                 0x0000000106bce9da main__run_cli + 3834
3   vls                                 0x0000000106adeef7 cli__Command_parse + 5031
4   vls                                 0x0000000106bd36c9 main + 1737
5   vls                                 0x0000000106ac8f14 start + 52
6   ???                                 0x0000000000000001 0x0 + 1
[Info  - 10:43:05 PM] Connection to server got closed. Server will restart.
[Error - 10:43:05 PM] Request textDocument/codeLens failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:05 PM] Request textDocument/codeLens failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:05 PM] Request textDocument/codeLens failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:05 PM] Request textDocument/codeLens failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:05 PM] Request textDocument/codeLens failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:05 PM] Request textDocument/completion failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Info  - 10:43:05 PM] VLS Version: 0.0.1, OS: macos 64
[Info  - 10:43:05 PM] Client / Editor: Visual Studio Code 1.55.1
V panic: as cast: cannot cast `v.ast.StringLiteral` to `v.ast.Ident`
0   vls                                 0x0000000106c1c304 vls__Vls_completion + 5476
1   vls                                 0x0000000106c357ae vls__Vls_start_loop + 62
2   vls                                 0x0000000106c369da main__run_cli + 3834
3   vls                                 0x0000000106b46ef7 cli__Command_parse + 5031
4   vls                                 0x0000000106c3b6c9 main + 1737
5   vls                                 0x0000000106b30f14 start + 52
6   ???                                 0x0000000000000001 0x0 + 1
[Info  - 10:43:05 PM] Connection to server got closed. Server will restart.
[Error - 10:43:05 PM] Request textDocument/completion failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:05 PM] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Info  - 10:43:05 PM] VLS Version: 0.0.1, OS: macos 64
[Info  - 10:43:05 PM] Client / Editor: Visual Studio Code 1.55.1
V panic: as cast: cannot cast `v.ast.StringLiteral` to `v.ast.Ident`
0   vls                                 0x0000000105028304 vls__Vls_completion + 5476
1   vls                                 0x00000001050417ae vls__Vls_start_loop + 62
2   vls                                 0x00000001050429da main__run_cli + 3834
3   vls                                 0x0000000104f52ef7 cli__Command_parse + 5031
4   vls                                 0x00000001050476c9 main + 1737
5   vls                                 0x0000000104f3cf14 start + 52
6   ???                                 0x0000000000000001 0x0 + 1
[Info  - 10:43:06 PM] Connection to server got closed. Server will restart.
[Error - 10:43:06 PM] Request textDocument/completion failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:06 PM] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Info  - 10:43:06 PM] VLS Version: 0.0.1, OS: macos 64
[Info  - 10:43:06 PM] Client / Editor: Visual Studio Code 1.55.1
V panic: as cast: cannot cast `v.ast.StringLiteral` to `v.ast.Ident`
0   vls                                 0x00000001017d5304 vls__Vls_completion + 5476
1   vls                                 0x00000001017ee7ae vls__Vls_start_loop + 62
2   vls                                 0x00000001017ef9da main__run_cli + 3834
3   vls                                 0x00000001016ffef7 cli__Command_parse + 5031
4   vls                                 0x00000001017f46c9 main + 1737
5   vls                                 0x00000001016e9f14 start + 52
6   ???                                 0x0000000000000001 0x0 + 1
[Info  - 10:43:06 PM] Connection to server got closed. Server will restart.
[Error - 10:43:06 PM] Request textDocument/completion failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:06 PM] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Info  - 10:43:06 PM] VLS Version: 0.0.1, OS: macos 64
[Info  - 10:43:06 PM] Client / Editor: Visual Studio Code 1.55.1
V panic: as cast: cannot cast `v.ast.StringLiteral` to `v.ast.Ident`
0   vls                                 0x0000000109a80304 vls__Vls_completion + 5476
1   vls                                 0x0000000109a997ae vls__Vls_start_loop + 62
2   vls                                 0x0000000109a9a9da main__run_cli + 3834
3   vls                                 0x00000001099aaef7 cli__Command_parse + 5031
4   vls                                 0x0000000109a9f6c9 main + 1737
5   vls                                 0x0000000109994f14 start + 52
6   ???                                 0x0000000000000001 0x0 + 1
[Error - 10:43:06 PM] Connection to server got closed. Server will not be restarted.
[Error - 10:43:06 PM] Request textDocument/completion failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)
[Error - 10:43:06 PM] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
    at Object.connectionOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:1045:52)
    at Object._clientOptions [as dispose] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2414:123)
    at w.fillInitializeParams (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2432:27)
    at w.this [as handleConnectionClosed] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/node/main.js:158:15)
    at t (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-languageclient/lib/common/client.js:2413:45)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.timer [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at Y (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/connection.js:274:33)
    at r._callbacks [as invoke] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:64:5)
    at o.partialMessageEmitter [as fire] (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/events.js:122:18)
    at m.fireClose (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:43:21)
    at Socket.<anonymous> (/Users/jarred/.vscode/extensions/vlanguage.vscode-vlang-0.1.8/node_modules/vscode-jsonrpc/lib/common/messageReader.js:131:45)
    at Socket.emit (events.js:327:22)
    at Pipe.<anonymous> (net.js:674:12)

VLS can't compile

V 0.2 a2cd1b1 on Big Sur

git clone https://github.com/nedpals/vls2.git vls && cd vls/
v -prod cmd/vls

lsp/signature_help.v:36:12: error: cannot register struct lsp.SignatureInformation, another type with this name exists
34 | }
35 |
36 | pub struct SignatureInformation {
| ~~~~~~~~~~~~~~~~~~~~
37 | pub mut:
38 | label string

vls uses >80% ram (of 8GB)

using this test file:

import gg
fn main()
{
  gg.
}

If I trigger autocomplete on the gg. the vls ram usage quickly balloons and freezes the system until I sysrq+f.
I'm using nvim-lspconfig instead of vscode but I don't think that should change too much.

Document outline is ordered alphabetically and not as in the code

Take for example the first part of the outline for fmt.v. All entries are sorted in alphabetical order and not as they show up in the actual file.
This is a lot harder to use for developers that are somewhat familiar with the source and doesn't help newcomers to get there.
image

formatter incorrectly removes lines

I have a file named decbin.v:

fn decbin(n u64) string {
    mut s := ''
    mut u := n

    for u > 0 {
        s += if u & 1 == 1 { '1' } else { '0'}
        u = u >> 1
    }

    return s.reverse()
}

println(decbin(7))
println(decbin(64))
println(decbin(-4))

When this file is saved, the 3 println lines at the end (plus the blank line above them) are stripped from the file. Not good.

Perfectly valid V file, runs fine as-is.

Compile with -autofree

Just a reminder to compile vls with -autofree whenever there are new changes to the autofree engine aspect of the compiler. Compiling it with -autofree right now causes C errors.

LSP does not work

I am use:

I want to use the LSP in VS Code and get this error:

Error code (click to show)
[Info  - 22:05:08] VLS Version: 0.0.1, OS: windows 64
[Info  - 22:05:08] Client / Editor: Visual Studio Code 1.54.3
print_backtrace_skipping_top_frames is not implemented
[Info  - 22:05:08] Connection to server got closed. Server will restart.
[Error - 22:05:08] Request textDocument/codeLens failed.
Error: Connection got disposed.
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:39411)
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119583)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119796)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:180184)
	at t (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:117885)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at Y (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:28669)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at fireClose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:53238)
	at Socket.<anonymous> (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:54023)
	at Socket.emit (events.js:315:20)
	at Pipe.<anonymous> (net.js:674:12)
[Error - 22:05:08] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:39411)
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119583)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119796)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:180184)
	at t (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:117885)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at Y (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:28669)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at fireClose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:53238)
	at Socket.<anonymous> (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:54023)
	at Socket.emit (events.js:315:20)
	at Pipe.<anonymous> (net.js:674:12)
[Info  - 22:05:09] VLS Version: 0.0.1, OS: windows 64
[Info  - 22:05:09] Client / Editor: Visual Studio Code 1.54.3
print_backtrace_skipping_top_frames is not implemented
[Info  - 22:05:09] Connection to server got closed. Server will restart.
[Error - 22:05:09] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:39411)
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119583)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119796)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:180184)
	at t (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:117885)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at Y (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:28669)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at m.fireClose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:49666)
	at Socket.<anonymous> (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:51251)
	at Socket.emit (events.js:327:22)
	at Pipe.<anonymous> (net.js:674:12)
[Info  - 22:05:09] VLS Version: 0.0.1, OS: windows 64
[Info  - 22:05:09] Client / Editor: Visual Studio Code 1.54.3
print_backtrace_skipping_top_frames is not implemented
[Info  - 22:05:09] Connection to server got closed. Server will restart.
[Error - 22:05:09] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:39411)
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119583)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119796)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:180184)
	at t (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:117885)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at Y (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:28669)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at m.fireClose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:49666)
	at Socket.<anonymous> (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:51251)
	at Socket.emit (events.js:327:22)
	at Pipe.<anonymous> (net.js:674:12)
[Info  - 22:05:09] VLS Version: 0.0.1, OS: windows 64
[Info  - 22:05:09] Client / Editor: Visual Studio Code 1.54.3
print_backtrace_skipping_top_frames is not implemented
[Info  - 22:05:09] Connection to server got closed. Server will restart.
[Error - 22:05:09] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:39411)
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119583)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119796)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:180184)
	at t (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:117885)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at Y (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:28669)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at m.fireClose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:49666)
	at Socket.<anonymous> (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:51251)
	at Socket.emit (events.js:327:22)
	at Pipe.<anonymous> (net.js:674:12)
[Info  - 22:05:09] VLS Version: 0.0.1, OS: windows 64
[Info  - 22:05:09] Client / Editor: Visual Studio Code 1.54.3
print_backtrace_skipping_top_frames is not implemented
[Error - 22:05:09] Connection to server got closed. Server will not be restarted.
[Error - 22:05:09] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:39411)
	at Object.dispose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119583)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:119796)
	at w.handleConnectionClosed (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:180184)
	at t (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:117885)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at Y (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:28669)
	at r.invoke (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41024)
	at o.fire (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:41785)
	at m.fireClose (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:49666)
	at Socket.<anonymous> (c:\Users\koplenov\.vscode\extensions\vlanguage.vscode-vlang-0.1.8\out\extension.js:1:51251)
	at Socket.emit (events.js:327:22)
	at Pipe.<anonymous> (net.js:674:12)

On this block of code:

import vweb

struct App {
    vweb.Context
}

fn main() {
	vweb.run<App>(8080)
}

['/hello/:user']
fn (mut app App) hello_user(user string) vweb.Result {
    return app.text('Hello $user')
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.