go-tree-sitter VS tree-sitter-elisp

Compare go-tree-sitter vs tree-sitter-elisp and see what are their differences.

go-tree-sitter

Golang bindings for tree-sitter https://github.com/tree-sitter/tree-sitter (by smacker)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
go-tree-sitter tree-sitter-elisp
1 2
359 53
- -
7.2 3.6
7 days ago 11 months ago
C C
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of go-tree-sitter. We have used some of these posts to build our list of alternatives and similar projects.

tree-sitter-elisp

Posts with mentions or reviews of tree-sitter-elisp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-06.
  • RMS – EmacsConf Talk
    3 projects | news.ycombinator.com | 6 Dec 2022
    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
    1 project | news.ycombinator.com | 3 Dec 2022
    > 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?

When comparing go-tree-sitter and tree-sitter-elisp you can also consider the following projects:

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