Open hacker-DOM opened 10 months ago
List of potential features
We should probably have a neovim mode which would use neovim's grammars and LSs (optional).
Neovim usage - we dont need separate neovim extension, I think the filter through an external program
feature could suffice eg for the printfs (console logs) [i think it is !
be default].
Treesitter functionality would be very similar to printers/detectors in woke (python file with main
and visitor functions (but can this handle mutations as well?)). Lsp functionality would have to be more thought-out. 💡 Provide api for sending requests
Lsp types (ordered)
For reference: full post in Auditors channel (the tool used to be called Ring when I was going to write it in Rust):
Ok guys, here's a pitch of Ring.rs:
We have protocols to talk with all languages in the world - basically. Treesitter for parsing, build server protocol for compiling, debugger adapter protocol for.. debugging, language server protocol for semantic information
I want to make a tool that uses these protocols to create developer tooling for all programming languages at once. So the final developer tool we'll ever need - On ring to rule them all
First, I'd like to implement
Later, we can do even more wild things:
I was originally gonna write it in Go, but over weeks i've realized the potential of this tool and so I might as well write it in a hard language
CTA (Call to action) ❗️If you know a company that would like to sponsor this ($10k+) that would allow me to work on this full-time for months, pls help out
Planning 1
UPDATE 23-09-19: The tool used to be called Ring when I was going to write it in Rust.
For the past few years, protocols have existed that allow us to parse and gain insights ab any language in a standardized way.
There are a few tools trying to leverage this new standardization:
I propose a development tool that would communicate with Treesitter parsers and language servers to provide a whole suit of tools. Here's a small list of everything we could make. We could use LSP if it is available and fallback to Treesitter if not.
For 1.0, we can assume that a particular language server is running (or at least installed?). Further on, we could add auto-install. Mason does this really well and already has a huge database of installation and setup instructions for language servers.
I'm guessing treesitter grammars are easy to install on the fly.
I think for MVP we should do: