5 ms·
I always love reading these guides, and I will eventually give in and buy Mickey's book just as a quick peek into his overflowing mind.... but this article left
by tetris11 3y ago
I always love reading these guides, and I will eventually give in and buy Mickey's book just as a quick peek into his overflowing mind.... but this article left me wanting for a fizzy completion engine in emacs.
There is the emacs-fzf package, icicles, and various other vertical completion frameworks, but I essentially want something that pretends to be fzf at the Emacs level, without having to spawn background shell scripts
- xenodium 3y agoEmacs completion frameworks are handy within our beloved editor but also well beyond. A recent post I wrote: https://xenodium.com/building-your-own-bookmark-launcher https://xenodium.com/building-your-own-bookmark-launcher
- natrys 3y agoVarious vertical completion frameworks like vertico are essentially front-end UIs. You can choose underlying filtering and sorting/scoring algorithm by setting `completion-styles` variable. One popular choice here is the orderless package (which probably doesn't give "fuzzy" completion experience as most people call it I guess, orderless-flex does filtering but not heuristic based sorting like fzf does). There are some options outlined in the readme of fussy[1], which is a wrapper around them. There are some pure elisp ones, and some written in native languages (including fzf itself) interfaced with dynamic module (so FFI rather than subprocess). Does that qualify as Emacs level? [1] https://github.com/jojojames/fussy https://github.com/jojojames/fussy
- tetris11 3y agoYeah, I'm currently using orderless with vertico for my "fuzzy" needs, but I genuinely do find ido completion much faster and more practical 90% of the time.
- flylikeabanana 3y agoOrderless is probably the way to go for a “pure emacs” solution - its selling point is that you can feed whatever function you want into the completion framework, so if you feed a fuzzy completer then you get fuzzy matching. It’s also part of a relatively new completion stack (that includes vertico, marginalia, and others) that leverages the inbuilt emacs features instead of replacing them.
- hprotagonist 3y agoM-x ask and ye shall receive: https://github.com/jojojames/fussy https://github.com/jojojames/fussy
- binary132 3y agoI have come to really think that a big problem in the open source world is the non-standardization of interfaces. Text over stdio and communicating processes is just not the greatest; if every program standardized on C ABI library protocols, and offered stdio and socket interfaces to them, then suddenly the landscape of possibilities in software composition would be way broader. Herding daemons and managing docker containers when we have the linker and dynamic libraries just doesn’t feel sane or sanitary to me, especially outside of the Linux shell. This is how we end up with 50 different implementations of syntax parsers, fuzzy-finding, API clients, etc.
- gumby 3y ago> I have come to really think that a big problem in the open source world is the non-standardization of interfaces. Text over stdio and communicating processes is just not the greatest… We lost that battle in the late 70s/early 80s. It has nothing to do with the open source world.
- binary132 3y agoOpen source has everything to do with interoperability of software.
- mickeyp 3y ago> C ABI library protocols, and offered stdio and socket interfaces to them, then suddenly the landscape of possibilities in software composition would be way broader You've just invented a rudimentary and worse version of COM. (There are advantages in not limiting yourself to low-level tooling like ptys/pipes/sockets.) https://en.wikipedia.org/wiki/Component_Object_Model https://en.wikipedia.org/wiki/Component_Object_Model