FunC language support for Visual Studio Code.
This extension is designed for TON smart contract development and adds practical editing support for FunC inside VS Code.
It focuses on the features you use most while reading and writing contracts: highlighting, snippets, completion, symbol navigation, references, and rename.
Features
- Recognizes
.fc and .func files as FunC
- TextMate syntax highlighting
- Semantic highlighting for functions, parameters, variables, and constants
- Completion for local symbols, workspace symbols, keywords, and
#include paths
- Go to definition
- Find references
- Rename symbol
- Common FunC snippets
- Language configuration for comments, brackets, auto-closing pairs, and word selection
Install
Install from the VS Code Extensions Marketplace:
- Open the Command Palette.
- Open the Extensions view.
- Search for
FunC Syntax Tool.
- Click
Install.
- Reload VS Code if needed.
How to use
Open any .fc or .func file and the extension will activate automatically.
Typical usage:
- Start typing FunC code and use completion suggestions.
- Use snippet prefixes like
recvint, getter, or opcode.
- Cmd/Ctrl-click a symbol to go to its definition.
- Run
Find All References on a function, parameter, or variable.
- Run
Rename Symbol to rename supported symbols.
If the extension is not yet published to Marketplace in your environment, you can still install a local build from a .vsix package with Extensions: Install from VSIX....
Snippets
Included snippet prefixes:
inc
recvint
recvext
getter
loaddata
savedata
opcode
parseop
msgbody
sendraw
asmf
debug
What works best
This version is strongest on:
- normal function, constant, and global declarations
- local symbol completion and navigation
- parameter and local-variable rename
- semantic coloring for common FunC symbols
- relative import-path completion for
#include
Known limitations
- This is not yet a full standalone FunC LSP server.
- Some complex FunC edge cases may not resolve as accurately as the official TON language tooling.
- Cross-file resolution is present in a lightweight form, but is not yet as deep as a production parser/indexer-based language server.
- Hover documentation, outline/document symbols, formatting, and diagnostics are not implemented yet.
Roadmap
Planned next steps:
- hover documentation
- outline / document symbols
- stronger cross-file resolution
- formatting support
- inspections / diagnostics
- optional migration to a dedicated FunC LSP server
For developers
If you want to work on the extension itself, the repository also includes TypeScript source, snippets, grammar files, and a sample FunC file for local testing.