{"id":15144366,"url":"https://github.com/vlang/v-analyzer","last_synced_at":"2025-04-04T16:12:13.175Z","repository":{"id":214963391,"uuid":"737797778","full_name":"vlang/v-analyzer","owner":"vlang","description":"The @vlang language server, for all your editing needs like go-to-definition, code completion, type hints, and more.","archived":false,"fork":false,"pushed_at":"2025-03-12T23:33:50.000Z","size":42239,"stargazers_count":144,"open_issues_count":20,"forks_count":20,"subscribers_count":27,"default_branch":"main","last_synced_at":"2025-03-28T15:09:57.631Z","etag":null,"topics":["bindings","language-server","lsp","lsp-server","parser","tree-sitter"],"latest_commit_sha":null,"homepage":"","language":"V","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vlang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-01T14:41:10.000Z","updated_at":"2025-03-24T08:59:22.000Z","dependencies_parsed_at":"2024-04-20T11:43:48.645Z","dependency_job_id":"9b2908f1-81b6-40f9-ad28-1675519308ba","html_url":"https://github.com/vlang/v-analyzer","commit_stats":{"total_commits":498,"total_committers":19,"mean_commits":"26.210526315789473","dds":0.3473895582329317,"last_synced_commit":"4f93826aeb31066eb241f4ccbca61f052239803f"},"previous_names":["vlang/v-analyzer"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlang%2Fv-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlang%2Fv-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlang%2Fv-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlang%2Fv-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vlang","download_url":"https://codeload.github.com/vlang/v-analyzer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208142,"owners_count":20901570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bindings","language-server","lsp","lsp-server","parser","tree-sitter"],"created_at":"2024-09-26T10:40:56.648Z","updated_at":"2025-04-04T16:12:13.156Z","avatar_url":"https://github.com/vlang.png","language":"V","funding_links":[],"categories":["Other"],"sub_categories":["Editor plugins"],"readme":"\u003cimg width=\"200px\" src=\"https://github.com/vlang/v-analyzer/blob/2d5d12e4b82ce8d695576957145ff27a33a988c2/docs/cover-light.png#gh-light-mode-only\"\u003e\n\u003cimg width=\"200px\" src=\"https://github.com/vlang/v-analyzer/blob/2d5d12e4b82ce8d695576957145ff27a33a988c2/docs/cover-dark.png#gh-dark-mode-only\"\u003e\n\n# v-analyzer\n\n[![][badge__vscode_ext]](https://marketplace.visualstudio.com/items?itemName=VOSCA.vscode-v-analyzer)\n[![][badge__build_ci]](https://github.com/vlang/v-analyzer/actions/workflows/build_ci.yml?query=branch%3Amain)\n[![][badge__tests_ci]](https://github.com/vlang/v-analyzer/actions/workflows/analyzer_tests.yml?query=branch%3Amain)\n[![][badge__tree_sitter_ci]](https://github.com/vlang/v-analyzer/actions/workflows/tree_sitter_v.yml?query=branch%3Amain)\n[![][badge__vscode_ext_ci]](https://github.com/vlang/v-analyzer/actions/workflows/vscode_extension_tests.yml?query=branch%3Amain)\n\nBring IDE features for the V programming language to VS Code, Vim, and other editors.\n\nThe features provided by v-analyzer include:\n\n- code completion/IntelliSense\n- go to definition, type definition\n- find all references, document symbol, symbol renaming\n- types and documentation on hover\n- inlay hints for types and some construction like `or` block\n- semantic syntax highlighting\n- formatting\n- signature help\n\n## Installation\n\n### Linux, macOS, Windows\nNote: the following command will download `install.vsh` to the current directory, then \nrun it, and then *delete it*. If there is a pre-existing file with this name, make sure it\nis safe, when it is overwritten/deleted, or change the current directory (the script itself\ncan be run from anywhere).\n\n```sh \nv download -RD https://raw.githubusercontent.com/vlang/v-analyzer/main/install.vsh\n```\n\nNote: if you get messages about `response does not start with HTTP/`, try going to the\nmain V repository, then do `./v -d use_openssl cmd/tools/vdownload.v` .\nAfter that, retry the same command:\n```sh \nv download -RD https://raw.githubusercontent.com/vlang/v-analyzer/main/install.vsh\n```\n\n## Pre-built binaries\n\nYou can download pre-built binaries from the [release page](https://github.com/vlang/v-analyzer/releases).\nCurrently, we provide binaries for Linux (x64), macOS (x64 and ARM), and Windows (x64).\n\n## Building from source\n\n\u003e [!NOTE]\n\u003e This repository uses Git submodules.\n\u003e In practice, this means that you either have to:\n\u003e\n\u003e ```sh\n\u003e git clone --filter=blob:none --recursive --shallow-submodules https://github.com/vlang/v-analyzer\n\u003e ```\n\u003e\n\u003e ... or, if you used just `git clone https://github.com/vlang/v-analyzer`, you can execute below\n\u003e inside your local `v-analyzer` clone:\n\u003e\n\u003e ```sh\n\u003e git submodule init \u0026\u0026 git submodule update\n\u003e ```\n\u003e\n\u003e If you do not do either, the symptom is that when you try to build v-analyzer, you will get a\n\u003e C compiler message, about `lib.c not found`\n\n\u003e [!TIP]\n\u003e On Windows, use GCC for building, as TCC can run into some issues.\n\nUpdate V to the latest version:\n\n```bash\nv up\n```\n\nYou can build a debug or release version of the binary.\nThe debug version will be slower, but faster to compile.\n\n```bash\nv build.vsh debug\n```\n\n```bash\nv build.vsh release\n```\n\nThe compiled binary will be located in the `bin/` folder.\n\n## Setup\n\nAdd the `bin/` folder to your `$PATH` environment variable to make the `v-analyzer` command easily\naccessible.\n\nYou can also specify the path to the binary in your VS Code settings:\n\n```json\n{\n\t\"v-analyzer.serverPath\": \"/path/to/v-analyzer/bin/v-analyzer\"\n}\n```\n\n\u003e **Note**\n\u003e Restart VS Code after changing the settings or PATH.\n\n### Config\n\nv-analyzer is configured using global or local config.\nThe global config is located in `~/.config/v-analyzer/config.toml`, changing it will affect all\nprojects.\n\nA local config can be created with the `v-analyzer init` command at the root of the project.\nOnce created, it will be in `./.v-analyzer/config.toml`.\nEach setting in the config has a detailed description.\n\nPay attention to the `custom_vroot` setting, if v-analyzer cannot find where V was installed, then\nyou will need to specify the path to it manually in this field.\n\n## Updating\n\nTo update `v-analyzer` to the latest version, run:\n\n```bash\nv-analyzer up\n```\n\nYou can also update to a nightly version:\n\n```bash\nv-analyzer up --nightly\n```\n\n\u003e **Note**\n\u003e In the nightly version you will get the latest changes, but they may not be stable!\n\n## VS Code extension\n\nThe VS Code extension is available via the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=VOSCA.vscode-v-analyzer).\nThe source code for extension is contained in the [`editors/code`](https://github.com/vlang/v-analyzer/tree/main/editors/code) folder of this repository.\n\n## NVIM LSP / Mason\n\nFor Neovim users, v-analyzer is available via [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#v_analyzer) plugin.\nIt is part of the [mason registry](https://mason-registry.dev/registry/list#v-analyzer) and could be installed with both Neovim plugins:\n- [mason.nvim](https://github.com/williamboman/mason.nvim) with `:MasonInstall v-analyzer` command\n- [mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim) with `:LspInstall` command\n\n## Authors\n\n- `jsonrpc`, `lsp`, `tree_sitter_v` modules written initially by\n  [VLS authors](https://github.com/vlang/vls) and after that in 2023 it was modified by the\n  [VOSCA](https://github.com/vlang-association).\n\n## Thanks\n\n- [VLS](https://github.com/vlang/vls) authors for the initial Language Server implementation!\n- [vscode-vlang](https://github.com/vlang/vscode-vlang) authors for the first VS Code extension!\n- [rust-analyzer](https://github.com/rust-lang/rust-analyzer) and [gopls](https://github.com/golang/tools/tree/master/gopls) for the inspiration!\n- [Tree-sitter](https://github.com/tree-sitter/tree-sitter) authors for the cool parsing library!\n\n## License\n\nThis project is under the **MIT License**.\nThe full license text can be found in the [LICENSE](https://github.com/vlang/v-analyzer/blob/main/LICENSE) file.\n\n[badge__vscode_ext]: https://img.shields.io/badge/VS_Code-extension-1da2e2?logo=visualstudiocode\u0026logoWidth=11\u0026logoColor=959da5\u0026labelColor=333\n[badge__build_ci]: https://img.shields.io/github/actions/workflow/status/vlang/v-analyzer/build_ci.yml?style=flat-rounded\u0026branch=main\u0026logo=github\u0026\u0026logoColor=959da5\u0026labelColor=333\u0026label=Build\n[badge__tests_ci]: https://img.shields.io/github/actions/workflow/status/vlang/v-analyzer/analyzer_tests.yml?style=flat-rounded\u0026branch=main\u0026logo=github\u0026\u0026logoColor=959da5\u0026labelColor=333\u0026label=Analyzer\n[badge__tree_sitter_ci]: https://img.shields.io/github/actions/workflow/status/vlang/v-analyzer/tree_sitter_v.yml?style=flat-rounded\u0026branch=main\u0026logo=github\u0026\u0026logoColor=959da5\u0026labelColor=333\u0026label=Tree-sitter\n[badge__vscode_ext_ci]: https://img.shields.io/github/actions/workflow/status/vlang/v-analyzer/vscode_extension_tests.yml?style=flat-rounded\u0026branch=main\u0026logo=github\u0026\u0026logoColor=959da5\u0026labelColor=333\u0026label=VS%20Code%20Extension\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlang%2Fv-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvlang%2Fv-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlang%2Fv-analyzer/lists"}