31 lines
985 B
EmacsLisp
31 lines
985 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-base-mode-hook
|
|
typescript-mode-hook
|
|
typescript-ts-base-mode-hook))
|
|
(add-hook hook #'prettier-mode))
|
|
|
|
(provide 'init-prettier)
|