diff options
Diffstat (limited to '.config/emacs/lisp/evil-collection/modes/eglot')
| -rw-r--r-- | .config/emacs/lisp/evil-collection/modes/eglot/README.org | 19 | ||||
| -rw-r--r-- | .config/emacs/lisp/evil-collection/modes/eglot/evil-collection-eglot.el | 50 |
2 files changed, 69 insertions, 0 deletions
diff --git a/.config/emacs/lisp/evil-collection/modes/eglot/README.org b/.config/emacs/lisp/evil-collection/modes/eglot/README.org new file mode 100644 index 0000000..b93d3c1 --- /dev/null +++ b/.config/emacs/lisp/evil-collection/modes/eglot/README.org @@ -0,0 +1,19 @@ +* eglot + + Evil bindings for [[https://www.gnu.org/software/emacs/manual/html_node/eglot/index.html][eglot]], the built-in LSP client. + +** Key bindings (normal state) + + | Command | Original | Evil | + |--------------------------------------+-----------+-------| + | =xref-find-definitions= | =M-.= | =gd= | + | =xref-find-definitions-other-window= | =C-x 4 .= | =gD= | + | =xref-find-definitions-other-frame= | =C-x 5 .= | =g5= | + | =xref-pop-marker-stack= | =M-,= | =C-t= | + | =eldoc-doc-buffer= | n/a | =K= | + | =xref-find-references= | =M-?= | =gr= | + + =gr= is only bound when =evil-collection-want-find-usages-bindings= is non-nil. + + =eglot-managed-mode-hook= adds =evil-normalize-keymaps= so the bindings + activate as soon as eglot manages a buffer. diff --git a/.config/emacs/lisp/evil-collection/modes/eglot/evil-collection-eglot.el b/.config/emacs/lisp/evil-collection/modes/eglot/evil-collection-eglot.el new file mode 100644 index 0000000..6633107 --- /dev/null +++ b/.config/emacs/lisp/evil-collection/modes/eglot/evil-collection-eglot.el @@ -0,0 +1,50 @@ +;;; evil-collection-eglot.el --- Bindings for `eglot' -*- lexical-binding: t -*- + +;; Copyright (C) 2018 James Nguyen + +;; Author: James Nguyen <james@jojojames.com> +;; Maintainer: James Nguyen <james@jojojames.com> +;; URL: https://github.com/emacs-evil/evil-collection +;; Version: 0.0.1 +;; Package-Requires: ((emacs "26.3")) +;; Keywords: evil, eglot, tools + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: +;;; Bindings for `eglot'. + +;;; Code: +(require 'eglot nil t) +(require 'evil-collection) + +(defconst evil-collection-eglot-maps '(eglot-mode-map)) + +;;;###autoload +(defun evil-collection-eglot-setup () + "Set up `evil' bindings for `eglot'." + (add-hook 'eglot-managed-mode-hook 'evil-normalize-keymaps) + (evil-collection-define-key 'normal 'eglot-mode-map + "gd" 'xref-find-definitions + "gD" 'xref-find-definitions-other-window + "g5" 'xref-find-definitions-other-frame + (kbd "C-t") 'xref-pop-marker-stack + "K" 'eldoc-doc-buffer) + + (when evil-collection-want-find-usages-bindings + (evil-collection-define-key 'normal 'eglot-mode-map + "gr" 'xref-find-references))) + +(provide 'evil-collection-eglot) +;;; evil-collection-eglot.el ends here |
