tree-sitter-org
smartparens
Our great sponsors
tree-sitter-org | smartparens | |
---|---|---|
11 | 19 | |
206 | 1,782 | |
- | - | |
2.1 | 7.1 | |
2 months ago | 1 day ago | |
C | Emacs Lisp | |
MIT License | GNU General Public License v3.0 only |
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-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 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
Get more information how to get it working. Will building and installing https://github.com/milisims/tree-sitter-org.git help?
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', }
smartparens
-
Paredit-like features in non-lisp modes?
Check out smartparens which supports several non-lisp languages including c and js. Learn more here: https://github.com/Fuco1/smartparens
-
Good Emacs Packages
For working with delimiters, you might want to check out Smartparens or Puni. There are many other packages like these, but those are the two I know about.
-
ts-movement: a package to navigate the tree-sitter syntax tree (supports multiple-cursors)
I think the following packages would fit your wishlist, as it is very similar to mine. As mentioned in the replies, there is (https://github.com/magnars/expand-region.el) and (https://github.com/mickeynp/combobulate). I regularly use (https://github.com/Fuco1/smartparens).
-
Your first taste of emacs
smart-parens bracket/parens matching is nice
-
Tree Sitter and the Complications of Parsing Languages
Emacs seems to attract quite a lot of people who want structural code editing. We now have * paredit * smartparens * evil-cleverparens * lispy * symex * combobulate (more?)
-
Why is Paredit is so un-Emacsy?
https://github.com/Fuco1/smartparens/pull/1058 (there are several other issues where Fuco mentioned interest in tree-sitter -- sadly he only has time for minimal maintenance of smartparens at the moment)
-
Help with persistent scratch and Doom Emacs
Or maybe I'm just too used to smartparens.
- How to make packages in emacs? from beginner to advance? PLEASE HELP
-
What is your favorite text-editing package / command?
Check out Smartparens, which has language-specific behavior.
What are some alternatives?
paredit-everywhere - Enable some paredit features in non-lisp buffers
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
orgmode - Orgmode clone written in Lua for Neovim 0.9+.
embrace.el - Add/Change/Delete pairs based on `expand-region', similar to `evil-surround'.
hydra - make Emacs bindings that stick around
use-package - A use-package declaration for simplifying your .emacs
aggressive-indent-mode - Emacs minor mode that keeps your code always indented. More reliable than electric-indent-mode.
emacs-which-key - Emacs package that displays available keybindings in popup
emacs-doom-themes - A megapack of themes for GNU Emacs. [Moved to: https://github.com/doomemacs/themes]
electric-operator - An emacs minor mode to automatically add spacing around operators