feat(lang): ensure markdown formatting respects local fill-column width

Previously prettier would always format markdown files to 80 character
long lines. Now it reads the character width from the fill-column
variable in such a way that fill-column can be set with dir-local
variables.
This commit is contained in:
2021-04-16 12:37:11 +01:00
parent 814e25c46f
commit 1fade1ab4d
3 changed files with 17 additions and 7 deletions

View File

@@ -40,10 +40,12 @@
:init
(defun siren-markdown-mode-setup ()
;; Configure prettier after local vars are processed, allowing local
;; override of fill-column and have prettier respect it.
(add-hook 'hack-local-variables-hook
'siren-markdown-mode-setup-prettier nil t)
(setq-local markdown-asymmetric-header t
prettier-js-args '("--parser" "markdown"
"--print-width" "80"
"--prose-wrap" "always")
whitespace-action nil)
(siren-display-fill-column)
@@ -52,7 +54,12 @@
(prettier-js-mode)
(flyspell-mode)
(smartparens-mode +1)
(subword-mode)))
(subword-mode))
(defun siren-markdown-mode-setup-prettier ()
(setq-local prettier-js-args `("--parser" "markdown"
"--print-width" ,(number-to-string fill-column)
"--prose-wrap" "always"))))
;; Required by markdown-edit-code-block.
(use-package edit-indirect

View File

@@ -14,10 +14,13 @@
(prog-mode . siren-prog-mode-setup)
:init
(add-to-list 'safe-local-variable-values
'(fill-column . 120))
(defun siren-prog-mode-setup ()
"Default coding hook, useful with any programming language."
(setq fill-column 80
whitespace-action '(auto-cleanup))
(setq-local fill-column 80
whitespace-action '(auto-cleanup))
(siren-display-indentation 1)
(hl-line-mode t)

View File

@@ -12,7 +12,7 @@
:hook (text-mode . siren-text-mode-setup)
:init
(defun siren-text-mode-setup ()
(setq fill-column 80)
(setq-local fill-column 80)
(hl-line-mode t)
(visual-line-mode t)))