Our great sponsors
-
puni
Structured editing (soft deletion, expression navigating & manipulating) that supports many major modes out of the box.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I'm guessing the way forward here for navigation is to change Emacs' built-in sexp-navigation when treesitter is available? forward-sexp, backward-up-list, down-list, raise-sexp etc do a good job in lisp environments, and they can now work everywhere. Packages that build on these (like Puni will automatically gain treesitter-awareness.
evil-mode users already have options, and there seems to be a new package with general applicability too.
evil-mode users already have options, and there seems to be a new package with general applicability too.
I'm also a diehard expand-region user! I believe a less precise but super simple command is better than a precise but complicated one. IMO expand-region > text objects, forward/backward-sexp/word > avy / other fancy navigation tool. But I digress. For tree-sitter aware expand-region, this is what I'm using: https://github.com/casouri/lunarymacs/blob/master/site-lisp/expreg.el
This is a really useful synopsis. symex has recently had TS support merged in, and apparently includes navigation and structural editing similar to its lisp-like language capabilities. I think it's still early going and I haven't tested, but may be worth a look.
I did, I used the c-ts-mode source as a reference. Even with a single query the performance is unacceptable in a 150 loc file. Here's the source I'll take a look at the links you provided tho when I get the time.
The work done in redisplay_internal went down significantly but still sits pretty high in big files such as https://github.com/jgm/pandoc/blob/main/src/Text/Pandoc/Parsing/General.hs