dmacs
tree-sitter-bash
dmacs | tree-sitter-bash | |
---|---|---|
5 | 5 | |
113 | 190 | |
- | 2.6% | |
8.2 | 0.0 | |
6 months ago | 14 days ago | |
Emacs Lisp | C | |
BSD 2-clause "Simplified" 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.
dmacs
-
Emacs and Java Development: Corfu + Cape + LSP-Mode + Treesit
(use-package lsp-java :after lsp-mode :hook (java-mode-local-vars . java-lsp) :custom (lsp-jt-root (concat lsp-java-server-install-dir "java-test/server/")) (dap-java-test-runner (concat lsp-java-server-install-dir "test-runner/junit-platform-console-standalone.jar")) ;; Stolen from: https://github.com/dakra/dmacs/blob/master/init.org#java ;; Use Google style formatting by default (lsp-java-format-settings-url "https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml") (lsp-java-format-settings-profile "GoogleStyle") (lsp-java-vmargs `("-XX:+UseParallelGC" "-XX:GCTimeRatio=4" "-Dsun.zip.disableMemoryMapping=true" "-noverify" "-Xmx1G" "-XX:+UseG1GC" "-XX:+UseStringDeduplication" ,(concat "-javaagent:" ;; probably need to update this. (expand-file-name "~/.m2/repository/org/projectlombok/lombok/1.18.22/lombok-1.18.22.jar")) ,(concat "-Xbootclasspath/a:" (expand-file-name "~/.m2/repository/org/projectlombok/lombok/1.18.22/lombok-1.18.22.jar")))) :config ;; Also stolen from: https://github.com/dakra/dmacs/blob/master/init.org#java (defun java-lsp () (setq electric-indent-inhibit nil) (lsp-deferred) (if (bound-and-true-p lsp-mode) (setq-local completion-at-point-functions (list (cape-capf-buster #'cape:lsp-cape) #'cape-file)))))
-
Package wanted: List of recent buffers
For sticky windows I have this in my config:
-
Is there a shared/community-driven `mc/list-file` for `multiple-cursors`?
You can use my mc-list.el as a starting point which should cover a lot of the popular packages.
-
(wishlist) Has anyone built an org-mode + git log integration?
This is my config for orgit:
-
cd'ing to ~ of a remote in eshell
I have an lcd command for that in my config. I think I stole it somewhere but not sure from where exactly:
tree-sitter-bash
-
Ask HN: What are some unpopular technologies you wish people knew more about?
(1) Zulip Chat - https://zulip.com/ - seems to be reasonably popular, but more people should know about it
I’ve been using it for over 5 years now [1], and it’s as good as ever. It’s way faster than any other chat app I’ve used. It has a good UI and conversation model. It has a simple and functional API that lets me curl threads and write blog posts based on them.
(only problem is that I Ctrl-+ in my browser to make the font bigger – I think it’s too dense for most people)
(2) re2c regex to state machine compiler - https://re2c.org
A gem from the 90’s, which people have done a great job maintaining and improving (getting Go and Rust target support in the last few years). I started using it in 2016, and used for a new program a few months ago. I came to the conclusion that it should have been built into C, because C has shitty string processing – and Ken Thompson both invented C AND brought regular languages to computing !!
In comparison, treesitter lexers are very low level, fiddly, and error prone. I recently saw dozens of ad hoc fixes to the tree-sitter-bash lexer, which is unsurprising if you look at the structure of the code (manually crawling through backslashes and braces in C).
https://github.com/tree-sitter/tree-sitter-bash/blob/master/...
These fixes are definitely appreciated, but I think it indicates a problem with the model itself.
(based on https://lobste.rs/s/endspx/software_you_are_thankful_for#c_y...)
[1] https://www.oilshell.org/blog/2018/04/26.html
-
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))
-
Treesiter problem with .bashrc
I ran into this issue as well a few weeks ago, there's already a few issues for it: https://github.com/tree-sitter/tree-sitter-bash/issues/151
- Building tree-sitter languages for Emacs
-
Convert curl commands to code in several languages
All 3 of these are linked to under "Related Tools".
Those projects use a pretty basic tokenizer
https://github.com/luckymarmot/Paw-cURLImporter/blob/master/...
Insomnia and Postman use commander.js for their bash parsing which looks like it just splits on space:
https://github.com/tj/commander.js/blob/02a124c7d58dbae2ef11...
and only support a few of curl's options. Curlconverter uses tree-sitter's Bash grammar https://github.com/tree-sitter/tree-sitter-bash/ and tries to at least correctly discard all of curl's options and any options that curl used to have.
What are some alternatives?
vertico - :dizzy: vertico.el - VERTical Interactive COmpletion
tree-sitter-zig - Tree-sitter package for the Zig programming language
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
curl-to-go - Convert curl commands to Go code in your browser
meow - Yet another modal editing on Emacs / 猫态编辑
tree-sitter-yaml - YAML grammar for tree-sitter
dotfiles - I showed you my source code, pls respond
curl-to-php - Convert curl commands to PHP code in your browser
tree-sitter-java - Java grammar for tree-sitter
tree-sitter-cmake - A Tree-sitter parser for CMake
tree-sitter-css - CSS grammar for Tree-sitter