[html][vue] Improve Transient States
Add a full/minified transient state toggle. Grouped backend transient state key bindings by column. Moved the html/init-web-mode :init section before the :config section.
This commit is contained in:
parent
a52fc88b16
commit
085ae8af33
|
@ -1950,6 +1950,7 @@ Other:
|
||||||
(thanks to Anton Alekseev)
|
(thanks to Anton Alekseev)
|
||||||
- Added support for =.svelte= files (thanks to Javier Candeira)
|
- Added support for =.svelte= files (thanks to Javier Candeira)
|
||||||
- Added =lsp= support for =html= buffers (thanks to Thanh Vuong)
|
- Added =lsp= support for =html= buffers (thanks to Thanh Vuong)
|
||||||
|
- Added a toggle state minified/full to the transient state (thanks to duianto)
|
||||||
**** Hy
|
**** Hy
|
||||||
- Added support for pipenv (thanks to Cazim Hysi)
|
- Added support for pipenv (thanks to Cazim Hysi)
|
||||||
- Updated Hy layer to current Hy mode (thanks to Cazim Hysi)
|
- Updated Hy layer to current Hy mode (thanks to Cazim Hysi)
|
||||||
|
@ -3083,6 +3084,8 @@ Other:
|
||||||
- Avoid loading all the diff packages (thanks to Sylvain Benner)
|
- Avoid loading all the diff packages (thanks to Sylvain Benner)
|
||||||
- Fixed error on =diff-hl-margin-mode= function being nil during startup
|
- Fixed error on =diff-hl-margin-mode= function being nil during startup
|
||||||
(thanks to Voleking)
|
(thanks to Voleking)
|
||||||
|
**** Vue
|
||||||
|
- Added a toggle state minified/full to the transient state (thanks to duianto)
|
||||||
**** Xclipboard
|
**** Xclipboard
|
||||||
- Added Requirements documentation (thanks to Chris Glass)
|
- Added Requirements documentation (thanks to Chris Glass)
|
||||||
- Added =cliphist= with the following bindings: (thanks to Hong Xu)
|
- Added =cliphist= with the following bindings: (thanks to Hong Xu)
|
||||||
|
|
|
@ -111,26 +111,71 @@
|
||||||
"rk" 'web-mode-element-kill
|
"rk" 'web-mode-element-kill
|
||||||
"rn" 'web-mode-element-rename
|
"rn" 'web-mode-element-rename
|
||||||
"rw" 'web-mode-element-wrap
|
"rw" 'web-mode-element-wrap
|
||||||
"z" 'web-mode-fold-or-unfold)
|
"z" 'web-mode-fold-or-unfold))
|
||||||
(spacemacs|define-transient-state vue-mode
|
|
||||||
:title "Web-mode Transient State"
|
(defun spacemacs//vue-setup-transient-state ()
|
||||||
:columns 4
|
(defvar spacemacs--vue-ts-full-hint-toggle nil
|
||||||
|
"Toggle the state of the vue transient state documentation.")
|
||||||
|
|
||||||
|
(defvar spacemacs--vue-ts-full-hint nil
|
||||||
|
"Display full vue transient state documentation.")
|
||||||
|
|
||||||
|
(defvar spacemacs--vue-ts-minified-hint nil
|
||||||
|
"Display minified vue transient state documentation.")
|
||||||
|
|
||||||
|
(defun spacemacs//vue-ts-toggle-hint ()
|
||||||
|
"Toggle the full hint docstring for the vue transient state."
|
||||||
|
(interactive)
|
||||||
|
(setq spacemacs--vue-ts-full-hint-toggle
|
||||||
|
(not spacemacs--vue-ts-full-hint-toggle)))
|
||||||
|
|
||||||
|
(defun spacemacs//vue-ts-hint ()
|
||||||
|
"Return a condensed/full hint for the vue transient state"
|
||||||
|
(concat
|
||||||
|
" "
|
||||||
|
(if spacemacs--vue-ts-full-hint-toggle
|
||||||
|
spacemacs--vue-ts-full-hint
|
||||||
|
(concat "[" (propertize "?" 'face 'hydra-face-red) "] help"
|
||||||
|
spacemacs--vue-ts-minified-hint))))
|
||||||
|
|
||||||
|
(spacemacs|transient-state-format-hint vue
|
||||||
|
spacemacs--vue-ts-minified-hint "\n
|
||||||
|
Navigate: _j_ _k_ _J_ _K_ _h_ _l_ Element: _c_ _d_ _D_ _r_ _w_ Other: _p_")
|
||||||
|
|
||||||
|
(spacemacs|transient-state-format-hint vue
|
||||||
|
spacemacs--vue-ts-full-hint
|
||||||
|
(format "\n[_?_] toggle help
|
||||||
|
Navigate^^^^ Element^^ Other
|
||||||
|
[_j_/_k_] next/prev element [_c_] clone [_p_] xpath (display path)
|
||||||
|
[_J_/_K_] next/prev sibling [_d_] vanish (keep content) [_q_] quit
|
||||||
|
[_h_/_l_] parent/child [_D_] kill (inkl. content)
|
||||||
|
^^^^ [_r_] rename
|
||||||
|
^^^^ [_w_] wrap"))
|
||||||
|
|
||||||
|
(spacemacs|define-transient-state vue
|
||||||
|
:title "Vue Transient State"
|
||||||
|
:hint-is-doc t
|
||||||
|
:dynamic-hint (spacemacs//vue-ts-hint)
|
||||||
:foreign-keys run
|
:foreign-keys run
|
||||||
:evil-leader-for-mode (vue-mode . ".")
|
:evil-leader-for-mode (vue-mode . ".")
|
||||||
:bindings
|
:bindings
|
||||||
("D" web-mode-element-kill "kill")
|
("?" spacemacs//vue-ts-toggle-hint)
|
||||||
("J" web-mode-element-sibling-next "next sibling")
|
;; Navigate
|
||||||
("K" web-mode-element-sibling-previous "previous sibling")
|
("j" web-mode-element-next)
|
||||||
("c" web-mode-element-clone "clone")
|
("k" web-mode-element-previous)
|
||||||
("d" web-mode-element-vanish "delete")
|
("J" web-mode-element-sibling-next)
|
||||||
("gj" web-mode-element-sibling-next)
|
("gj" web-mode-element-sibling-next)
|
||||||
|
("K" web-mode-element-sibling-previous)
|
||||||
("gk" web-mode-element-sibling-previous)
|
("gk" web-mode-element-sibling-previous)
|
||||||
("h" web-mode-element-parent "parent")
|
("h" web-mode-element-parent)
|
||||||
("j" web-mode-element-next "next")
|
("l" web-mode-element-child)
|
||||||
("k" web-mode-element-previous "previous")
|
;; Element
|
||||||
("l" web-mode-element-child "child")
|
("c" web-mode-element-clone)
|
||||||
("p" web-mode-dom-xpath "xpath")
|
("d" web-mode-element-vanish)
|
||||||
("q" nil "quit" :exit t)
|
("D" web-mode-element-kill)
|
||||||
("r" web-mode-element-rename "rename" :exit t)
|
("r" web-mode-element-rename)
|
||||||
("w" web-mode-element-wrap "wrap")
|
("w" web-mode-element-wrap)
|
||||||
("<escape>" nil nil :exit t)))
|
;; Other
|
||||||
|
("p" web-mode-dom-xpath)
|
||||||
|
("q" nil :exit t)
|
||||||
|
("<escape>" nil :exit t)))
|
||||||
|
|
|
@ -25,7 +25,8 @@
|
||||||
(add-to-list 'auto-mode-alist '("\\.vue\\'" . vue-mode))
|
(add-to-list 'auto-mode-alist '("\\.vue\\'" . vue-mode))
|
||||||
(spacemacs/add-to-hook 'vue-mode-hook '(spacemacs//vue-setup-editor-style
|
(spacemacs/add-to-hook 'vue-mode-hook '(spacemacs//vue-setup-editor-style
|
||||||
spacemacs//vue-setup-keybindings))
|
spacemacs//vue-setup-keybindings))
|
||||||
(add-hook 'vue-mode-local-vars-hook #'spacemacs//vue-setup-backend))
|
(add-hook 'vue-mode-local-vars-hook #'spacemacs//vue-setup-backend)
|
||||||
|
(spacemacs//vue-setup-transient-state))
|
||||||
|
|
||||||
(defun vue/post-init-add-node-modules-path ()
|
(defun vue/post-init-add-node-modules-path ()
|
||||||
(add-hook 'vue-mode-hook #'add-node-modules-path))
|
(add-hook 'vue-mode-hook #'add-node-modules-path))
|
||||||
|
|
|
@ -63,3 +63,70 @@
|
||||||
(match-string 1 (buffer-name))))))
|
(match-string 1 (buffer-name))))))
|
||||||
(when (string= buffer-extension "html")
|
(when (string= buffer-extension "html")
|
||||||
(spacemacs//setup-lsp-for-web-mode-buffers))))
|
(spacemacs//setup-lsp-for-web-mode-buffers))))
|
||||||
|
|
||||||
|
(defun spacemacs//web-setup-transient-state ()
|
||||||
|
(defvar spacemacs--web-ts-full-hint-toggle nil
|
||||||
|
"Toggle the state of the web transient state documentation.")
|
||||||
|
|
||||||
|
(defvar spacemacs--web-ts-full-hint nil
|
||||||
|
"Display full web transient state documentation.")
|
||||||
|
|
||||||
|
(defvar spacemacs--web-ts-minified-hint nil
|
||||||
|
"Display minified web transient state documentation.")
|
||||||
|
|
||||||
|
(defun spacemacs//web-ts-toggle-hint ()
|
||||||
|
"Toggle the full hint docstring for the web transient state."
|
||||||
|
(interactive)
|
||||||
|
(setq spacemacs--web-ts-full-hint-toggle
|
||||||
|
(not spacemacs--web-ts-full-hint-toggle)))
|
||||||
|
|
||||||
|
(defun spacemacs//web-ts-hint ()
|
||||||
|
"Return a condensed/full hint for the web transient state"
|
||||||
|
(concat
|
||||||
|
" "
|
||||||
|
(if spacemacs--web-ts-full-hint-toggle
|
||||||
|
spacemacs--web-ts-full-hint
|
||||||
|
(concat "[" (propertize "?" 'face 'hydra-face-red) "] help"
|
||||||
|
spacemacs--web-ts-minified-hint))))
|
||||||
|
|
||||||
|
(spacemacs|transient-state-format-hint web
|
||||||
|
spacemacs--web-ts-minified-hint "\n
|
||||||
|
Navigate: _j_ _k_ _J_ _K_ _h_ _l_ Element: _c_ _d_ _D_ _r_ _w_ Other: _p_")
|
||||||
|
|
||||||
|
(spacemacs|transient-state-format-hint web
|
||||||
|
spacemacs--web-ts-full-hint
|
||||||
|
(format "\n[_?_] toggle help
|
||||||
|
Navigate^^^^ Element^^ Other
|
||||||
|
[_j_/_k_] next/prev element [_c_] clone [_p_] xpath (display path)
|
||||||
|
[_J_/_K_] next/prev sibling [_d_] vanish (keep content) [_q_] quit
|
||||||
|
[_h_/_l_] parent/child [_D_] kill (inkl. content)
|
||||||
|
^^^^ [_r_] rename
|
||||||
|
^^^^ [_w_] wrap"))
|
||||||
|
|
||||||
|
(spacemacs|define-transient-state web
|
||||||
|
:title "Web Transient State"
|
||||||
|
:hint-is-doc t
|
||||||
|
:dynamic-hint (spacemacs//web-ts-hint)
|
||||||
|
:foreign-keys run
|
||||||
|
:evil-leader-for-mode (web-mode . ".")
|
||||||
|
:bindings
|
||||||
|
("?" spacemacs//web-ts-toggle-hint)
|
||||||
|
;; Navigate
|
||||||
|
("j" web-mode-element-next)
|
||||||
|
("k" web-mode-element-previous)
|
||||||
|
("J" web-mode-element-sibling-next)
|
||||||
|
("gj" web-mode-element-sibling-next)
|
||||||
|
("K" web-mode-element-sibling-previous)
|
||||||
|
("gk" web-mode-element-sibling-previous)
|
||||||
|
("h" web-mode-element-parent)
|
||||||
|
("l" web-mode-element-child)
|
||||||
|
;; Element
|
||||||
|
("c" web-mode-element-clone)
|
||||||
|
("d" web-mode-element-vanish)
|
||||||
|
("D" web-mode-element-kill)
|
||||||
|
("r" web-mode-element-rename)
|
||||||
|
("w" web-mode-element-wrap)
|
||||||
|
;; Other
|
||||||
|
("p" web-mode-dom-xpath)
|
||||||
|
("q" nil :exit t)
|
||||||
|
("<escape>" nil :exit t)))
|
||||||
|
|
|
@ -204,6 +204,11 @@
|
||||||
(defun html/init-web-mode ()
|
(defun html/init-web-mode ()
|
||||||
(use-package web-mode
|
(use-package web-mode
|
||||||
:defer t
|
:defer t
|
||||||
|
:init
|
||||||
|
(progn
|
||||||
|
(spacemacs//web-setup-transient-state)
|
||||||
|
(when html-enable-lsp
|
||||||
|
(add-hook 'web-mode-hook #'spacemacs//setup-lsp-for-html-buffer t)))
|
||||||
:config
|
:config
|
||||||
(progn
|
(progn
|
||||||
(spacemacs/declare-prefix-for-mode 'web-mode "m=" "format")
|
(spacemacs/declare-prefix-for-mode 'web-mode "m=" "format")
|
||||||
|
@ -225,49 +230,7 @@
|
||||||
"rw" 'web-mode-element-wrap
|
"rw" 'web-mode-element-wrap
|
||||||
"z" 'web-mode-fold-or-unfold
|
"z" 'web-mode-fold-or-unfold
|
||||||
;; TODO element close would be nice but broken with evil.
|
;; TODO element close would be nice but broken with evil.
|
||||||
)
|
))
|
||||||
|
|
||||||
;; (defvar spacemacs--web-mode-ms-doc-toggle 0
|
|
||||||
;; "Display a short doc when nil, full doc otherwise.")
|
|
||||||
|
|
||||||
;; (defun spacemacs//web-mode-ms-doc ()
|
|
||||||
;; (if (equal 0 spacemacs--web-mode-ms-doc-toggle)
|
|
||||||
;; "[_?_] for help"
|
|
||||||
;; "
|
|
||||||
;; [_?_] display this help
|
|
||||||
;; [_k_] previous [_j_] next [_K_] previous sibling [_J_] next sibling
|
|
||||||
;; [_h_] parent [_l_] child [_c_] clone [_d_] delete [_D_] kill [_r_] rename
|
|
||||||
;; [_w_] wrap [_p_] xpath
|
|
||||||
;; [_q_] quit"))
|
|
||||||
|
|
||||||
;; (defun spacemacs//web-mode-ms-toggle-doc ()
|
|
||||||
;; (interactive)
|
|
||||||
;; (setq spacemacs--web-mode-ms-doc-toggle
|
|
||||||
;; (logxor spacemacs--web-mode-ms-doc-toggle 1)))
|
|
||||||
|
|
||||||
(spacemacs|define-transient-state web-mode
|
|
||||||
:title "Web-mode Transient State"
|
|
||||||
:columns 4
|
|
||||||
:foreign-keys run
|
|
||||||
:evil-leader-for-mode (web-mode . ".")
|
|
||||||
:bindings
|
|
||||||
("j" web-mode-element-next "next")
|
|
||||||
("J" web-mode-element-sibling-next "next sibling")
|
|
||||||
("gj" web-mode-element-sibling-next)
|
|
||||||
("k" web-mode-element-previous "previous")
|
|
||||||
("K" web-mode-element-sibling-previous "previous sibling")
|
|
||||||
("gk" web-mode-element-sibling-previous)
|
|
||||||
("h" web-mode-element-parent "parent")
|
|
||||||
("l" web-mode-element-child "child")
|
|
||||||
("c" web-mode-element-clone "clone")
|
|
||||||
("d" web-mode-element-vanish "delete")
|
|
||||||
("D" web-mode-element-kill "kill")
|
|
||||||
("r" web-mode-element-rename "rename" :exit t)
|
|
||||||
("w" web-mode-element-wrap "wrap")
|
|
||||||
("p" web-mode-dom-xpath "xpath")
|
|
||||||
("q" nil "quit" :exit t)
|
|
||||||
("<escape>" nil nil :exit t)))
|
|
||||||
|
|
||||||
:mode
|
:mode
|
||||||
(("\\.phtml\\'" . web-mode)
|
(("\\.phtml\\'" . web-mode)
|
||||||
("\\.tpl\\.php\\'" . web-mode)
|
("\\.tpl\\.php\\'" . web-mode)
|
||||||
|
@ -285,10 +248,7 @@
|
||||||
("\\.eco\\'" . web-mode)
|
("\\.eco\\'" . web-mode)
|
||||||
("\\.ejs\\'" . web-mode)
|
("\\.ejs\\'" . web-mode)
|
||||||
("\\.svelte\\'" . web-mode)
|
("\\.svelte\\'" . web-mode)
|
||||||
("\\.djhtml\\'" . web-mode))
|
("\\.djhtml\\'" . web-mode))))
|
||||||
:init
|
|
||||||
(when html-enable-lsp
|
|
||||||
(add-hook 'web-mode-hook #'spacemacs//setup-lsp-for-html-buffer t))))
|
|
||||||
|
|
||||||
(defun html/post-init-yasnippet ()
|
(defun html/post-init-yasnippet ()
|
||||||
(spacemacs/add-to-hooks 'spacemacs/load-yasnippet '(css-mode-hook
|
(spacemacs/add-to-hooks 'spacemacs/load-yasnippet '(css-mode-hook
|
||||||
|
|
Loading…
Reference in a new issue