Org.jl
tree-sitter-org
Org.jl | tree-sitter-org | |
---|---|---|
4 | 11 | |
83 | 212 | |
- | - | |
5.1 | 2.1 | |
3 months ago | 3 months ago | |
Julia | 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.
Org.jl
- Org.jl: A Julia library for working with Org.
-
Tree-sitter grammar for org-mode
They "sell" tree-sitter as high performance. Of course, Org will also require external scanners to resolve ambiguity and the performance will depend on those scanners. tree-sitter-org currently takes ~7sec to parse a 18M org file - ~2x faster than elisp implementation. Though https://github.com/tecosaur/Org.jl is much faster
-
Is there any web viewer for org-mode files similar to jupyter nbviewer?
Pretty slow compared to built-in Elisp parser: https://old.reddit.com/r/emacs/comments/s0zvlh/formal_specification_and_programmatic_parser_for/hs7idd1/ One new promising parser in terms of speed is https://github.com/tecosaur/OrgMode.jl
- OrgMode.jl: A Julia library for working with Org, WIP.
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?
org-parser - org-parser is a parser for the Org mode markup language for Emacs.
language-server-protocol - Defines a common protocol for language servers.
orgro - An Org Mode file viewer for iOS and Android
tree-sitter-norg - A TreeSitter parser for the Neorg File Format
orgmode - Orgmode clone written in Lua for Neovim 0.9+.
Pluto.jl - 🎈 Simple reactive notebooks for Julia
smartparens - Minor mode for Emacs that deals with parens pairs and tries to be smart about it.
playground - Treesitter playground integrated into Neovim
combobulate - Structured Editing and Navigation in Emacs with Tree-Sitter
org-web - org-mode on the web, built with React, optimized for mobile, synced with Dropbox and Google Drive
tree-edit - 🌲 Structural editing in Emacs for any™ language!