Contest proposal: Syntax highlighting for Solidify source code files written for Free TON
Contest dates: (2 weeks)
Motivation
With many new smart contract developers joining the Free TON community, the need to implement syntax highlighting for popular source code editors and IDEs is here. Given that Free TON has its own flavor of Solidity, the use of syntax highlighting tools written for Ethereum flavor is impractical - the differences are too big.
Goal
We need our own plugins for the task of syntax highlighting. The object of this contest is to get many new plugins fulfilling this goal.
Requirements:
A fully working extension is required. Any MVPs will be rejected.
Support for 6 months is a requirement of entry.
syntax highlighting
keywords
variables
literals
comments
other things from the language specification and Free TON additions
code completion
keywords
variable names
classes names
method names
interfaces
Intellisense like behavior (pop-up hints showing you parameters needed as you code)
commands
contracts
methods
interfaces
Error mos highlighting: squiggly underlining of invalid commands (e.g., commands that do not match what the spec says - like misspelled or unrecognized, missing parameters, too few or not enough parameters)(either the command itself should be underlined, or the parameters should be underlined - depending on the situation);
change suggestions: ideally, the underline will display one of these messages with an explanation when hovered, according to the situation: “Unknown Command” or “Missing parameter(s)” or “Incorrect parameter(s)”
Need to allow for co-existence with the current Ethereum solidity syntax highlighters. Possible solutions: a different file extension, a smart header parser, or suggest your own.
The color scheme needs to be redefinable. Bonus: user-provided exceptions list for colors used.
Testing
Each team will provide its own test suite of smart contract code. The jury will test all submissions against every piece of smart contract code submitted. Any improperly handled or unhandled condition will lead to the submission score being lowered.
Contest stages
The first stage being discussed here is only for MS Visual Studio Code. It’s the most widely used editor by far, and, compared to the rest, it allows for a rather straightforward extension implementation.
Once the first stage is done, and the winners are announced, a vote for the most popular editors and IDEs will commence.
Winners of the popular vote will be grouped, and several further contests will be announced.
Rewards:
1 place: 50K = 20K + 5K every month during 6 months;
2 place: 39K = 15K + 4K vesting;
3 place: 28K = 10K + 3K vesting;
4 place: 10K
5 place: 9K
6 place: 8K
7 place: 7K
8 place: 6K
9 place: 5K
10 place: 4K
Notes on vesting: the condition of successful vesting is the fixing of bugs within 1 month of reporting, and adherence to the latest version of the Free TON Solidity compiler for the period of vesting.
One month for such a contest sounds like a joke. Unless it’s created exclusively for somebody who already prepared a solution it’s impossible to meet all the requirements within a specified timeframe.
As I understand there are two kinds of highlighters : simple one - that makes just a lexical analysis + uses a few dozens of typical patterns and a comprehensive one - that needs to do all the syntax parsing.
100 hours looks good (but still agressive) for a simple highlighter but for a comprehensive one two-three man-months are required (in my opinion). And such requirements as “error highlighting” clearly indicate that we need a comprehensive option.
This spring we implemented a simple highlighter for Coq (also for VS Code), it took about 1 man-month.
Hello! According this GitHub - freeton-org/readme I need to create my own fork from content repository. Where I can find this repository for this competition? I want to participate.
In short, this is a product that meets the minimum needs. You shouldn’t do the job just for the sake of the application. It is necessary to make the most competent and complete product, then the assessments will be appropriate. Good luck!
The solution from MTW team - GitHub - mytonwallet/vscode-tonsolidity-extension: TON Solidity is the language used in Free TON project to create smart contracts. This extension use extended Solidity language for VScode IDE
New file extension must be used to turn on this extension: .tsol (So as many developers uses other extensions for Solidity language already, we have decided to introduce new file extension to work in comfortable format with Ton Solidity extended language. Due to fact that this file extension is not recognized by github/IDE parser, you may find desire to rename to .sol file again after development process.)
Our solution has auto compiling feature, that allows to get the tvc and abi.json without any issue and do quick deployment.
Submission number is 2
Exclude duplicate submission from reward distribution
In the Contest #36 (Syntax highlighting for Solidity files written for Free TON - VSCode) Submissions 10 and 4 are components of the same project from the same person.
It is proposed to exclude submission #4 from distribution and pay out the rewards only for submission #10. So the final result of the winners paytable will be as follows according to the contest description:
Now the auto compilation feature works in the dedicated folder .temp. By saving generates .base64 file that allows integration with locklift tool for quick deployment process and tests. This version of this tool works on *nix and windows platforms locklift tool. We are awaiting the merging process.
We are going to publish TIP-3 example with instructions how to develop smart contracts for Everscale blockchain in VScode and deploy them on networks via locklift tool at the nearest time.