diff --git a/settings.org b/settings.org index 69824a1..4151d70 100644 --- a/settings.org +++ b/settings.org @@ -101,6 +101,34 @@ * Major modes ** Java ** JavaScript +#+BEGIN_SRC emacs-lisp + (use-package js2-mode + :mode "\\.js\\'" + :hook ((js2-mode . js2-imenu-extras-mode) + (js2-mode . (lambda () (add-hook 'xref-backend-functions #'xref-js2-xref-backend nil t)))) + :config + (use-package js2-refactor + :hook (js2-mode . js2-refactor-mode) + :bind + (:map js2-mode-map + ("C-k" . js2r-kill)) + :config + (js2r-add-keybindings-with-prefix "C-c C-r")) + (use-package xref-js2 + :demand t) + (define-key js-mode-map (kbd "M-.") nil) + (defun rlbr/jump-to-definition () + "Jump to a definition." + (interactive) + (condition-case-unless-debug nil + (js2-jump-to-definition) + (error + (progn + (ignore-errors + (xref-pop-marker-stack)) + (xref-find-definitions (xref-backend-identifier-at-point (xref-find-backend))))))) + (define-key js-mode-map (kbd "M-.") #'rlbr/jump-to-definition)) +#+END_SRC ** Magit #+BEGIN_SRC emacs-lisp (use-package magit