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

TLB syntax support for neovim #848

Open
nickshatilo opened this issue Oct 14, 2024 · 6 comments
Open

TLB syntax support for neovim #848

nickshatilo opened this issue Oct 14, 2024 · 6 comments
Assignees
Labels
Approved This proposal is approved by the committee Developer Tool Related to tools or utilities used by developers

Comments

@nickshatilo
Copy link

nickshatilo commented Oct 14, 2024

Summary

There is TLB syntax support in func plugin for intelleji IDEs, but not for neovim, zed etc. The goal is to add this support.

Context

Currently when using neovim, there is only syntax highlighting for func, but when editing func code it is very helpful to have proper TLB schemes in place, i.e in comments, or TLB files.

They also could be used to generate parsers for them using other tools.

This is also good for feature parity across different editors, so the ecosystem support is diverse.

References

JetBrains IDEs support
TLB parser
TLB docs

Estimate suggested reward

reward: $2000
time needed: 7-10 days

@nickshatilo nickshatilo added the Developer Tool Related to tools or utilities used by developers label Oct 14, 2024
@novusnota
Copy link
Contributor

neovim, zed, etc.

This etc. is rather ambiguous — do you mean a Tree-sitter parser and queries per each editor that supports it? Also, while Neovim's setup of the tree-sitter is quite simple, for Zed you have to write your own little extension in Rust :)

@nickshatilo
Copy link
Author

For now I only meant to create a tree-sitter parser + bindings for neovim, including to add it into https://github.com/nvim-treesitter/nvim-treesitter so it's easy installable.

But the tree-sitter grammar could be then re-used for editors like zed, since they also support it.

@novusnota
Copy link
Contributor

novusnota commented Oct 17, 2024

@nickshatilo Incidentally, I've been writing Tree-sitter parser for TL-B in my free time for quite a while and will publish it this week. So we can compare implementations, if you have one already :)

However, making a Neovim or Zed package would still be on the list of nice things to do, and I believe your proposal (and, if it gets accepted, your future work) may address those!

UPD: Polishing the final implementation, got to squash a bug or two :)
UPD2: Didn't have time to finish this fast, but I'll gladly look at your one and, maybe, suggest stuff

@nickshatilo
Copy link
Author

I have some implementation that works already, it's quite junky as of me but would be happy to refine it make it a public good!

@delovoyhomie delovoyhomie added the Approved This proposal is approved by the committee label Oct 18, 2024
@delovoyhomie
Copy link
Collaborator

@nickshatilo, the bounty has been approved! Could you please reach out to me via DM for further communication? https://t.me/delovoyslava

@nickshatilo
Copy link
Author

nickshatilo commented Dec 7, 2024

Hey folks @delovoyhomie @novusnota, the timeline I stated was way too optimistic, but I am finally releasing what was promised 🚀

https://github.com/nickshatilo/tree-sitter-tlb

Deliveribles:

  • a complete tree-sitter grammar for TL-B language
  • generic tree-sitter queries highlights.scm and injections.scm, for syntax highligting and proper comments support
  • packed as a nvim plugin, so it's very easy to install and begin using

Short demo:
https://github.com/user-attachments/assets/a6990ebd-6004-4e2e-b80b-3264a1be9c1c

Looking forward for your feedback.

P.S. once the implementation is approved and moved under ton community repo, I am going to make a PR to https://github.com/nvim-treesitter/nvim-treesitter repo to be able to streamline installation of this grammar even further.

Wallet address for the reward: UQBEeo0oquCQuuRZZu6fVCG680bZ7bkHfmJeKxMOwnCf8ZHw

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved This proposal is approved by the committee Developer Tool Related to tools or utilities used by developers
Projects
None yet
Development

No branches or pull requests

3 participants