summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--user/emacs/init.el22
-rw-r--r--user/modules/tabnine.nix6
2 files changed, 21 insertions, 7 deletions
diff --git a/user/emacs/init.el b/user/emacs/init.el
index a90973c1..9317968a 100644
--- a/user/emacs/init.el
+++ b/user/emacs/init.el
@@ -558,12 +558,26 @@ _p_rev       _u_pper              _=_: upper/lower       _r_esolve
             (setq company-shell-clean-manpage t)
             (add-to-list 'company-backends '(company-shell company-shell-env))))
 
-(use-package company-tabnine
+(use-package tabnine
   :after (company)
-  :config (setq company-tabnine-binaries-folder "~/.local/tabnine")
+  :config (progn
+            (delq 'company-preview-if-just-one-frontend company-frontends)
+            (setq tabnine-binaries-folder "~/.local/tabnine")
+            (global-tabnine-mode)
+
+            (define-key tabnine-completion-map (kbd "TAB") #'tabnine-accept-completion)
+            (define-key tabnine-completion-map (kbd "<tab>") #'tabnine-accept-completion)
+
+            (define-key tabnine-completion-map (kbd "M-f") #'tabnine-accept-completion-by-word)
+            (define-key tabnine-completion-map (kbd "M-<return>") #'tabnine-accept-completion-by-line)
+
+            (define-key tabnine-completion-map (kbd "C-g") #'tabnine-clear-overlay)
+            (define-key tabnine-completion-map (kbd "M-[") #'tabnine-next-completion)
+            (define-key tabnine-completion-map (kbd "M-]") #'tabnine-previous-completion))
   :init (progn
-          (advice-add 'company-tabnine-start-process :around #'quiet)
-          (add-to-list 'company-backends #'company-tabnine)))
+          (advice-add 'tabnine-start-process :around #'quiet)
+
+          (add-hook 'kill-emacs-hook #'tabnine-kill-process)))
 
 ;;; Documentation
 
diff --git a/user/modules/tabnine.nix b/user/modules/tabnine.nix
index e4b80ad9..a702cf29 100644
--- a/user/modules/tabnine.nix
+++ b/user/modules/tabnine.nix
@@ -81,11 +81,11 @@ in
     };
 
     programs.emacs.extraPackages = epkgs: [
-      epkgs.company-tabnine
+      epkgs.tabnine
     ];
     programs.emacs.extraConfig = ''
-      (with-eval-after-load 'company-tabnine
-        (advice-add 'company-tabnine--executable-path :around
+      (with-eval-after-load 'tabnine
+        (advice-add 'tabnine--executable-path :around
           (lambda (original-function &rest args)
             "${pkgs.tabnine}/bin/TabNine")))
     '';