summary refs log tree commit diff stats
path: root/user/emacs
diff options
context:
space:
mode:
Diffstat (limited to 'user/emacs')
-rw-r--r--user/emacs/init.el23
1 files changed, 23 insertions, 0 deletions
diff --git a/user/emacs/init.el b/user/emacs/init.el
index 01f25b38..870032ae 100644
--- a/user/emacs/init.el
+++ b/user/emacs/init.el
@@ -608,6 +608,29 @@ _C-k_: prev  _u_pper              _=_: upper/lower       _s_mart resolve
             (setq kind-icon-default-face 'corfu-default)
             (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter)))
 
+(use-package tabnine-core
+  :config (progn
+            (setq tabnine-binaries-folder "~/.local/tabnine")
+            (with-demoted-errors "TabNine error: %s"
+              (when (tabnine--executable-path)
+                (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-e") #'tabnine-accept-completion-by-line)
+            (define-key tabnine-completion-map (kbd "<right>") #'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 'tabnine-start-process :around #'quiet)
+
+          (add-hook 'kill-emacs-hook #'tabnine-kill-process)))
+
 (use-package tempel
   :general ("M-+" #'tempel-complete ;; Alternative tempel-expand
             "M-*" #'tempel-insert