- replace "add-pkg-in-pkg-dir" (recursive load-path scanning) with a central "creature/pkgs" registry that handles load path, autoloads, info dirs and dependencies - adapt all init-*.el files to the new activation function - add a top-level Makefile to byte-compile site-lisp packages - remove unused "emacs-kv" and "emacs-db" submodules
49 lines
1.4 KiB
EmacsLisp
49 lines
1.4 KiB
EmacsLisp
;; -*- coding: utf-8; lexical-binding: t; -*-
|
|
|
|
(require 'init-package)
|
|
|
|
(creature/pkg-active 'prettier)
|
|
|
|
(require 'init-editorconfig)
|
|
|
|
(autoload 'prettier-mode "prettier" "" t)
|
|
|
|
(defvar-local creature/formatter nil
|
|
"Formatter for buffer.")
|
|
|
|
(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)))
|
|
|
|
(defun creature/prettier-set-formatter ()
|
|
(setq creature/formatter
|
|
(if (bound-and-true-p prettier-mode)
|
|
'creature/indent-region-or-buffer
|
|
nil)))
|
|
|
|
(with-eval-after-load 'prettier
|
|
(add-hook 'prettier-mode-hook #'creature/prettier-setup)
|
|
(add-hook 'prettier-mode-hook #'creature/prettier-set-formatter)
|
|
(add-to-list 'prettier-major-mode-parsers
|
|
'(js-json-mode . creature/prettier-json-parser)))
|
|
|
|
(dolist (hook '(css-mode-hook
|
|
js-base-mode-hook
|
|
json-ts-mode-hook
|
|
prisma-ts-mode-hook
|
|
typescript-mode-hook
|
|
typescript-ts-base-mode-hook))
|
|
(add-hook hook #'prettier-mode))
|
|
|
|
(provide 'init-prettier)
|