28 lines
907 B
EmacsLisp
28 lines
907 B
EmacsLisp
;; -*- coding: utf-8; lexical-binding: t; -*-
|
||
|
||
(autoload 'prettier-mode "prettier" "" t)
|
||
|
||
(defun creature/prettier-setup ()
|
||
"Enable ‘prettier-mode’ selectively."
|
||
(when (and prettier-mode
|
||
(or (not prettier-version) (prettier--in-node-modules-p)))
|
||
(prettier-mode -1)))
|
||
|
||
(defun creature/prettier-json-parser ()
|
||
(if (and buffer-file-name
|
||
(seq-contains
|
||
'("package.json" "package-lock.json" "composer.json")
|
||
(file-name-nondirectory buffer-file-name)))
|
||
'(json-stringify json json5)
|
||
'(json json5 json-stringify)))
|
||
|
||
(with-eval-after-load 'prettier
|
||
(add-hook 'prettier-mode-hook #'creature/prettier-setup)
|
||
(add-to-list 'prettier-major-mode-parsers
|
||
'(js-json-mode . creature/prettier-json-parser)))
|
||
|
||
(dolist (hook '(css-mode-hook js-mode-hook typescript-mode-hook))
|
||
(add-hook hook #'prettier-mode))
|
||
|
||
(provide 'init-prettier)
|