tree-edit
tree-sitter-org
tree-edit | tree-sitter-org | |
---|---|---|
8 | 11 | |
381 | 212 | |
- | - | |
6.5 | 2.1 | |
5 months ago | 3 months ago | |
Emacs Lisp | C | |
GNU General Public License v3.0 only | 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.
tree-edit
- tree-edit: 🌲 Structural editing in Emacs for any™ language!
-
Using_Prolog_as_the_AST
I am using this idea to build an ai-first, reactive IDE (after talking to marcelle, who's brilliant). DM me at @eating_entropy on Twitter or email me at [email protected] if you are interested.
Also it seems tree-edit implements something similar using reazon, a relational language library in elisp.
https://github.com/ethan-leba/tree-edit
- Show HN: Structural editing in Emacs with tree-sitter and relational programming
- Emacs is Not Enough
-
Best packages for structural editing?
tree-edit
-
Does anybody else find Evil very painful for working in lisp?
I use it daily, so I suppose it's useable enough; there's some weird edge cases and annoying behaviors I never bothered to solve, and the README isn't complete. Development has pretty much stalled due to some loftier projects of mine but if there's interest I could be convinced to clean it up a bit more :)
-
Tree Sitter and the Complications of Parsing Languages
you can add this one to the list ;) https://github.com/ethan-leba/tree-edit
tree-sitter-org
-
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))
- Tree-sitter grammar for org-mode
-
Formal Specification and Programmatic Parser for Org-mode
org-element-parse-buffer 'element granularity (7.688000744 0 0.0) 8sec tree-sitter via https://github.com/milisims/tree-sitter-org parsed down to 58% of the buffer in 5.3sec extrapolates to ~9sec Racket's brack via https://github.com/tgbugs/laundry failed to finish parsing in reasonable time. Cancelled at 10m11.436s Clojure parser via https://github.com/200ok-ch/org-parser failed to finish parsing with java.lang.OutOfMemoryError: GC overhead limit exceeded Running time 8m28.078s
- tree-sitter-org: Org grammar for tree-sitter
-
Tree Sitter and the Complications of Parsing Languages
Interesting enough, I discovered there's tree-sitter-org and Neovim folks are trying to implement Org-Mode.
-
Orgmode.nvim tree-sitter support
local parser_config = require "nvim-treesitter.parsers".get_parser_configs() parser_config.org = { install_info = { url = 'https://github.com/milisims/tree-sitter-org', revision = 'main', files = {'src/parser.c', 'src/scanner.cc'}, }, filetype = 'org', }
What are some alternatives?
evil-cleverparens - Evil normal-state minor-mode for editing lisp-like languages
language-server-protocol - Defines a common protocol for language servers.
lispy - Short and sweet LISP editing
tree-sitter-norg - A TreeSitter parser for the Neorg File Format
tree-sitter-langs - Language bundle for Emacs's tree-sitter package
orgmode - Orgmode clone written in Lua for Neovim 0.9+.
lispyville - lispy + evil = lispyville
smartparens - Minor mode for Emacs that deals with parens pairs and tries to be smart about it.
combobulate - Structured Editing and Navigation in Emacs with Tree-Sitter
evil-textobj-tree-sitter - Tree-sitter powered textobjects for evil mode in Emacs
instaparse