Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@
]
},
{
"group": "IDEs & plugins",
"group": "IDEs and editor plugins",
"pages": [
"ecosystem/ide/overview",
"ecosystem/ide/vscode",
Expand Down
6 changes: 4 additions & 2 deletions ecosystem/blueprint/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
---
title: "Overview"
title: "Blueprint overview"
sidebarTitle: "Overview"
---

For smart contract development on TON Blockchain, **Blueprint** is an all-in-one development environment designed to enhance the process of creating, testing, and deploying smart contracts.

It includes:

- [Blueprint](https://github.com/ton-org/blueprint/blob/develop/README.md) — core tools for building contracts.
- [Sandbox](https://github.com/ton-org/sandbox) — fast local testing in an isolated blockchain.
- [Create TON App](https://github.com/ton-org/create-ton) — scaffolding a ready-to-use project.
Expand Down Expand Up @@ -40,7 +42,7 @@ npm create ton@latest
## Environment setup

1. Run and follow the on-screen instructions: `npm create ton@latest`.
2. From the project directory, run `npm install` to install dependencies.
1. From the project directory, run `npm install` to install dependencies.

## Project structure

Expand Down
262 changes: 260 additions & 2 deletions ecosystem/ide/jetbrains.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,263 @@
---
title: "Jetbrains IDEs"
title: "TON plugin for IDEs from JetBrains"
sidebarTitle: "JetBrains IDEs"
---

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

<Columns cols={3}>
<Card
title="Installation"
icon="floppy-disk"
horizontal="true"
href="#installation"
/>

<Card
title="Features"
icon="sparkles"
horizontal="true"
href="#features-and-language-support"
/>

<Card
title="Community"
icon="user-group"
horizontal="true"
href="#community"
/>
</Columns>

## Installation

### From marketplace

1. In the IDE, open <kbd><Icon icon="gear" size={16} /> Settings</kbd><br />
Skip this step if you do not have opened projects and are in the start menu
1. Go to <kbd>Plugins</kbd>
1. Select the <kbd>Marketplace</kbd> tab (default)
1. Search for `TON`
1. Select the official plugin from TON Core and click <kbd>Install</kbd>

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 <kbd>Install</kbd> button:

![Screenshot of the plugin installation](/resources/images/intellij-ton/it-install-from-settings.png)

Alternatively, you can press <kbd>Get</kbd> on the [plugin homepage in the JetBrains Marketplace](https://plugins.jetbrains.com/plugin/23382-ton) and then follow subsequent instructions.

### From disk

To manually install the plugin:

1. Download the plugin archive from the [latest GitHub release](https://github.com/ton-blockchain/intellij-ton/releases/latest) or from the exact version [on the marketplace](https://plugins.jetbrains.com/plugin/23382-ton/versions)
1. In the IDE, open <kbd><Icon icon="gear" size={16} /> Settings</kbd><br />
Skip this step if you do not have opened projects and are in the start menu
1. Go to <kbd>Plugins</kbd>
1. Click the gear icon on top <kbd><Icon icon="gear" size={16} /></kbd> and then select `Install Plugin from Disk...`
1. Select the plugin archive in the pop up and complete the installation

See also: [Installing a plugin from the command line in IntelliJ IDEA](https://www.jetbrains.com/help/idea/managing-plugins.html#install_plugin_cmd).

## 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.

<Columns cols={2}>
<Card
title="Tolk"
icon="star"
horizontal="true"
href="#tolk"
>
Recommended language for TON smart contract development
</Card>

<Card
title="FunC"
icon="building-columns"
horizontal="true"
href="#func"
>
Legacy TON smart contract programming language
</Card>

<Card
title="Fift"
icon="layer-group"
horizontal="true"
href="#fift"
>
Low-level stack-based language with deep TVM integration
</Card>

<Card
title="TL-B"
icon="table-cells"
horizontal="true"
href="#tl-b"
>
Cell-based data serialization and markup language
</Card>

<Card
title="TON Assembly (TASM)"
icon="binary"
horizontal="true"
href="#tasm"
>
Textual TVM bitcode assembly language and corresponding (dis)assembler
</Card>

<Card
title="Integrations"
icon="toolbox"
horizontal="true"
href="#integrations"
>
Work with Blueprint projects, Sandbox TON emulator, and other popular tools for TON development
</Card>
</Columns>

### Tolk

**File extension:** `.tolk`

[Tolk](/language/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](/resources/images/intellij-ton/it-screenshot-tolk.png)

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](/language/func) is a legacy TON smart contract programming language that was used prior to creation of [Tolk](#tolk).

![Screenshot of the FunC language support](/resources/images/intellij-ton/it-screenshot-func.png)

The plugin provides the following features for FunC files:

- Syntax and error highlighting
- [Code completion]
- [Quick documentation]
- [Declarations]
- [Usages]
- [Inlay hints]
- [Inspections]

### Fift

**File extensions:** `.fif`, `.fift`

[Fift](/language/fift) is a low-level tacit concatenative stack-based language with deep TVM integration.

![Screenshot of the Fift language support](/resources/images/intellij-ton/it-screenshot-fift.png)

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](#tasm).

![Screenshot of the Fift assembly support](/resources/images/intellij-ton/it-screenshot-fift-asm.png)

The plugin provides the following features for Fift:

- Syntax and error highlighting, with better support for Fift assembly
- [Code completion]
- [Declarations]
- [Usages]
- [Inspections]

### TL-B

**File extension:** `.tlb`

[Type Language - Binary (TL-B)](/language/TL-B/overview) is a cell-based data serialization and markup language. It is used extensively for [writing data schemas](https://github.com/ton-blockchain/ton/blob/master/crypto/block/block.tlb), [parsing them](https://github.com/ton-community/tlb-runtime) and [generating wrappers](https://github.com/ton-community/tlb-codegen) for storing and loading corresponding cells.

![Screenshot of the TL-B data scheme language support](/resources/images/intellij-ton/it-screenshot-tlb.png)

The plugin provides the following features for TL-B files:

- Syntax and error highlighting
- [Code completion]
- [Declarations]
- [Usages]
- [Inspections]

### TASM
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need a screenshot with highlighted TASM syntax


**File extensions:**

- `.tasm` — textual bitcode assembly
- `.boc` — serialized binary smart contract code

[TON Assembly (TASM)](https://github.com/ton-blockchain/tasm) is both a textual assembly language and an assembler and disassembler for TVM bitcode. Unlike [Fift](#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:

- Syntax and error highlighting of `.tasm` files
- [Code completion]
- [Declarations]
- [Usages]
- [Inspections]

### Integrations

The plugin integrates with:

- [Blueprint](/ecosystem/blueprint/overview) — all-in-one development environment for TON smart contract development
- [Sandbox](https://github.com/ton-org/sandbox) — local TON emulator

## Community

- [`@intellijton` on Telegram](https://t.me/intellijton) — News about IntelliJ TON plugin development
- [`@tondev_eng` on Telegram](https://t.me/tondev_eng) — Main TON community chat and discussion group.
- [`@tondev` on Telegram](https://t.me/tondev) — Main Russian TON community chat and discussion group.
Comment on lines +231 to +232
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are generic chats, let's remove these


## See also
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't want to maintain these links, let's remove


- [Plugin management in IntelliJ IDEA](https://www.jetbrains.com/help/idea/managing-plugins.html)
- [All JetBrains product documentation](https://www.jetbrains.com/help/)

[Code completion]: https://www.jetbrains.com/help/idea/auto-completing-code.html

[Parameter info]: https://www.jetbrains.com/help/idea/viewing-reference-information.html#view-parameter-info

[Quick documentation]: https://www.jetbrains.com/help/idea/viewing-reference-information.html#inline-quick-documentation

[Intention actions]: https://www.jetbrains.com/help/idea/intention-actions.html

[Declarations]: https://www.jetbrains.com/help/idea/navigating-through-the-source-code.html#go_to_declaration

[Usages]: https://www.jetbrains.com/help/idea/find-highlight-usages.html

[Inlay hints]: https://www.jetbrains.com/help/idea/inlay-hints.html

[Inspections]: https://www.jetbrains.com/help/idea/code-inspection.html

[Formatting]: https://www.jetbrains.com/help/idea/reformat-and-rearrange-code.html

[Rename refactorings]: https://www.jetbrains.com/help/idea/rename-refactorings.html

[Code fragment surrounding]: https://www.jetbrains.com/help/idea/surrounding-blocks-of-code-with-language-constructs.html

[Navigation bar]: https://www.jetbrains.com/help/idea/guided-tour-around-the-user-interface.html#navigation-bar

[File structure]: https://www.jetbrains.com/help/idea/viewing-structure-of-a-source-file.html
4 changes: 2 additions & 2 deletions ecosystem/sdks.mdx
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why changes in this file?

Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Here's a small comparison for these protocols:
| Requires trusting third parties | Yes<sup>1</sup> | No |
| First connection takes time for data synchronization | No | Yes<sup>2</sup> |

<sup>1</sup> Some HTTP servers do provide proofs, but there is no out‑of‑the‑box library that verifies them.
<sup>1</sup> Some HTTP servers do provide proofs, but there is no out‑of‑the‑box library that verifies them. <br />
<sup>2</sup> If proofs returned by liteservers are ignored, the first connection skips data synchronization; however, this requires trusting the liteserver.

SDKs might also provide some other functionality:
Expand All @@ -34,7 +34,7 @@ SDKs might also provide some other functionality:
| ⭐ | `@ton/core` | | | ✅ | | | TypeScript | [Code](https://github.com/ton-org/ton-core) | [Docs](https://ton-org.github.io/ton-core/) | |
| ⭐ | `@ton/sandbox` | | | | | ✅ | TypeScript | [Code](https://github.com/ton-org/sandbox) | | |
| ⭐ | `ton4j` | ✅ | | ✅ | | ✅ | Java | [Code](https://github.com/neodix42/ton4j) | | [Chat](https://t.me/ton4java) |
| ⭐ | `tonutils-go` | | ✅ | | ✅ | | Go | [Code](https://github.com/xssnick/tonutils-go) | | [Chat](https://t.me/tonutils) |
| ⭐ | `tonutils-go` | | ✅ | | ✅ | | Go | [Code](https://github.com/xssnick/tonutils-go) | | [Chat](https://t.me/tonutils) |
| | `adnl` | | ✅ | | | | TypeScript | [Code](https://github.com/tonkite/adnl) | | |
| | `tonutils` | | ✅ | | | | TypeScript | [Code](https://github.com/thekiba/tonutils) | | |
| | `tonlib-java` | | ✅ | | | | Java | [Code](https://github.com/ton-blockchain/tonlib-java) | | |
Expand Down
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need a light theme screenshot here and in the rest of the screenshots

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.