elisp-tree-sitter
tree-sitter-ruby
Our great sponsors
elisp-tree-sitter | tree-sitter-ruby | |
---|---|---|
21 | 9 | |
803 | 153 | |
0.7% | 2.6% | |
6.3 | 0.0 | |
18 days ago | about 2 months ago | |
Emacs Lisp | JavaScript | |
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.
elisp-tree-sitter
-
How to Get Started with Tree-Sitter
Look at the original integration project https://github.com/emacs-tree-sitter/elisp-tree-sitter, before it was done inside Emacs 29+.
-
function to mark all within brackets, quotes, etc
When tree-sitter is available you may extend expand-region with this one one https://github.com/emacs-tree-sitter/elisp-tree-sitter/issues/20 Works very nice for me. But simple matching pairs should be handled well by expand-region alone
-
How to use Emacs 29 Tree-sitter?
That said, if you want a more complete experience with tree-sitter right now, there’s a 3rd party implementation with support for a lot more languages, and also automatically downloads all supported grammars. It’s available here: https://github.com/emacs-tree-sitter/elisp-tree-sitter
-
why is melpa still necessary for stuff that is built-in to emacs?
Just like there are multiple LSP implementations for emacs (lsp-mode, eglot, lsp-bridge), there are multiple tree-sitter implementations. The one recently included in emacs was never a standalone package, I believe (correct me if that’s wrong), but was created with the purpose of being included in emacs. You will need melpa to download the linked elisp-tree-sitter package (https://github.com/emacs-tree-sitter/elisp-tree-sitter), but not the built in one.
-
tree-sitter has been merged into master
How am I going to even use the built-in one? I was using elisp-tree-sitter. I know I have to add grammar for different languages, but how? I have been searching for a while and still have no clue.
-
Ask HN: S/W development text editor have feature colorizing every iteration?
from github README.rst "Emacs package that provides a standardized framework for manipulating and navigating your source code using tree sitter's concrete syntax tree " -> https://github.com/mickeynp/combobulate
https://www.spacemacs.org/ with https://github.com/emacs-tree-sitter/elisp-tree-sitter then write a iterator/loop query for language(s) editing per https://tree-sitter.github.io/tree-sitter/syntax-highlightin...
tad less installation heavy (sorta) but also makes use of tree-sitter syntax queries : https://www.lunarvim.org (neovim with treesitter syntax)
blockman usage examples: https://www.youtube.com/channel/UC5539gDeAdWqeXcczWuhnBA
Alternative examples / takes (per user interface):
### embedding a block of source code in a document:
** carrotsearch.gethub.io/apidocs/code-blocks
-
regarding feature/tree-sitter branch
However, if you want to use tree-sitter today, there is the tree-sitter package which enables tree-sitter syntax highlighting in a number of popular major modes. I’ve been using it for about six months now in all major modes it supports.
-
how to configure doom emacs (generic emacs too) with a C project
Tree Sitter and lsp-mode might be of help. Looks like both take a bit of work to get going. I have personally not used them, so try out which suits you and let us know how it went.
-
Commercial-Emacs
You can use tree-sitter already if you have dynamic module support: https://github.com/emacs-tree-sitter/elisp-tree-sitter
- Are we living in the golden age of Emacs?
tree-sitter-ruby
-
Emacs and Java Development: Corfu + Cape + LSP-Mode + Treesit
(use-package treesit :ensure nil :custom ;; Some stuff taken from here: https://robbmann.io/posts/emacs-treesit-auto/ (treesit-extra-load-path '("/usr/lib64/")) (treesit-language-source-alist '((bash . ("https://github.com/tree-sitter/tree-sitter-bash")) (c . ("https://github.com/tree-sitter/tree-sitter-c")) (c++ . ("https://github.com/tree-sitter/tree-sitter-cpp")) (csharp . ("https://github.com/tree-sitter/tree-sitter-c-sharp")) (css . ("https://github.com/tree-sitter/tree-sitter-css")) (elixir ("https://github.com/elixir-lang/tree-sitter-elixir")) (html . ("https://github.com/tree-sitter/tree-sitter-html")) (java . ("https://github.com/tree-sitter/tree-sitter-java")) (javascript . ("https://github.com/tree-sitter/tree-sitter-javascript")) (json . ("https://github.com/tree-sitter/tree-sitter-json")) (lua . ("https://github.com/Azganoth/tree-sitter-lua")) (makefile . ("https://github.com/alemuller/tree-sitter-make")) (org . ("https://github.com/milisims/tree-sitter-org")) (python . ("https://github.com/tree-sitter/tree-sitter-python")) (tsx . ("https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src")) (typescript . ("https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src")) (ruby . ("https://github.com/tree-sitter/tree-sitter-ruby")) (rust . ("https://github.com/tree-sitter/tree-sitter-rust")) (sql . ("https://github.com/m-novikov/tree-sitter-sql")) (toml . ("https://github.com/tree-sitter/tree-sitter-toml")) (yaml . ("https://github.com/ikatyang/tree-sitter-yaml")))) (major-mode-remap-alist '((c-mode . c-ts-mode) (c++-mode . c++-ts-mode) (csharp-mode . csharp-ts-mode) (css-mode . css-ts-mode) (html-mode . html-ts-mode) (java-mode . java-ts-mode) (js-mode . js-ts-mode) (json-mode . json-ts-mode) (makefile-mode . makefile-ts-mode) ;; (org-mode . org-ts-mode) ;; not mature yet (python-mode . python-ts-mode) (typescript-mode . typescript-ts-mode) (ruby-mode . ruby-ts-mode) (rust-mode . rust-ts-mode) (toml-mode . toml-ts-mode) (yaml-mode . yaml-ts-mode))) (treesit-auto-fallback-alist '((toml-ts-mode . conf-toml-mode) (typescript-ts-mode . nil) (tsx-ts-mode . nil))) (treesit-font-lock-settings t) (treesit-simple-indent t) (treesit-defun-type-regexp t)) (use-package treesit-auto :demand t :config (setq treesit-auto-install t) (global-treesit-auto-mode))
- Building tree-sitter languages for Emacs
-
Best Syntax Highlighter for Ruby?
Just use tree-sitter with neovim. It has a Ruby plugin as well https://github.com/tree-sitter/tree-sitter-ruby
-
Tree-sitter: an incremental parsing system for programming tools
@chrisseaton you are correct, the JSON file is generated. The handwritten parts are:
- https://github.com/tree-sitter/tree-sitter-ruby/blob/32cd5a0...
What are some alternatives?
tree-sitter-go - Go grammar for tree-sitter
nvim-treesitter - Nvim Treesitter configurations and abstraction layer
tree-sitter - An incremental parsing system for programming tools
tree-sitter-c-sharp - C# Grammar for tree-sitter
typescript.el - TypeScript-support for Emacs
sourcegraph - Code AI platform with Code Search & Cody
lsp-treemacs - lsp-mode :heart: treemacs
semshi - 🌈 Semantic Highlighting for Python in Neovim
tree-sitter-kotlin - Kotlin grammar for Tree-sitter
lsif-os - A (mostly) language-agnostic indexer for generating LSIF data.
emacs - Mirror of GNU Emacs
parser - A Ruby parser.