Enable geiser and guile geiser. Add lsp-mode. Small tweaks to javascript modes. Add elpy.
27 lines
840 B
EmacsLisp
27 lines
840 B
EmacsLisp
;; Better imenu
|
|
(add-hook 'js2-mode-hook #'js2-imenu-extras-mode)
|
|
|
|
(add-hook 'js2-mode-hook #'js2-refactor-mode)
|
|
(js2r-add-keybindings-with-prefix "C-c C-r")
|
|
(define-key js2-mode-map (kbd "C-k") #'js2r-kill)
|
|
|
|
;; js-mode (which js2 is based on) binds "M-." which conflicts with xref, so
|
|
;; unbind it.
|
|
(define-key js-mode-map (kbd "M-.") nil)
|
|
|
|
(add-hook 'js2-mode-hook (lambda ()
|
|
(add-hook 'xref-backend-functions #'xref-js2-xref-backend nil t)))
|
|
|
|
;; Code completion via tern
|
|
(require 'company)
|
|
(require 'company-tern)
|
|
|
|
(add-to-list 'company-backends 'company-tern)
|
|
(add-hook 'js2-mode-hook (lambda ()
|
|
(tern-mode)
|
|
(company-mode)))
|
|
|
|
;; Disable completion keybindings, as we use xref-js2 instead
|
|
(define-key tern-mode-keymap (kbd "M-.") nil)
|
|
(define-key tern-mode-keymap (kbd "M-,") nil)
|