about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2024-10-27T12·04+0300
committerclbot <clbot@tvl.fyi>2024-10-27T13·01+0000
commit0183c3684388e8d9d68adf04b5deceef2de45b67 (patch)
tree6c74e373f51fba050b22ed2d613192c916f19abe
parent3695f57d84f3ca575a81ebc8a59acb86f4ff405c (diff)
fix(tazjin/emacs): fix completion related problems r/8864
A while ago I decided to experiment with corfu and orderless instead of
company/prescient. This was prompted by issues which I had in EXWM, where some
sort of UI race with company elements could lock up a whole frame.

Now that I'm not on EXWM anymore this doesn't really matter, so I can bring back
company and set up prescient again correctly, fixing a whole bunch of issues
along the way:

* Completion issues where not all matching candidates where shown based on
  cursor position (I honestly have no idea what caused this and what was going
  on there, never figured it out, but enabling prescient properly fixes it).

* Code completion works again. Corfu, as I understand it, is technically
  better/cleaner/whatever than company - but it doesn't work anywhere,
  especially not in telega.el where I need completion more than anywhere else.

With this commit my Emacs behaves a lot better again.

Change-Id: I8f082de8211dd3be3bb7a0663d43d414cc320e49
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12690
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
-rw-r--r--users/tazjin/emacs/config/init.el12
-rw-r--r--users/tazjin/emacs/default.nix11
2 files changed, 15 insertions, 8 deletions
diff --git a/users/tazjin/emacs/config/init.el b/users/tazjin/emacs/config/init.el
index a5b0e933d56f..89aefdca4750 100644
--- a/users/tazjin/emacs/config/init.el
+++ b/users/tazjin/emacs/config/init.el
@@ -29,6 +29,10 @@
 
 (use-package browse-kill-ring)
 
+(use-package company
+  :config
+  (global-company-mode))
+
 (use-package consult
   :bind
   ("C-c r g" . consult-ripgrep)
@@ -68,6 +72,14 @@
   (prescient-persist-mode)
   (setq completion-styles '(basic prescient)))
 
+(use-package vertico-prescient
+  :config
+  (vertico-prescient-mode))
+
+(use-package company-prescient
+  :config
+  (company-prescient-mode))
+
 (use-package rainbow-delimiters :hook (prog-mode . rainbow-delimiters-mode))
 (use-package rainbow-mode)
 (use-package s)
diff --git a/users/tazjin/emacs/default.nix b/users/tazjin/emacs/default.nix
index 80a922043277..b07ca2927f44 100644
--- a/users/tazjin/emacs/default.nix
+++ b/users/tazjin/emacs/default.nix
@@ -53,13 +53,14 @@ pkgs.makeOverridable
       browse-kill-ring
       cargo
       clojure-mode
+      company
+      company-prescient
       consult
       deft
       direnv
       elixir-mode
       elm-mode
       erlang
-      depotExwm
       go-mode
       google-c-style
       gruber-darker-theme
@@ -93,6 +94,7 @@ pkgs.makeOverridable
       undo-tree
       uuidgen
       vertico
+      vertico-prescient
       vterm
       web-mode
       websocket
@@ -102,11 +104,6 @@ pkgs.makeOverridable
       zetteldeft
       zoxide
 
-      # experimental (not otherwise embedded in config yet)
-      orderless
-      corfu
-      eat
-
       # Wonky stuff
       (currentTelega epkgs)
       customTreesitGrammars # TODO(tazjin): how is this *supposed* to work?!
@@ -179,8 +176,6 @@ pkgs.makeOverridable
 
           # Expose telega/tdlib version check as a target that is built in
           # CI.
-          #
-          # TODO(tazjin): uncomment when telega works again
           inherit tdlibCheck;
           meta.ci.targets = [ "tdlibCheck" ];
         };