Besides performance, is there now any other advantage in using clojure-ts-mode over clojure-mode?
I was recently trying out expreg instead of expand-region, particularly as I'm not fond of the latter's behavior in certain other languages, and I thought I'd try if expreg works better out of the box in combination with the ts-modes available for those languages.
I'm not sure if it was reasonable to expect some improvements for clojure as well but, for example, I tried to see if key value pairs are recognized as the next element to expand to after individual symbols, and that doesn't seem to work. Same for let bindings.
That seemed like something where treesitter would be better compared to a regexp based implementation.
for the specific case you mentioned about key-value pairs, i doubt that existing tree-sitter grammars for clojure will help. if you are interested in more context, https://github.com/sogaiu/tree-sitter-clojure/pull/70 has some comments on the matter.
In any case, I just ran into my first ABI version mismatch error with another language's grammar file... I'll sit out tree-sitter modes for the time being I guess until things stabilize. Not worth building Emacs from source for it.
That ABI error... It still is terrorizing me, I dont really understand the playbook to make sure it works- Ive tried recompiling emacs even but I can't really tell which tree-sitter it's trying to use (and I can never tell in which direction the ABI error goes, am I too recent? too old?) I'm actually surprised at how much of a hassle it is still
Evaluate (treesit-library-abi-version) to see Emacs' version.
In my case 14, and the grammar is 15. So I would need to pin that grammar repo at the last point it was still 14. The tags or release notes in that repo were less than helpful.
not going through all that for each language I'm interested in. Seems this is still not ready for anyone but uber-ricers.
i don't think this is a user error thing -- imo it's more problems that originate from a combination of lack of experience when tree-sitter was designed and developed, bad timing with ms take-over essentially taking out atom, and subsequent poor funding / low resources (and likely other factors i've left out or am not aware of).
if existing non-tree-sitter modes work well enough, i would suggest staying with them.