Commit graph

14 commits

Author SHA1 Message Date
Vincent Ambo
e78b79c6cd refactor(tazjin/emacs): ivy,swiper,counsel -> vertico,consult
vertico and consult are more modern versions of interactive narrowing
helpers, as those implemented by ivy and its related packages.

The primary differences (and what I care about here) is that they are
more focused on integration with the core Emacs primitives, rather
than building an ecosystem around them.

For example:

* vertico enhances `completing-read' and friends, but does not attempt
  to provide its own ecosystem of functions to *trigger* completions.

* vertico integrates with the default `completion-style' system,
  meaning that I can continue to use things like prescient without
  extra packages that integrate it with vertico

* consult does not rely on vertico or any other specific completion
  framework (such as counsel/swiper do with ivy), and simply
  implements its functions using completing-read

This reduces the overall amount of code in the dependency closure and
leads to a less special setup.

Functionality is basically equivalent, except for two things which
counsel came with that I will need to substitute:

* counsel-notmuch (actually this was a separate package, but I didn't
  use it much anyways, so just ignoring it for now)
* counsel-linux-app (opening desktop shortcuts, this I will need to make)

As a side note, consult notes "This package is a part of GNU Emacs",
but it doesn't seem to be the case.

Change-Id: Ia046b763bf3d401b505e0f6393cfe1ccd6f41293
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9155
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2023-08-26 23:30:21 +00:00
Vincent Ambo
9afa1dacf8 chore(tazjin/emacs): remove a bunch of unused code
Change-Id: Ife854e83ef97f1e9a26072f2ab2a3b23f5d64840
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9154
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2023-08-26 13:25:57 +00:00
Vincent Ambo
df4a09864a feat(tazjin/emacs): implement reliably-switch-buffer
Adds a completing-read function (defaulting to ivy for me, but it
doesn't matter) that offers a reliable alternative to standard
buffer-switching implementations.

In particular, this implementation retains a mapping of
buffer names to their buffer *objects*, so that the correct buffer is
selected even if some renaming took place during the selection.

I tried to account for a bunch of the common behaviours I could think
of:

* invisible buffers are ... invisible
* entering a buffer name manually creates that buffer, if there is no
  match
* ... unless that buffer is an invisible buffer, in which case it is
  selected and switched to
* the first element is always `(other-buffer (current-buffer))`,
  because of the ordering of #'buffer-list

Yet, the entire code of my implementation is less than the *setup*
code of ivy-switch-buffers, so it's possible I missed something. Well,
I'll find out ...

Change-Id: I08be0da0863d06c9a930e5efaf916719655db90e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9147
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2023-08-23 20:22:25 +00:00
Vincent Ambo
261ae2de95 feat(tazjin/emacs): make zoxide project opener work without git
Work projects are not in git, but I still want to fuzzy jump to them.

Change-Id: Iced78519da69b6992d253e2a0c9ed485f1347164
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9005
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
2023-08-04 16:35:47 +00:00
Vincent Ambo
edea7ecc18 feat(tazjin/emacs): add german-qwerty input method
I often have to type text in German, but on the German keyboard layout
'Y' and 'Z' are in the wrong place (why? who knows). To avoid this
confusion, this defines an input method with the positions of those
keys corrected.

Change-Id: Ie446329d151cd3ed2bbeae1a34fc82d3c29f1d12
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7440
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-27 12:23:43 +00:00
Vincent Ambo
0dc2b19ebe fix(tazjin/emacs): globally unbind C-x s
This shortcut is so unbelievably annoying on some keyboards.

Change-Id: I5c96d490fd42aa8422fa48be87079b60af81fcd3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6527
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-09-11 20:12:47 +00:00
Vincent Ambo
6328f1c7c8 feat(tazjin/emacs): add zoxide-open-magit and a binding for it
Change-Id: Ibe3264769ab6e6d1400088e8a72d3ef22dc4cd78
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4514
Reviewed-by: tazjin <mail@tazj.in>
Autosubmit: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-12-20 08:52:49 +00:00
Vincent Ambo
de9e7f14c1 feat(tazjin/emacs): Bind a key for #'tvl-depot-status
Change-Id: I46387b5193ecca082d0bc3e7ba7c0907fb9cf639
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3822
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-11-10 17:58:28 +00:00
Vincent Ambo
bef01b1419 feat(tazjin/emacs): Add #'rg-in-project
Uses project.el to anchor the ripgrep search. In combination with my
project detection logic, this means that grepping in TVL subprojects
works automatically.

Change-Id: I2705466d1de156c08ff0401a71112864aa24f976
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2542
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-22 13:50:34 +00:00
Vincent Ambo
2485006197 refactor(tazjin/emacs): Always use completing-read instead of ivy
This is a step towards making the completing-read framework more
easily interchangeable (I'm eyeing selectrum).

Change-Id: I7a066e212a5384136defbba8f11ef9ed57abf22e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2240
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2020-12-09 14:09:23 +00:00
Vincent Ambo
cce0ad1bcd chore(tazjin/emacs): Minor cleanup of unused modes and config
Change-Id: I38c6a32339bf7606b733a938b4e55df2506a13a7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2107
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2020-11-21 13:27:20 +00:00
Vincent Ambo
48235517f6 feat(tazjin/emacs): Add function for quick Songwhip lookups
Adds a function `songwhip-lookup-url` which looks up the supplied URL
on Songwhip and copies the Songwhip link if a result was found.

This is bound to `s-s w` for convenience.

Change-Id: I3b529a058ee56f992942760910822490e6324259
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2002
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-09-27 21:02:41 +00:00
Vincent Ambo
35b214ae9f feat(tazjin/emacs): Add magit-find-file-worktree function
This will look up a file in the current worktree of the git repository
enclosing `default-directory'.

In combination with project-find-file this lets me toggle between
switching to a file within a project, and within the whole depot.

Change-Id: Ie1011f10051fc2c4bd4279b0944a79c7edf92f3b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1838
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-08-23 23:47:46 +00:00
Vincent Ambo
0b0e8c2da7 chore(tazjin/emacs): Move //tools/emacs to //users/tazjin/emacs
Change-Id: I9dfbd0bb1fd3e215bb91c5734fb0934ee3faeae6
2020-06-18 20:19:50 +01:00
Renamed from tools/emacs/config/bindings.el (Browse further)