go-tree-sitter
tree-sitter-elisp
go-tree-sitter | tree-sitter-elisp | |
---|---|---|
1 | 2 | |
363 | 53 | |
- | - | |
8.3 | 3.6 | |
9 days ago | 11 months ago | |
C | C | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-tree-sitter
tree-sitter-elisp
-
RMS – EmacsConf Talk
Here is the tree-sitter grammar of Elisp:
https://github.com/Wilfred/tree-sitter-elisp/blob/main/gramm... (approx. 200 lines)
and here is the grammar of JavaScript:
https://github.com/tree-sitter/tree-sitter-javascript/blob/m... (approx. 1200 lines)
JavaScript evolved into a language of similar complexity as Perl 5 (the corresponding tree sitter syntax table counts almost 2000 lines, currently).
-
EmacsConf 2022 Starting Now
> I like the multiprocess approach with standard protocols, despite its complexities, because it lets different editors share smarts.
Yes, the benefit LSP brings is putting editors/IDEs on equal footing with respect to a specific language. Also the multiplicative effect when the author of a new language provides a language server so nobody needs to switch their IDEs to try it out.
However, seeing how „straight forward“ a tree-sitter specific language grammar looks in practice (1) makes we wonder if by providing a TS grammar for a language would realize (almost) the same benefit. Based on such a grammar and TS’ selector engine figuring out a syntax highlighting scheme, code folder, a docstring or symbol scanner might not be such a huge endeavor any more as you described for ENSIME.
So, yeah, in the end LSP might be dead end at some point, especially because TS promises to be very fast and avoids any IPC. Performance seems to be the biggest problem of LSP clients in Emacs and probably other editors as well.
(1) https://github.com/Wilfred/tree-sitter-elisp/blob/main/gramm... — of course, the example being ELISP makes it look easier than said, if you compare it with the grammar of Perl5 that’s not yet finished unsurprisingly.
What are some alternatives?
tree-sitter-embedded-template - Tree-sitter grammar for embedded template languages like ERB, EJS
emacs-ng - A new approach to Emacs - Including TypeScript, Threading, Async I/O, and WebRender.
tree-sitter-go-template - Golang template grammar for tree-sitter
tree-sitter-javascript - Javascript grammar for tree-sitter
tree-sitter-racket - Racket grammar for tree-sitter
tree-sitter-html - HTML grammar for Tree-sitter
syntax-highlighter - Syntax Highlighter extension for Visual Studio Code (VSCode). Based on Tree-sitter.
tree-sitter-markdown - Markdown grammar for tree-sitter
grove - Universal AST parser built on Tree-sitter
tree-sitter-comment - Tree-sitter grammar for comment tags like TODO, FIXME(user).
ngx-export - A comprehensive web framework aimed at building custom Haskell handlers for the Nginx Web Server