feat(emacs): web-mode instead of vue-mode and svelte-mode

This commit is contained in:
Pavel Korytov 2021-08-09 13:28:39 +03:00
parent e13ab60bb4
commit cc296f08e8
2 changed files with 79 additions and 27 deletions

View file

@ -1988,6 +1988,7 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
:straight t
:hook ((vue-html-mode . emmet-mode)
(svelte-mode . emmet-mode)
(web-mode . emmet-mode)
(html-mode . emmet-mode)
(css-mode . emmet-mode)
(scss-mode . emmet-mode))
@ -2041,8 +2042,19 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
"r" 'jest-test-run
"a" 'jest-test-run-all-tests))
(use-package web-mode
:straight t
:init
(add-to-list 'auto-mode-alist '("\\.svelte\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.vue\\'" . web-mode))
:config
(add-hook 'web-mode-hook 'smartparens-mode)
(add-hook 'web-mode-hook 'hs-minor-mode)
(my/set-smartparens-indent 'web-mode))
(use-package vue-mode
:straight t
:disabled
:mode "\\.vue\\'"
:config
(add-hook 'vue-mode-hook #'hs-minor-mode)
@ -2095,6 +2107,7 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
(use-package svelte-mode
:straight t
:mode "\\.svelte\\'"
:disabled
:config
(add-hook 'svelte-mode-hook 'my/set-flycheck-eslint)
(add-hook 'svelte-mode-hook #'smartparens-mode)
@ -3148,19 +3161,6 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
"Q" 'google-translate-query-translate-reverse
"t" 'google-translate-smooth-translate)
(use-package elcord
:straight t
:if (and (or
(string= (system-name) "indigo")
(string= (system-name) "eminence"))
(not my/slow-ssh))
:config
(elcord-mode)
(add-to-list 'elcord-boring-buffers-regexp-list
(rx bos (+ num) "-" (+ num) "-" (+ num) ".org" eos))
(add-to-list 'elcord-boring-buffers-regexp-list
(rx bos (= 14 num) "-" (* not-newline) ".org" eos)))
(use-package tldr
:straight t
:commands (tldr)
@ -3259,6 +3259,12 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
(kbd "C-k") 'evil-window-up
(kbd "C-j") 'evil-window-down))
(use-package screenshot
:straight (:repo "tecosaur/screenshot" :host github :files ("screenshot.el"))
:commands (screenshot)
:init
(my-leader-def "S" 'screenshot))
(my-leader-def "ah" 'proced)
(add-hook 'proced-mode-hook (lambda ()
(visual-line-mode -1)
@ -3296,11 +3302,19 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
(setq calendar-latitude 59.9375)
(setq calendar-longitude 30.308611)
(use-package screenshot
:straight (:repo "tecosaur/screenshot" :host github :files ("screenshot.el"))
:commands (screenshot)
:init
(my-leader-def "S" 'screenshot))
(use-package elcord
:straight t
:if (and (or
(string= (system-name) "indigo")
(string= (system-name) "eminence"))
(not my/slow-ssh))
:config
(elcord-mode)
(add-to-list 'elcord-boring-buffers-regexp-list
(rx bos (+ num) "-" (+ num) "-" (+ num) ".org" eos))
(add-to-list 'elcord-boring-buffers-regexp-list
(rx bos (= 14 num) "-" (* not-newline) ".org" eos))
)
(use-package snow
:straight (:repo "alphapapa/snow.el" :host github)

View file

@ -684,11 +684,12 @@ And winner-mode to keep the history of window states.
"u" 'ibuffer)
#+end_src
*** xref
Some keybindings for xref, Emacs' built-in systems for managing identifiers.
Some keybindings for xref and go to definition.
#+begin_src emacs-lisp
(general-nmap
"gD" 'xref-find-definitions-other-window
"gr" 'xref-find-references)
"gr" 'xref-find-references
"gd" 'evil-goto-definition)
(my-leader-def
"fx" 'xref-find-apropos)
@ -3336,6 +3337,7 @@ My bit of config here:
:straight t
:hook ((vue-html-mode . emmet-mode)
(svelte-mode . emmet-mode)
(web-mode . emmet-mode)
(html-mode . emmet-mode)
(css-mode . emmet-mode)
(scss-mode . emmet-mode))
@ -3397,10 +3399,42 @@ My bit of config here:
"r" 'jest-test-run
"a" 'jest-test-run-all-tests))
#+end_src
*** Vue.js
*** web-mode
[[https://web-mode.org/][web-mode.el]] is a major mode to edit various web templates.
Trying this one out instead of vue-mode and svelte-mode, because this one seems to have better support for tree-sitter and generally less problems.
#+begin_src emacs-lisp
(use-package web-mode
:straight t
:init
(add-to-list 'auto-mode-alist '("\\.svelte\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.vue\\'" . web-mode))
:config
(add-hook 'web-mode-hook 'smartparens-mode)
(add-hook 'web-mode-hook 'hs-minor-mode)
(my/set-smartparens-indent 'web-mode))
#+end_src
Hooking this up with lsp.
#+begin_src emacs-lisp
(setq my/web-mode-lsp-extensions
`(,(rx ".svelte" eos)
,(rx ".vue" eos)))
(defun my/web-mode-lsp ()
(when (seq-some
(lambda (regex) (string-match-p regex (buffer-name)))
my/web-mode-lsp-extensions)
(lsp-deferred)))
(add-hook 'web-mode-hook #'my/web-mode-lsp)
#+end_src
*** OFF (OFF) Vue.js
#+begin_src emacs-lisp :noweb yes
(use-package vue-mode
:straight t
:disabled
:mode "\\.vue\\'"
:config
(add-hook 'vue-mode-hook #'hs-minor-mode)
@ -3457,11 +3491,14 @@ References:
(mmm-set-current-pair saved-mode saved-ovl)
(mmm-set-local-variables (or saved-mode mmm-primary-mode) saved-ovl))))
#+end_src
*** Svelte
*** OFF (OFF) Svelte
Had some problems with this and tree-sitter. Web-mode seems to be doing better.
#+begin_src emacs-lisp
(use-package svelte-mode
:straight t
:mode "\\.svelte\\'"
:disabled
:config
(add-hook 'svelte-mode-hook 'my/set-flycheck-eslint)
(add-hook 'svelte-mode-hook #'smartparens-mode)
@ -4458,7 +4495,8 @@ References:
(add-hook 'emms-browser-mode-hook
(lambda ()
(evil-lion-mode -1)
(evil-commentary-mode -1)))
;; (evil-commentary-mode -1)
))
;; I have everything I need in polybar
(emms-mode-line-mode -1)
(emms-playing-time-display-mode -1)
@ -4892,10 +4930,10 @@ The actual service definitions are in the =~/.emacs.d/prodigy.org=, which tangle
(general-define-key
:states '(normal)
:keymaps 'prodigy-view-mode-map
(kbd "C-h") 'evil-window-left
(kbd "C-l") 'evil-window-right
(kbd "C-k") 'evil-window-up
(kbd "C-j") 'evil-window-down))
"C-h" 'evil-window-left
"C-l" 'evil-window-right
"C-k" 'evil-window-up
"C-j" 'evil-window-down))
#+end_src
*** screenshot.el
Tecosaur's plugin to make beautiful code screenshots.