diff options
-rw-r--r-- | users/sterni/emacs/default.nix | 1 | ||||
-rw-r--r-- | users/sterni/emacs/init.el | 22 |
2 files changed, 22 insertions, 1 deletions
diff --git a/users/sterni/emacs/default.nix b/users/sterni/emacs/default.nix index 1200fefe4790..69d1d4ef41bc 100644 --- a/users/sterni/emacs/default.nix +++ b/users/sterni/emacs/default.nix @@ -23,6 +23,7 @@ let epkgs.melpaPackages.languagetool epkgs.melpaPackages.lsp-haskell epkgs.melpaPackages.lsp-mode + epkgs.melpaPackages.lsp-ui epkgs.melpaPackages.magit epkgs.melpaPackages.markdown-mode epkgs.melpaPackages.meson-mode diff --git a/users/sterni/emacs/init.el b/users/sterni/emacs/init.el index 38a87a286417..17b3f3573689 100644 --- a/users/sterni/emacs/init.el +++ b/users/sterni/emacs/init.el @@ -252,7 +252,27 @@ (use-package haskell-mode) (use-package lsp-mode :hook ((haskell-mode . lsp-deferred)) - :commands (lsp lsp-deferred)) + :commands (lsp lsp-deferred) + :config + (evil-define-key 'normal 'global + (kbd "<leader>lwr") 'lsp-workspace-restart + (kbd "<leader>lwq") 'lsp-workspace-shutdown + (kbd "<leader>la=") 'lsp-format-buffer + (kbd "<leader>lar") 'lsp-rename + (kbd "<leader>laa") 'lsp-execute-code-action)) +(use-package lsp-ui + :after lsp-mode + :custom + lsp-ui-doc-enable t + lsp-ui-doc-border "DimGray" + lsp-ui-doc-delay 0.5 + :config + (set-face-background 'lsp-ui-doc-background "WhiteSmoke") + (evil-define-key 'normal lsp-ui-mode-map + ;; TODO(sterni): emulate using xref for non-lsp? + (kbd "<leader>lgr") 'lsp-ui-peek-find-references + (kbd "<leader>lgd") 'lsp-ui-peek-find-definitions + (kbd "<leader>lc") 'lsp-ui-flycheck-list)) (use-package lsp-haskell :after lsp-mode :custom |