Tree-sitter vs. Language Servers
https://lambdaland.org/posts/2026-01-21_tree-sitter_vs_lsp/
#HackerNews #TreeSitter #LanguageServers #Programming #Tools #Development
Tree-sitter vs. Language Servers
https://lambdaland.org/posts/2026-01-21_tree-sitter_vs_lsp/
#HackerNews #TreeSitter #LanguageServers #Programming #Tools #Development
The #emacs #scheme #treesitter mode is now a proper emacs package with install instructions https://git.sr.ht/~dieggsy/scheme-ts-mode #guile
hmm... a #scheme #treesitter #emacs mode in progress
https://git.sr.ht/~dieggsy/scheme-ts-mode
Should work for #guile
https://github.com/6cdh/tree-sitter-scheme/issues/9#issuecomment-1735486629
The #emacs #scheme #treesitter mode is now a proper emacs package with install instructions https://git.sr.ht/~dieggsy/scheme-ts-mode #guile
@algernon
This is called a #TextObject and it's a bliss.
The d deletes, the di deletes Inside and the di( deletes inside the parenthesis.
Use da[ to delete around the square brackets.
Or ci{ to change inside the curly braces.
One I use a lot is dap to delete the whole paragraph.
And it gets better with extra text objects based on #TreeSitter.
TIL di( is a thing, and it is really useful. The whole di thing is great.
@algernon
This is called a #TextObject and it's a bliss.
The d deletes, the di deletes Inside and the di( deletes inside the parenthesis.
Use da[ to delete around the square brackets.
Or ci{ to change inside the curly braces.
One I use a lot is dap to delete the whole paragraph.
And it gets better with extra text objects based on #TreeSitter.
hmm... a #scheme #treesitter #emacs mode in progress
https://git.sr.ht/~dieggsy/scheme-ts-mode
Should work for #guile
https://github.com/6cdh/tree-sitter-scheme/issues/9#issuecomment-1735486629
Lem news: #treesitter support for JSON, YAML, Markdown, Nix, WAT.
https://lem-project.github.io/development/tree-sitter/
with AI in the loop.
Lem news: #treesitter support for JSON, YAML, Markdown, Nix, WAT.
https://lem-project.github.io/development/tree-sitter/
with AI in the loop.
TIL that in Nix, if you have a multi-line string of code, you can simply prefix it with a comment stating the name of the language and Tree-sitter will highlight it for you!
{
# The TOML string below will be highlighted!
programs.foo.extraConfig = /* toml */ ''
bar = "baz"
'';
}
TIL that in Nix, if you have a multi-line string of code, you can simply prefix it with a comment stating the name of the language and Tree-sitter will highlight it for you!
{
# The TOML string below will be highlighted!
programs.foo.extraConfig = /* toml */ ''
bar = "baz"
'';
}
Recently with verion 0.25 the treesitter library changed ABI version
to 15. Newer parsers will complain about a version mismatch if the
installed library used by emacs is lower than this version. This ABI
version was introduced in the 0.25 branch of treesitter.
The best course of action till lib treesitter is updated is to pin
the version of the parser to the last version supporting ABI 14.
With the new ABI 15 version, parsers are required to provide a
treesitter.json file with additional metadata which can be used as
proxy to find a version which still supports ABI-14, i.e. the commit
before that.
A lot of the parsers are provided by the treesitter project as sub
repos, and they follow the same version convention as the library,
selecting the last tag before the 0.25 tag is a good way to find a
compatible version.
This branch can be added after the repo url in the
treesit-language-source-alist variable. Note that if you use
treesit-auto-install-all to get it over with, you have to probably
restart your emacs as treesit-auto apparently caches the value
during iniitialisation and changes are not picked up. #emacs#treesitter
Recently with verion 0.25 the treesitter library changed ABI version
to 15. Newer parsers will complain about a version mismatch if the
installed library used by emacs is lower than this version. This ABI
version was introduced in the 0.25 branch of treesitter.
The best course of action till lib treesitter is updated is to pin
the version of the parser to the last version supporting ABI 14.
With the new ABI 15 version, parsers are required to provide a
treesitter.json file with additional metadata which can be used as
proxy to find a version which still supports ABI-14, i.e. the commit
before that.
A lot of the parsers are provided by the treesitter project as sub
repos, and they follow the same version convention as the library,
selecting the last tag before the 0.25 tag is a good way to find a
compatible version.
This branch can be added after the repo url in the
treesit-language-source-alist variable. Note that if you use
treesit-auto-install-all to get it over with, you have to probably
restart your emacs as treesit-auto apparently caches the value
during iniitialisation and changes are not picked up. #emacs#treesitter
Master thesis by Hendy Liang: "Property-Based ASTs: Enabling Language Parametricity in Refactoring Tools"
"By leveraging Tree-Sitter, a parser generator that creates parsers that produce generic, property-based ASTs, this research adapts Renaissance, an existing industrial refactoring tool, to support multi-language extensibility with minimal additional effort."
https://repository.tudelft.nl/record/uuid:6e143a35-32b8-4f7e-928e-52057ea57566