Skip to main content
TON plugin for IntelliJ IDEA (Ultimate and Community), WebStorm, CLion, GoLand, PyCharm, RustRover, and all other JetBrains IDEs.

Installation

From marketplace

  1. In the IDE, open Settings
    Skip this step if you do not have opened projects and are in the start menu
  2. Go to Plugins
  3. Select the Marketplace tab (default)
  4. Search for TON
  5. Select the official plugin from TON Core and click Install
The plugin would be fetched and installed in your current JetBrains IDE. You might need to restart it for changes to take effect. Here is how the plugin installation page may look in the start menu of WebStorm, before pressing the Install button: Screenshot of the plugin installation Alternatively, you can press Get on the plugin homepage in the JetBrains Marketplace and then follow subsequent instructions.

From disk

To manually install the plugin:
  1. Download the plugin archive from the latest GitHub release or from the exact version on the marketplace
  2. In the IDE, open Settings
    Skip this step if you do not have opened projects and are in the start menu
  3. Go to Plugins
  4. Click the gear icon on top and then select Install Plugin from Disk...
  5. Select the plugin archive in the pop up and complete the installation
See also: Installing a plugin from the command line in IntelliJ IDEA.

Features and language support

This plugin provides first-class support for TON-specific languages, schemas and data formats in IntelliJ-based IDEs. Everything you need to develop, test, debug, and deploy TON smart contracts is made available right from your favorite JetBrains-made editor.

Tolk

File extension: .tolk Tolk is the official language of TON Blockchain smart contract development. It has an expressive syntax, a robust type system, and built-in cell (de)serialization structures. Further, Tolk generates highly optimized TVM code. Screenshot of the Tolk language support The plugin provides the following features for Tolk files:
  • Syntax and error highlighting
  • Code completion — context-specific suggestions as you type
  • Parameter info — names of parameters in function calls, with option to enable complete function signatures info
  • Quick documentation — pop-up and hover documentation for any symbol right from the editor
  • Declarations — go to declarations, implementations, and types
  • Usages — search for references and usages of a code element throughout the codebase
  • Inlay hints — special in-editor markers, like parameter name blobs next to the corresponding argument values
  • Inspections — detects, finds, and highlights various problems and abnormal code
  • Intention actions — contextual code edits and quick fixes
  • Formatting — rearrangements and code cleanup
  • Rename refactorings — change names of symbols and files
  • Code fragment surrounding — templates for wrapping code fragments in various constructs, such as try...catch blocks.
  • File structure — view and navigate the code structure of the open file.
  • Navigation bar — structure of the project from directories down to code elements, usually located at the bottom of the status bar.

FunC

File extensions: .fc, .func FunC is a legacy TON smart contract programming language that was used prior to creation of Tolk. Screenshot of the FunC language support The plugin provides the following features for FunC files:

Fift

File extensions: .fif, .fift Fift is a low-level tacit concatenative stack-based language with deep TVM integration. Screenshot of the Fift language support Fift is also the most common disassembly target for serialized binary .boc smart contracts, and it has a macro-assembly language build with words in the Asm.fif standard library. That said, Fift does not have a built-in disassembler functionality and it does not directly correspond to the resulting TVM code due to its own stack, pre-processing capabilities, and compile-time hacks and optimizations. For the simplified .boc disassembler, use TASM. Screenshot of the Fift assembly support The plugin provides the following features for Fift:

TL-B

File extension: .tlb Type Language - Binary (TL-B) is a cell-based data serialization and markup language. It is used extensively for writing data schemas, parsing them and generating wrappers for storing and loading corresponding cells. Screenshot of the TL-B data scheme language support The plugin provides the following features for TL-B files:

TASM

File extensions:
  • .tasm — textual bitcode assembly
  • .boc — serialized binary smart contract code
TON Assembly (TASM) is both a textual assembly language and an assembler and disassembler for TVM bitcode. Unlike Fift, it is not a general-purpose language and not a macro-assembler — instead, it directly maps to and from .boc code. The plugin provides the following features for TASM:

Integrations

The plugin integrates with:
  • Blueprint — all-in-one development environment for TON smart contract development
  • Sandbox — local TON emulator

Community

See also

I