diff --git a/.emacs b/.emacs index eede3fd..0b265d6 100644 --- a/.emacs +++ b/.emacs @@ -46,6 +46,8 @@ '(lisp-simple-loop-indentation 4) '(lisp-tag-body-indentation 4) '(lisp-tag-indentation 4) + '(lsp-copilot-enabled t) + '(lsp-inline-completion-idle-delay 99999999) '(org-agenda-files '("~/org/1.TODO.org")) '(package-enable-at-startup nil) '(package-selected-packages nil) @@ -358,12 +360,6 @@ ) ) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) (use-package xterm-color :config @@ -376,49 +372,6 @@ ) -;; (use-package smart-tabs-mode -;; :config -;; (setq-default tab-width 4) ; or any other preferred value -;; (setq cua-auto-tabify-rectangles nil) -;; (smart-tabs-advice c-indent-line c-basic-offset) -;; (smart-tabs-advice c-indent-region c-basic-offset) - -;; (smart-tabs-add-language-support cmake cmake-mode-hook -;; ( -;; (cmake-indent . cmake-tab-width) -;; ) -;; ) - -;; (smart-tabs-add-language-support protobuf protobuf-mode-hook -;; ( -;; (c-indent-line . c-basic-offset) -;; (c-indent-region . c-basic-offset) -;; ) -;; ) - -;; (smart-tabs-add-language-support glsl glsl-mode-hook -;; ( -;; (c-indent-line . c-basic-offset) -;; (c-indent-region . c-basic-offset) -;; ) -;; ) - -;; (smart-tabs-add-language-support opencl opencl-mode-hook -;; ( -;; (c-indent-line . c-basic-offset) -;; (c-indent-region . c-basic-offset) -;; ) -;; ) - -;; (smart-tabs-add-language-support elisp emacs-lisp-mode-hook -;; ( -;; (lisp-indent-line . lisp-indent-offset) -;; (lisp-indent-region . lisp-indent-offset) -;; ) -;; ) - -;; (smart-tabs-insinuate 'c 'c++ 'cmake 'nxml 'protobuf 'glsl 'elisp) -;; ) (use-package aggressive-indent :hook @@ -752,19 +705,22 @@ (setq lsp-ui-doc-use-webkit t) ) (add-to-list 'lsp-language-id-configuration '("\\.postcss\\'" . "css")) - (advice-add 'lsp :before - (lambda (&rest _args) - (eval '(setf (lsp-session-server-id->folders (lsp-session)) (ht) - ) - ) - ) + (defun atu/lsp-inline-completion-display-toggle-key () + "Add or remove `i` key from the lsp-command-map` depending on `lsp-inline-completion-mode`" + (if lsp-inline-completion-mode + (define-key lsp-command-map (kbd "i") #'lsp-inline-completion-display) + (define-key lsp-command-map (kbd "i") nil))) + + (with-eval-after-load 'lsp-inline-completion + (define-key lsp-inline-completion-active-map (kbd "C-j") #'lsp-inline-completion-accept) ) - (setq lsp-completion-provider :none) - :bind ( - ("C-c C-d" . lsp-ui-doc-toggle) - ) - :hook - (lsp-mode . lsp-enable-which-key-integration) + :bind (("C-c C-d" . lsp-ui-doc-toggle)) + + :hook ( + (lsp-mode . lsp-enable-which-key-integration) + (lsp-inline-completion-mode . lsp-inline-completion-company-integration-mode) + (lsp-inline-completion-mode . atu/lsp-inline-completion-display-toggle-key) + ) :commands (lsp lsp-deferred) )