From 5391a79d60e2d4281895d3238035ec71f5f6c4d9 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 13 Aug 2023 14:41:06 -0700 Subject: [PATCH 01/10] Replace intrusive lsp-ui docs/error info with explicit keybinds --- init.el | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/init.el b/init.el index c6e1175..f8997c0 100755 --- a/init.el +++ b/init.el @@ -219,7 +219,10 @@ (which-key-mode +1)) ;; On the fly syntax checking -(use-package flycheck) +(use-package flycheck + :after evil + :config + (define-key evil-normal-state-map (kbd "SPC e") #'flycheck-list-errors)) ;; Completions (use-package company @@ -266,8 +269,8 @@ (use-package lsp-ui :after lsp-mode :init - (setq lsp-ui-doc-position 'at-point - lsp-ui-doc-delay 0.5) + (setq lsp-ui-doc-enable nil + lsp-ui-sideline-enable nil) :config (define-key lsp-ui-mode-map [remap xref-find-definitions] #'lsp-ui-peek-find-definitions) (define-key lsp-ui-mode-map [remap xref-find-references] #'lsp-ui-peek-find-references) @@ -280,6 +283,7 @@ (define-key evil-normal-state-map (kbd "SPC l s q") #'lsp-workspace-shutdown) (define-key evil-normal-state-map (kbd "SPC l s r") #'lsp-workspace-restart) (define-key evil-normal-state-map (kbd "SPC l i") #'lsp-ui-doc-glance) + (define-key evil-normal-state-map (kbd "SPC d") #'lsp-describe-thing-at-point) ;; Controls inside references popup (define-key lsp-ui-peek-mode-map (kbd "j") #'lsp-ui-peek--select-next) (define-key lsp-ui-peek-mode-map (kbd "k") #'lsp-ui-peek--select-prev) From b6308d757e59446d81ccf938239c767cafbfc255 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 13 Aug 2023 14:41:46 -0700 Subject: [PATCH 02/10] Add just-mode --- init.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/init.el b/init.el index f8997c0..a85b51d 100755 --- a/init.el +++ b/init.el @@ -165,6 +165,9 @@ :init (setq markdown-fontify-code-blocks-natively t)) +;; Justfile +(use-package just-mode) + ;; String casing functions (use-package string-inflection) From 82cd5dd3cc4284fc8c53ab6544da660fc6bea0cb Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 13 Aug 2023 16:55:56 -0700 Subject: [PATCH 03/10] Add undo-tree --- init.el | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index a85b51d..f302aa0 100755 --- a/init.el +++ b/init.el @@ -119,6 +119,14 @@ ("C-:" . avy-goto-word-1) ("M-g g" . avy-goto-line))) +(use-package undo-tree + :after evil + :config + (advice-add #'evil-undo :override #'undo-tree-undo) + (advice-add #'evil-redo :override #'undo-tree-redo) + (define-key evil-normal-state-map (kbd "SPC u v") #'undo-tree-visualize) + (global-undo-tree-mode)) + ;; Magit (git frontend) (use-package magit) @@ -285,7 +293,6 @@ (define-key evil-normal-state-map (kbd "SPC l = r") #'lsp-format-region) (define-key evil-normal-state-map (kbd "SPC l s q") #'lsp-workspace-shutdown) (define-key evil-normal-state-map (kbd "SPC l s r") #'lsp-workspace-restart) - (define-key evil-normal-state-map (kbd "SPC l i") #'lsp-ui-doc-glance) (define-key evil-normal-state-map (kbd "SPC d") #'lsp-describe-thing-at-point) ;; Controls inside references popup (define-key lsp-ui-peek-mode-map (kbd "j") #'lsp-ui-peek--select-next) From 3487b21cebd616f2aa6c787f1ca866af3282fbcb Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 13 Aug 2023 16:56:15 -0700 Subject: [PATCH 04/10] Reorganize define-keys --- init.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/init.el b/init.el index f302aa0..899df52 100755 --- a/init.el +++ b/init.el @@ -275,7 +275,14 @@ :config (add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration) (add-hook 'evil-insert-state-entry-hook #'lsp-signature-activate) - (add-hook 'evil-insert-state-exit-hook #'lsp-signature-stop)) + (add-hook 'evil-insert-state-exit-hook #'lsp-signature-stop) + (define-key evil-normal-state-map (kbd "SPC l r") #'lsp-rename) + (define-key evil-normal-state-map (kbd "SPC l a") #'lsp-execute-code-action) + (define-key evil-normal-state-map (kbd "SPC l = =") #'lsp-format-buffer) + (define-key evil-normal-state-map (kbd "SPC l = r") #'lsp-format-region) + (define-key evil-normal-state-map (kbd "SPC l s q") #'lsp-workspace-shutdown) + (define-key evil-normal-state-map (kbd "SPC l s r") #'lsp-workspace-restart) + (define-key evil-normal-state-map (kbd "SPC l d") #'lsp-describe-thing-at-point)) (use-package lsp-ui :after lsp-mode @@ -287,13 +294,6 @@ (define-key lsp-ui-mode-map [remap xref-find-references] #'lsp-ui-peek-find-references) (define-key evil-normal-state-map (kbd "SPC l d") #'lsp-ui-peek-find-definitions) (define-key evil-normal-state-map (kbd "SPC l u") #'lsp-ui-peek-find-references) - (define-key evil-normal-state-map (kbd "SPC l r") #'lsp-rename) - (define-key evil-normal-state-map (kbd "SPC l a") #'lsp-execute-code-action) - (define-key evil-normal-state-map (kbd "SPC l = =") #'lsp-format-buffer) - (define-key evil-normal-state-map (kbd "SPC l = r") #'lsp-format-region) - (define-key evil-normal-state-map (kbd "SPC l s q") #'lsp-workspace-shutdown) - (define-key evil-normal-state-map (kbd "SPC l s r") #'lsp-workspace-restart) - (define-key evil-normal-state-map (kbd "SPC d") #'lsp-describe-thing-at-point) ;; Controls inside references popup (define-key lsp-ui-peek-mode-map (kbd "j") #'lsp-ui-peek--select-next) (define-key lsp-ui-peek-mode-map (kbd "k") #'lsp-ui-peek--select-prev) From 7821b7b605afe5f8d9be9455dbd0f38175421912 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 13 Aug 2023 16:56:25 -0700 Subject: [PATCH 05/10] Add keybind to make a new frame --- init.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/init.el b/init.el index 899df52..5d7d235 100755 --- a/init.el +++ b/init.el @@ -338,6 +338,8 @@ (hyprctl "hy3:makegroup" "h, ephemeral") (make-frame-command))) +(define-key evil-normal-state-map (kbd "C-w a") #'make-frame-command) + (advice-add #'evil-window-left :override (lambda (&optional count file) (hyprctl "hy3:movefocus" "l"))) (advice-add #'evil-window-right :override From a254cc295195348698af2bcd6c69645ae447a2f0 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 13 Aug 2023 16:56:37 -0700 Subject: [PATCH 06/10] Override lsp-mode code action autoselect --- init.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/init.el b/init.el index 5d7d235..ffac10e 100755 --- a/init.el +++ b/init.el @@ -348,3 +348,19 @@ (lambda (&optional count file) (hyprctl "hy3:movefocus" "u"))) (advice-add #'evil-window-down :override (lambda (&optional count file) (hyprctl "hy3:movefocus" "d"))) + +;;; Overrides + +;; stop lsp-mode from yoloing code actions when only one is present +(defun lsp--select-action (actions) + "Select an action to execute from ACTIONS." + (cond + ((seq-empty-p actions) (signal 'lsp-no-code-actions nil)) + ;;((and (eq (seq-length actions) 1) lsp-auto-execute-action) + ;;(lsp-seq-first actions)) + (t (let ((completion-ignore-case t)) + (lsp--completing-read "Select code action: " + (seq-into actions 'list) + (-compose (lsp--create-unique-string-fn) + #'lsp:code-action-title) + nil t))))) From de30f33f3d799215f3a0dfbeb81fe31ec15f9ea9 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 13 Aug 2023 17:19:50 -0700 Subject: [PATCH 07/10] Fix duplicate keybind --- init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.el b/init.el index ffac10e..82b3ba7 100755 --- a/init.el +++ b/init.el @@ -282,7 +282,7 @@ (define-key evil-normal-state-map (kbd "SPC l = r") #'lsp-format-region) (define-key evil-normal-state-map (kbd "SPC l s q") #'lsp-workspace-shutdown) (define-key evil-normal-state-map (kbd "SPC l s r") #'lsp-workspace-restart) - (define-key evil-normal-state-map (kbd "SPC l d") #'lsp-describe-thing-at-point)) + (define-key evil-normal-state-map (kbd "SPC l i") #'lsp-describe-thing-at-point)) (use-package lsp-ui :after lsp-mode From 1133ba17f1c6b1a1ef5b9884f6d371ff16767fb4 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Mon, 14 Aug 2023 00:24:07 -0700 Subject: [PATCH 08/10] Disable undo-tree autosave --- init.el | 1 + 1 file changed, 1 insertion(+) diff --git a/init.el b/init.el index 82b3ba7..2691b24 100755 --- a/init.el +++ b/init.el @@ -122,6 +122,7 @@ (use-package undo-tree :after evil :config + (setq undo-tree-auto-save-history nil) (advice-add #'evil-undo :override #'undo-tree-undo) (advice-add #'evil-redo :override #'undo-tree-redo) (define-key evil-normal-state-map (kbd "SPC u v") #'undo-tree-visualize) From 121242e037bbc2d975e1679970e74a794047e6dc Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 20 Aug 2023 13:41:18 -0700 Subject: [PATCH 09/10] Add java lsp --- init.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/init.el b/init.el index 2691b24..7b5892f 100755 --- a/init.el +++ b/init.el @@ -305,6 +305,17 @@ (use-package lsp-treemacs :after (lsp-mode treemacs)) +;; Java lsp +(use-package lsp-java + :after lsp-mode + :hook (java-mode . lsp) + :config + (setq lsp-java-server-install-dir (getenv "JDTLS_PATH")) + (defun lsp-java--ls-command () + (list "jdt-language-server" + "-configuration" "../jdt-configuration" + "-data" "../jdt-workspace"))) + ;; Nix support (use-package nix-mode :mode "\\.nix\\'" From 6b49d383078297cabe3193fa159f7851eaf58297 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 20 Aug 2023 14:33:58 -0700 Subject: [PATCH 10/10] Fix jdtls (as much as possible) --- init.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/init.el b/init.el index 7b5892f..a264470 100755 --- a/init.el +++ b/init.el @@ -308,13 +308,14 @@ ;; Java lsp (use-package lsp-java :after lsp-mode - :hook (java-mode . lsp) + :hook (java-ts-mode . lsp-deferred) :config (setq lsp-java-server-install-dir (getenv "JDTLS_PATH")) (defun lsp-java--ls-command () (list "jdt-language-server" - "-configuration" "../jdt-configuration" - "-data" "../jdt-workspace"))) + ;; this is called "configuration" for come reasn, its acually a cache + "-configuration" (concat (file-name-as-directory (getenv "XDG_CACHE_HOME")) "jdtls") + "-data" "../.jdtls"))) ;; Nix support (use-package nix-mode