Makepad.dev cool zoom effect

Hello

Code-folding is one of the long-running issue still unresolved in Kakoune : code folding · Issue #453 · mawww/kakoune · GitHub

Strangely enough, in other editors that supports it, like VSCode, I don’t have the reflex to use this feature to collapse or expand part of the code. To have an overview of a file, I often rely on the “outline panel”, which is a companion viewport in the main sidebar.

Today I was positively surprised by a “damn cool trick” that I’ve never seen anywhere before.

Have a try for yourself, open https://makepad.dev/ and press the Alt key.

I’m sure some of you may find this text-size transition gimmicky, or even distracting, and in the same ball park than the cursor effects of neovide GitHub - Kethku/neovide: No Nonsense Neovim Client in Rust, but I’m sure others would appreciate that it can also somehow help our cognitive representation of the text layout in 2D space.

In the end this zooming effect is yet another nice addition that may justify to investigate revisiting the “GUI over Kakoune” topic again…

8 Likes

I really like this! I never longed for code folding but this gives a nice and useable overview.

In the end this zooming effect is yet another nice addition that may justify to investigate revisiting the “GUI over Kakoune” topic again…

It might be enough to just represent the minimized sections with some braille characters :smiley:

It would be a real shame to see these things as gimmicky. Animations greatly help maintaining feel of the context changing, and as a heavy Emacs user I must say, that I would 100% use some plugin that makes the Ctrl+l key scroll smoothly, because it is really hard to tell which direction screen just got scrolled. (EDIT: Huh, this made me go search for something like that, and I’ve actually found a package for that) Same for cursor jumping, but this is basically solved with Malabarba/beacon, and I’ve actually did something similar for Kakoune in the past: beacon.kak

Overall, I would say that these animations are not distractions at all, and I would welcome these in any text editor, as long as I could fine-tune animation speed.

4 Likes

I use a nasty hack to get outlines. Always have in Kakoune.

I use a grep that is language specific to stuff I might care about in that language.

With baseline is:

map window user o %{: grep HACK|TODO|FIXME|XXX|NOTE|^\w+ %val{bufname} -H<ret>} -docstring "Show outline"

I can additionally tweak it by project and language.

1 Like

I hadn’t thought about it before, but if it is useful (which the Emacs plugin’s stars seems to imply) it is pretty easy to add a hook to kakoune-smooth-scroll that highlights the final selection after a move (this is calling :beacon in Andrey’s dotfiles implementation):

Edit:

(EDIT: Huh, this made me go search for something like that, and I’ve actually found a package for that)

This would also be possible, i.e. do what vv does (but smoothly) after scrolling but it is a bit more work. A large scrolloff value is another option but this would be more selective; it would not center every move but only for window moves.

2 Likes

I’m not very proud of this beacon.kak script, but I found it pretty useful. With the inclusion of alpha blending I think it can be done much better, without needing to specify transition colors. The timer thing is also a bit finicky, as it works good only on fast PCs, and needs a fine tuning of the delay to make it work smoothly in something like Termux.

1 Like

That word is so perfect for what frustrates me. Finicky scripts. The more I think about improvements that could be made to Kakoune, documentation, escaping, and “finickiness” are the three things that jump to mind… I wonder what can be done in the core to enable a little less of the parts that feel bad.

2 Likes

in my experience POSIX shell itself is very finicky, and I don’t think anything can be done to make it better. We’re stuck here. Unless, you know :slight_smile:

I think it’s like with old people* – old software becomes finicky over time, because when you’re young you don’t notice flaws, but as you grow older, you became self aware of those more and more, and while some can be fixed, others are so deep in the roots of your personality, that nothing can be done to them, and you naturally became finicky to avoid touching those flaws. :smiley:

* not all old people are like that, there are a lot of great old people who’re extremely thoughtful and not finicky, but I guess we all know what I’ve meant there