{"id":31650296,"url":"https://github.com/ton-blockchain/ton-language-server","last_synced_at":"2026-02-18T04:32:06.146Z","repository":{"id":303372253,"uuid":"1014391492","full_name":"ton-blockchain/ton-language-server","owner":"ton-blockchain","description":"An extension for VS Code and a language server for LSP-based editors. Supports Tolk, FunC, Fift, TL/B, TASM and BoC","archived":false,"fork":false,"pushed_at":"2026-02-03T20:40:58.000Z","size":8473,"stargazers_count":26,"open_issues_count":16,"forks_count":10,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-03T21:15:31.018Z","etag":null,"topics":["fift","func","tolk","ton"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=ton-core.vscode-ton","language":"TypeScript","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/ton-blockchain.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-05T16:22:49.000Z","updated_at":"2026-02-03T10:11:37.000Z","dependencies_parsed_at":"2025-10-18T15:02:28.247Z","dependency_job_id":"ec06608d-0437-452f-9d5b-89cee4c744dd","html_url":"https://github.com/ton-blockchain/ton-language-server","commit_stats":null,"previous_names":["ton-blockchain/ton-language-server"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/ton-blockchain/ton-language-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ton-blockchain%2Fton-language-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ton-blockchain%2Fton-language-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ton-blockchain%2Fton-language-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ton-blockchain%2Fton-language-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ton-blockchain","download_url":"https://codeload.github.com/ton-blockchain/ton-language-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ton-blockchain%2Fton-language-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29568452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T04:18:28.490Z","status":"ssl_error","status_checked_at":"2026-02-18T04:13:49.018Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["fift","func","tolk","ton"],"created_at":"2025-10-07T08:11:54.846Z","updated_at":"2026-02-18T04:32:01.129Z","avatar_url":"https://github.com/ton-blockchain.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TON Language Server\n\nLanguage server and an [extension for VS Code](./editors/code) and VSCode-based editors with comprehensive support for\nTON Blockchain languages and technologies including Tolk, FunC, Fift assembly, TL-B, BoC and Blueprint.\n\n**[Features] • [Installation] • [Troubleshooting]**\n\n[Features]: #features\n[Installation]: #installation\n[Troubleshooting]: #troubleshooting\n\n[![Telegram](https://img.shields.io/badge/TON_Community-white?logo=telegram\u0026style=flat)](https://t.me/tondev_eng)\n[![Visual Studio Marketplace Downloads](https://img.shields.io/visual-studio-marketplace/d/ton-core.vscode-ton?color=white\u0026labelColor=white\u0026logo=tsnode\u0026logoColor=black)](https://marketplace.visualstudio.com/items?itemName=ton-core.vscode-ton)\n[![Open VSX Downloads](https://img.shields.io/open-vsx/dt/ton-core/vscode-ton?color=white\u0026labelColor=white\u0026logo=vscodium\u0026logoColor=black)](https://open-vsx.org/extension/ton-core/vscode-ton)\n\n---\n\n## Features\n\nTolk support includes:\n\n- Semantic syntax highlighting\n- Code completion with auto import, postfix completion, snippets, imports completion\n- Go to definition, type definition\n- Find all references, workspace symbol search, symbol renaming\n- Automatic import updates when renaming and moving files\n- Types and documentation on hover\n- Inlay hints for types, parameter names, and more\n- On-the-fly inspections with quick fixes\n- Signature help inside calls\n- Build and test projects based on Blueprint\n- Flexible toolchain management\n\nFunC support includes:\n\n- Semantic syntax highlighting\n- Code completion, imports completion\n- Go to definition\n- Find all references, workspace symbol search, symbol renaming\n- Automatic import updates when renaming and moving files\n- Types and documentation on hover\n- Inlay hints for method id\n- On-the-fly inspections\n- Build and test projects based on Blueprint\n- Debug Blueprint-based projects\n\nFift assembly support includes:\n\n- Basic and semantic syntax highlighting\n- Go-to definition\n- Inlay hints with instruction gas consumption\n- Hover documentation for instructions\n\nTL-B support includes:\n\n- Basic and semantic syntax highlighting\n- Go-to definition\n- Completion for fields, parameters, and types\n- Go-to references for types\n- Hover documentation for declarations\n\nBoC support includes:\n\n- Automatic BoC disassembly with syntax highlighting\n- Automatic updates on BoC changes\n\n## Sandbox Integration\n\nThe VS Code extension also includes a comprehensive **TON Sandbox** — a graphical interface for local TON blockchain\ntesting:\n\n- **One-Click Contract Deployment**: Deploy contracts directly from source code\n- **Interactive Message Testing**: Send internal/external messages\n- **Transaction Tree Visualization**: Deep inspection of all messages and transactions\n- **Flexible History Management**: Rollback to any previous state, export/import scenarios\n- **Contract State Monitoring**: Real-time storage and balance inspection\n- **Code Lenses**: Instant deployment and method execution from editor\n\nPerfect for rapid prototyping, interactive debugging, and educational purposes. Powered by `@ton/sandbox` package.\n\nCheck out the [Sandbox Wiki Page](https://github.com/ton-blockchain/ton-language-server/wiki/Sandbox:-1.-Overview) for\nmore details.\n\n## Quick start\n\nThe easiest way to get started with TON development is to use VS Code or editors based on it:\n\n1. Install the TON extension\n   [in VS Code](https://marketplace.visualstudio.com/items?itemName=ton-core.vscode-ton)\n   or [in VS Code-based editors](https://open-vsx.org/extension/ton-core/vscode-ton)\n2. That's it!\n\nThe extension automatically detects your toolchain installation. If you need to work with custom-builds or\nconfigurations, check out the [toolchain management] guide.\n\n[toolchain management]: ./docs/manual/toolchain-management.md\n\n## Installation\n\n### VS Code / VSCodium / Cursor / Windsurf\n\n1. Get the latest `.vsix` file from [releases](https://github.com/ton-blockchain/ton-language-server/releases), from\n   [VS Code marketplace](https://marketplace.visualstudio.com/items?itemName=ton-core.vscode-ton),\n   or from [Open VSX Registry](https://open-vsx.org/extension/ton-core/vscode-ton)\n2. In VS Code:\n    - Open the Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`)\n    - Type \"Install from VSIX\"\n    - Select the downloaded `.vsix` file\n    - Reload VS Code\n\n### Other Editors\n\n1. Get the latest archive from [releases](https://github.com/ton-blockchain/ton-language-server/releases):\n    - `ton-language-server-*.tar.gz` for Linux/macOS\n    - `ton-language-server-*.zip` for Windows\n2. Extract it to a convenient location\n3. Configure your editor to use the language server (see editor-specific instructions below)\n\n### Building from Source\n\nIf you want to build the language server yourself:\n\n```shell\ngit clone https://github.com/ton-blockchain/ton-language-server\ncd ton-language-server\nyarn install\nyarn build\n```\n\nTo obtain the `.vsix` package with the VS Code extension, additionally run:\n\n```shell\nyarn package\n```\n\nThen run either of those to install the extension from the `.vsix` package:\n\n```shell\n# VSCode, replace VERSION with the actual version from package.json\ncode --install-extension vscode-ton-VERSION.vsix\n\n# VSCodium, replace VERSION with the actual version from package.json\ncodium --install-extension vscode-ton-VERSION.vsix\n```\n\n## Editor Setup\n\n### Sublime Text\n\n1. Install [LSP](https://packagecontrol.io/packages/LSP) package:\n\n    - Open Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`)\n    - Select \"Package Control: Install Package\"\n    - Search for and select \"LSP\"\n\n2. Add the following configuration to your LSP settings (`Preferences \u003e Package Settings \u003e LSP \u003e Settings`):\n\n    ```jsonc\n    {\n        \"clients\": {\n            \"ton\": {\n                \"enabled\": true,\n                \"command\": [\"node\", \"path/to/language-server/server.js\", \"--stdio\"],\n                \"selector\": \"source.tolk, source.fift, source.tlb\",\n            },\n        },\n        \"inhibit_snippet_completions\": true,\n        \"semantic_highlighting\": true,\n    }\n    ```\n\n3. Create a new file or open an existing file with the `.tolk`, `.fift`, or `.tlb` extension to verify the setup\n\n### Neovim\n\nPrerequisites:\n\n- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)\n- Neovim 0.5.0 or newer\n\nSetup steps:\n\n1. Add `ton.lua` to your `lua/lspconfig/server_configurations` directory with the following content:\n\n    ```lua\n    local util = require 'lspconfig.util'\n\n    return {\n      default_config = {\n        cmd = { 'node', '/absolute/path/to/language-server/server.js', '--stdio' },\n        filetypes = { 'tolk', 'fift', 'tlb' },\n        root_dir = util.root_pattern('package.json', '.git'),\n      },\n      docs = {\n        description = [[\n          TON Language Server\n          https://github.com/ton-blockchain/ton-language-server\n        ]],\n        default_config = {\n          root_dir = [[root_pattern(\"package.json\", \".git\")]],\n        },\n      },\n    }\n    ```\n\n2. Add the following to your `init.lua`:\n\n    ```lua\n    require'lspconfig'.ton.setup {}\n    ```\n\n### Vim\n\nPrerequisites:\n\n- Vim 8 or newer\n- Async LSP Client for Vim: [vim-lsp](https://github.com/prabirshrestha/vim-lsp)\n\nRecommended, but not required:\n\n- Auto-configurations for many language servers: [vim-lsp-settings](https://github.com/mattn/vim-lsp-settings)\n\nSetup steps:\n\n1. Install the [vim-lsp](https://github.com/prabirshrestha/vim-lsp) plugin if it isn't already installed. For that,\n   use [vim-plug](https://github.com/junegunn/vim-plug) or the built-in package manager of Vim 8+, see [\n   `:help packages`](https://vimhelp.org/repeat.txt.html#packages).\n\n- If it wasn't installed before, you should set up basic keybindings with the language client. Add the following to your\n  `~/.vimrc` (or `~/_vimrc` if you're on Windows):\n\n    ```vim\n    function! s:on_lsp_buffer_enabled() abort\n        setlocal omnifunc=lsp#complete\n        setlocal signcolumn=yes\n        if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif\n        nmap \u003cbuffer\u003e gd \u003cplug\u003e(lsp-definition)\n        nmap \u003cbuffer\u003e gs \u003cplug\u003e(lsp-document-symbol-search)\n        nmap \u003cbuffer\u003e gS \u003cplug\u003e(lsp-workspace-symbol-search)\n        nmap \u003cbuffer\u003e gr \u003cplug\u003e(lsp-references)\n        nmap \u003cbuffer\u003e gi \u003cplug\u003e(lsp-implementation)\n        nmap \u003cbuffer\u003e gt \u003cplug\u003e(lsp-type-definition)\n        nmap \u003cbuffer\u003e \u003cleader\u003ern \u003cplug\u003e(lsp-rename)\n        nmap \u003cbuffer\u003e [g \u003cplug\u003e(lsp-previous-diagnostic)\n        nmap \u003cbuffer\u003e ]g \u003cplug\u003e(lsp-next-diagnostic)\n        nmap \u003cbuffer\u003e K \u003cplug\u003e(lsp-hover)\n        nnoremap \u003cbuffer\u003e \u003cexpr\u003e\u003cc-f\u003e lsp#scroll(+4)\n        nnoremap \u003cbuffer\u003e \u003cexpr\u003e\u003cc-d\u003e lsp#scroll(-4)\n\n        let g:lsp_format_sync_timeout = 1000\n        autocmd! BufWritePre *.rs,*.go call execute('LspDocumentFormatSync')\n\n        \" Refer to the doc to add more commands:\n        \" https://github.com/prabirshrestha/vim-lsp#supported-commands\n    endfunction\n\n    augroup lsp_install\n        au!\n        \" call s:on_lsp_buffer_enabled only for languages that have the server registered.\n        autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled()\n    augroup END\n    ```\n\n2. Add the following to your `~/.vimrc` (or `~/_vimrc` if you're on Windows):\n\n    ```vim\n    if executable('node')\n      au User lsp_setup call lsp#register_server({\n            \\ 'name': 'tolk',\n            \\ 'cmd': {server_info-\u003e['node', '/absolute/path/to/language-server/server.js', '--stdio']},\n            \\ 'allowlist': ['tolk'],\n            \\ })\n    endif\n    ```\n\n### Helix\n\n1. Add the following configuration to your `~/.config/helix/languages.toml`:\n\n    ```toml\n    [[language]]\n    name = \"tolk\"\n    language-servers = [\"ton-language-server\"]\n\n    [language-server.ton-language-server]\n    command = \"node\"\n    args = [\"/absolute/path/to/language-server/server.js\", \"--stdio\"]\n    ```\n\n2. Replace `path/to/language-server` with the actual path where you cloned the repository\n3. Restart Helix for changes to take effect\n\n## Troubleshooting\n\nSee [TROUBLESHOOTING.md](./docs/manual/troubleshooting.md).\n\n## Thanks\n\n- Big thanks to [TonTech](https://ton.tech) for [FunC debugger\n  implementation](https://github.com/krigga/tvm-debugger)!\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fton-blockchain%2Fton-language-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fton-blockchain%2Fton-language-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fton-blockchain%2Fton-language-server/lists"}