Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Interactivity akin to Nujan IDE #31

Open
novusnota opened this issue Mar 21, 2024 · 2 comments
Open

Proposal: Interactivity akin to Nujan IDE #31

novusnota opened this issue Mar 21, 2024 · 2 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@novusnota
Copy link
Member

novusnota commented Mar 21, 2024

Context

It's often nice to quickly check the outputs, possible errors, boundaries or gas usage of Tact code without writing lots of Jest tests, which slow down the speed of such exploration (IMO). There, https://ide.nujan.io provides a nice experience — contract receivers and get-methods are readily available to interact with, see:

image

Proposal

  • A panel for quick build-deploy cycles using Blueprint+Sandbox or Sandbox only.
  • A symbolic panel or set of buttons to interact with: static functions, receivers, externals, bounced, and get-methods of the contract(s).

OR

  • An extension to the Tact language server, which would allow for semi-arbitrary code execution of given parts of code (get-methods, receivers, etc.) as if Tact is a LISP, i.e. almost have our own REPL.

Suggested solution ideas

We may use @tact-lang/compiler API or tact-lang/tree-sitter-tact to quickly parse necessary parts of the file, then make tiny test wrappers for each to call using Jest & individual test names.

@novusnota novusnota added enhancement New feature or request question Further information is requested labels Mar 21, 2024
@novusnota novusnota changed the title Proposal: Interactivity alike seen in Nujan IDE Proposal: Interactivity akin to Nujan IDE Mar 21, 2024
@anton-trunov
Copy link
Member

Exploratory programming is indeed a really nice technique! I love it myself, e.g. all kinds of REPLs and tools like that and would very much like it to be integrated with the Tact VS Code plugin.

@novusnota
Copy link
Member Author

novusnota commented Mar 21, 2024

@anton-trunov Yes! REPL is the ultimate thing I was looking for — this proposal can be simplified to just allow the internal LSP of this VSCode plugin semi-arbitrary code execution of given parts of code (get-methods, receivers, etc.) as if Tact is a LISP!

And this can be done using the same suggested ideas, via tree-sitter+Jest combo or @tact-lang/compiler+Jest combo.

UPD: added this as an alternative to making some special button panel, like in Nujan.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants