* PROJ Design Decisions ** TODO bind =consult-lsp-diagnostics= to something? ** WAIT Add keybinding for embark-act outside of the minibuffer Idealy would replace =C-o= as the default binding. Current suggestion is both =:leader a= and =C-,=. Note that =C-,= is bound to ~org-cycle-agenda-files~ but so is =C-'=. ** TODO consider dropping prescient flag The only advantage over orderless is frecency over recency, without the better integration orderless has with built in emacs completion. A compromise might be to have ~+prescient~ just add prescient sorting, but it's probably not worth the maintenance burden. ** TODO =SPC s s= and =SPC s S= ~:sw~ ? There isn't really a selectrum analogue to ~swiper-isearch~, ~consult-isearch~ does something else (give you previously used isearch search terms). Bound to regular isearch for now. ** TODO =SPC s B= Selectrum/Consult don't have a ~swiper-all~ analogue either. Unbound for now. ** TODO orderless style dispatchers Currently the =!= style dispatcher is only as a prefix, due to the abundance of =!= final macros. In my opinion this is useful enough to break consistency. * PROJ HACKs to be addressed ** ~fboundp~ issues Even if the =ivy= module isn't loaded, it's packages can still get loaded by other means, such as =lispy= requiring =counsel=. This means that the ~fboundp~ logic such [[file:~/.emacs.d/modules/config/default/autoload/text.el::(cond ((fboundp 'consult-yank-pop) #'consult-yank-pop) ;;HACK see @ymarco's comment on #5013 and TODO.org][here]] and [[file:~/.emacs.d/core/autoload/projects.el::((fboundp 'selectrum-mode) ;HACK see @ymarco's comment on #5013 and TODO.org][here]] won't work unless the selectrum option is checked first, which is what we do for now. ** ~projectile-switch-project-action~ definition Without [[file:~/.emacs.d/modules/ui/workspaces/config.el::;; HACK?? needs review][this]] change new projects don't get opened in a new tab, but the exact working of this whole set up are a bit opaque to me. * PROJ Bugs ** TODO =C-SPC= and live previews Automatic live previews have been disabled on slow ~consult~ commands. =C-SPC= is partially implemented as the preview key for ~consult-*~ commands. Need to get it to work for other selectrum commands such =SPC h f=. #+begin_src emacs-lisp (let ((embark-quit-after-action nil)) (map! :map minibuffer-local-map "C-SPC" #'embark-default-action))) #+end_src gets us close but moves the cursor to the new screen which is undesirable. probable best strategy: create an ~embark-preview~ that does this, upstream it. ** TODO ripgrep height logic bad selectrum bug caused by file descriptors https://github.com/raxod502/selectrum/issues/491 ** TODO ~(defadvice! +orderless-match-with-one-face..~ causes lexical error probably caused by some doomism https://github.com/oantolin/orderless/issues/41 ** TODO ~selectrum-repeat~ Issues Unlike Ivy, ~selectrum-repeat~ doesn't restore the position of the selection in the completion buffer. Seems to be reproduced in ~emacs -Q~. If so, create upstream selectrum issue. ** TODO Embark export window buffer switching logic If we export bookmarks, grep session, or ~find-file~ session, when pressing enter, it opens the new buffer in another window rather than the main one, even though at least the bookmark function ostensibly uses ~pop-to-buffer-same-window~. Ivy gets the window switched in the bookmarks and grep case due to a custom ivy occur window switching function. ** TODO selectrum =SPC /= is much slower than ivy =SPC /= requires further investigation. is ~consult-ripgrep~ slower than ~counsel-rg~? is it something the custom search function is doing? does ivy cache stuff? * PROJ Missing Features ** TODO Icons https://github.com/minad/marginalia/issues/59 ** TODO =C-C C-e= wgrep fun - check if we can add this to ~consult-line~ too ** TODO bibtex-actions improvements? currently =SPC n b= is bound to a function, but =bibtex-actions= doesn't have a main dispatch function like =ivy-bibtex=, rather it has a bunch of different ones. Binding the ~bibtex-actions-map~ there would probably be better, but there are nontrivial loading order shenanigans happening that make that not straightforward. ** TODO Ivy Parity *** TODO pass module *** TODO remaps refactor these to use consult so previews can work, also maybe have narrowed number keys for workspaces? #+begin_src elisp [remap switch-to-buffer] #'+ivy/switch-buffer [remap switch-to-buffer-other-window] #'+ivy/switch-buffer-other-window [remap persp-switch-to-buffer] #'+ivy/switch-workspace-buffer [remap evil-show-jumps] #'+ivy/jump-list #+end_src *** TODO ~+irc/selectrum-jump-to-channel~ rework to use ~consult~ buffer narrowing, for some reason the current attempt breaks marginalia annotating *** WAIT lookup module - ~dash-docs~ backend (needs to be created) - ~+lookup--online..~ functionality (needs a consult analogue of ~counsel-search~) *** WAIT taskrunner module in all likelihood requires writing ~consult-taskrunner~.