mirror of
https://gitlab.com/dwt1/dotfiles.git
synced 2026-04-23 11:30:23 +10:00
Updating Doom Emacs.
This commit is contained in:
@@ -24,10 +24,9 @@
|
||||
(add-hook! '(css-mode-hook sass-mode-hook stylus-mode-hook)
|
||||
#'rainbow-mode)
|
||||
|
||||
;; built-in, and contains both css-mode & scss-mode
|
||||
;; built-in. Contains both css-mode & scss-mode
|
||||
(after! css-mode
|
||||
;; css-mode hooks apply to scss and less-css modes
|
||||
(add-hook 'css-mode-hook #'rainbow-delimiters-mode)
|
||||
(map! :localleader
|
||||
:map scss-mode-map
|
||||
"b" #'+css/scss-build
|
||||
@@ -36,7 +35,6 @@
|
||||
|
||||
(use-package! counsel-css
|
||||
:when (featurep! :completion ivy)
|
||||
:commands counsel-css
|
||||
:hook (css-mode . counsel-css-imenu-setup)
|
||||
:init
|
||||
(map! :map (css-mode-map scss-mode-map less-css-mode-map)
|
||||
@@ -62,5 +60,8 @@
|
||||
;;; Tools
|
||||
|
||||
(when (featurep! +lsp)
|
||||
(add-hook! '(css-mode-hook sass-mode-hook less-css-mode-hook)
|
||||
(add-hook! '(css-mode-local-vars-hook
|
||||
scss-mode-local-vars-hook
|
||||
sass-mode-local-vars-hook
|
||||
less-css-mode-local-vars-hook)
|
||||
#'lsp!))
|
||||
|
||||
@@ -1,9 +1,25 @@
|
||||
;;; lang/web/+html.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package! web-mode
|
||||
:mode "\\.\\(?:as\\(?:[cp]x\\)\\|blade\\.php\\|erb\\|hbs\\|j\\(?:inja\\|sp\\)\\|mustache\\|p?html?\\|svelte\\|t\\(?:pl\\.php\\|sx\\|wig\\)\\|vue\\)\\'"
|
||||
:mode "\\.[px]?html?\\'"
|
||||
:mode "\\.\\(?:tpl\\|blade\\)\\(?:\\.php\\)?\\'"
|
||||
:mode "\\.erb\\'"
|
||||
:mode "\\.l?eex\\'"
|
||||
:mode "\\.jsp\\'"
|
||||
:mode "\\.as[cp]x\\'"
|
||||
:mode "\\.hbs\\'"
|
||||
:mode "\\.mustache\\'"
|
||||
:mode "\\.svelte\\'"
|
||||
:mode "\\.twig\\'"
|
||||
:mode "\\.jinja2?\\'"
|
||||
:mode "wp-content/themes/.+/.+\\.php\\'"
|
||||
:mode "templates/.+\\.php\\'"
|
||||
:init
|
||||
;; If the user has installed `vue-mode' then, by appending this to
|
||||
;; `auto-mode-alist' rather than prepending it, its autoload will have
|
||||
;; priority over this one.
|
||||
(add-to-list 'auto-mode-alist '("\\.vue\\'" . web-mode) 'append)
|
||||
:mode "\\.vue\\'"
|
||||
:config
|
||||
(set-docsets! 'web-mode "HTML" "CSS" "Twig" "WordPress")
|
||||
|
||||
@@ -13,7 +29,7 @@
|
||||
'("tidy" "-q" "-indent"
|
||||
"--tidy-mark" "no"
|
||||
"--drop-empty-elements" "no"
|
||||
"--show-body-only" "auto" ; don't inject html/body tags
|
||||
("--show-body-only" "%s" (if +format-region-p "true" "auto"))
|
||||
("--indent-spaces" "%d" tab-width)
|
||||
("--indent-with-tabs" "%s" (if indent-tabs-mode "yes" "no"))
|
||||
("-xml" (memq major-mode '(nxml-mode xml-mode))))
|
||||
@@ -46,6 +62,29 @@
|
||||
"\\(?:>\\|]\\|}\\)+\\'")))))
|
||||
(delq! nil web-mode-engines-auto-pairs))
|
||||
|
||||
(add-to-list 'web-mode-engines-alist '("elixir" . "\\.eex\\'"))
|
||||
|
||||
(let ((types '("javascript" "jsx")))
|
||||
(setq web-mode-comment-formats
|
||||
(cl-remove-if (lambda (item) (member (car item) types))
|
||||
web-mode-comment-formats))
|
||||
(dolist (type types)
|
||||
(push (cons type "//") web-mode-comment-formats)))
|
||||
|
||||
(add-hook! 'web-mode-hook
|
||||
(defun +web--fix-js-comments-h ()
|
||||
"Fix comment handling in `web-mode' for JavaScript."
|
||||
(when (member web-mode-content-type '("javascript" "jsx"))
|
||||
;; For some reason the default is to insert HTML comments even
|
||||
;; in JavaScript.
|
||||
(setq-local comment-start "//")
|
||||
(setq-local comment-end "")
|
||||
;; Needed since otherwise the default value generated by
|
||||
;; `comment-normalize-vars' will key off the syntax and think
|
||||
;; that a single "/" starts a comment, which completely borks
|
||||
;; auto-fill.
|
||||
(setq-local comment-start-skip "// *"))))
|
||||
|
||||
(map! :map web-mode-map
|
||||
(:localleader
|
||||
:desc "Rehighlight buffer" "h" #'web-mode-buffer-highlight
|
||||
@@ -124,4 +163,6 @@
|
||||
|
||||
|
||||
(when (featurep! +lsp)
|
||||
(add-hook! '(html-mode-hook web-mode-hook) #'lsp!))
|
||||
(add-hook! '(html-mode-local-vars-hook
|
||||
web-mode-local-vars-hook)
|
||||
#'lsp!))
|
||||
|
||||
@@ -2,20 +2,25 @@
|
||||
;;;###if (featurep! :editor evil)
|
||||
|
||||
;;;###autoload (autoload '+web:encode-html-entities "lang/web/autoload/evil" nil t)
|
||||
(evil-define-operator +web:encode-html-entities (beg end &optional input)
|
||||
(evil-define-operator +web:encode-html-entities (beg end &optional bang input)
|
||||
"Encodes HTML entities in INPUT or the selected region."
|
||||
(interactive "<r><a>")
|
||||
(interactive "<r><!><a>")
|
||||
(cond (input
|
||||
(insert (+web-encode-entities input)))
|
||||
(let ((result (+web-encode-entities input)))
|
||||
(if bang
|
||||
(kill-new result)
|
||||
(insert result))))
|
||||
((and beg end)
|
||||
(+web/encode-entities-region beg end))))
|
||||
|
||||
;;;###autoload (autoload '+web:decode-html-entities "lang/web/autoload/evil" nil t)
|
||||
(evil-define-operator +web:decode-html-entities (beg end &optional input)
|
||||
(evil-define-operator +web:decode-html-entities (beg end &optional bang input)
|
||||
"Decodes HTML entities in INPUT or the selected region."
|
||||
(interactive "<r><a>")
|
||||
(interactive "<r><!><a>")
|
||||
(cond (input
|
||||
(insert (+web-decode-entities input)))
|
||||
(let ((result (+web-decode-entities input)))
|
||||
(if bang
|
||||
(kill-new result)
|
||||
(insert result))))
|
||||
((and beg end)
|
||||
(+web/decode-entities-region beg end))))
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
(defvar +web-entities-list
|
||||
[["&" "&"] [" " " "] [" " " "] [" " " "] [" " " "]
|
||||
["<" "<"] [">" ">"]
|
||||
["‏" ""] ["‎" ""] ["‍" ""] ["‌" ""]
|
||||
["¡" "¡"] ["¢" "¢"] ["£" "£"] ["¤" "¤"] ["¥" "¥"]
|
||||
["¦" "¦"] ["§" "§"] ["¨" "¨"] ["©" "©"] ["ª" "ª"]
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
(setq-hook! 'rjsx-mode-hook emmet-expand-jsx-className? t)
|
||||
(map! :map emmet-mode-keymap
|
||||
:v [tab] #'emmet-wrap-with-markup
|
||||
:i [tab] #'+web/indent-or-yas-or-emmet-expand
|
||||
:i "M-E" #'emmet-expand-line))
|
||||
[tab] #'+web/indent-or-yas-or-emmet-expand
|
||||
"M-E" #'emmet-expand-line))
|
||||
|
||||
|
||||
;;
|
||||
@@ -29,6 +29,13 @@
|
||||
(when (eq major-mode 'web-mode)
|
||||
(web-mode-set-engine "django")))
|
||||
|
||||
(def-project-mode! +web-django-mode
|
||||
:modes '(web-mode python-mode)
|
||||
:files ("manage.py")
|
||||
:on-enter
|
||||
(when (derived-mode-p 'web-mode)
|
||||
(web-mode-set-engine "django")))
|
||||
|
||||
(def-project-mode! +web-wordpress-mode
|
||||
:modes '(php-mode web-mode css-mode haml-mode pug-mode)
|
||||
:files (or "wp-config.php" "wp-config-sample.php"))
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
;;; lang/web/packages.el
|
||||
|
||||
;; +html.el
|
||||
(package! emmet-mode)
|
||||
(package! haml-mode)
|
||||
(package! pug-mode)
|
||||
(package! slim-mode)
|
||||
(when (package! web-mode)
|
||||
(package! emmet-mode :pin "1acb821e0142136344ccf40c1e5fb664d7db2e70")
|
||||
(package! haml-mode :pin "bf5b6c11b1206759d2b28af48765e04882dd1fc4")
|
||||
(package! pug-mode :pin "685fd3414d89736bf232f5d1a6bed9e0353b98fe")
|
||||
(package! slim-mode :pin "3636d18ab1c8b316eea71c4732eb44743e2ded87")
|
||||
(when (package! web-mode :pin "a2badd04060f5f458f8f3def81cdaf81cfafb5a7")
|
||||
(when (featurep! :completion company)
|
||||
(package! company-web)))
|
||||
(package! company-web :pin "f0cc9187c9c34f72ad71f5649a69c74f996bae9a")))
|
||||
|
||||
;; +css.el
|
||||
(package! css-mode :built-in t)
|
||||
(package! less-css-mode :built-in t)
|
||||
(package! less-css-mode :built-in t :pin "c7fa3d56d83206b28657f2e56439dc62280a2bf2")
|
||||
|
||||
(package! sass-mode)
|
||||
(package! stylus-mode)
|
||||
(package! sws-mode)
|
||||
(package! rainbow-mode)
|
||||
(package! sass-mode :pin "247a0d4b509f10b28e4687cd8763492bca03599b")
|
||||
(package! stylus-mode :pin "4dbde92542fc7ad61df38776980905a4721d642e")
|
||||
(package! sws-mode :pin "4dbde92542fc7ad61df38776980905a4721d642e")
|
||||
(package! rainbow-mode :pin "f780ddb18c2a73a666d093f606df92058e5601ea")
|
||||
(when (featurep! :completion ivy)
|
||||
(package! counsel-css))
|
||||
(package! counsel-css :pin "6427dfcbda0d2bbd81db03f9d6b56b06c260ac02"))
|
||||
(when (featurep! :completion helm)
|
||||
(package! helm-css-scss))
|
||||
(package! helm-css-scss :pin "48b996f73af1fef8d6e88a1c545d98f8c50b0cf3"))
|
||||
|
||||
Reference in New Issue
Block a user