如何将 prettier-js.el 集成到 spacemacs

How to Integrate prettier-js.el into spacemacs

我正在尝试让 prettier 在 spacemacs 中工作。

我有 (prettier-js :location (recipe :url "https://raw.githubusercontent.com/prettier/prettier/master/editors/emacs/prettier-js.el" :fetcher url)) 有点用,但是在 Messages 我看到

Contacting host: raw.githubusercontent.com:443
Wrote /Users/travis/.emacs.d/.cache/quelpa/build/prettier-js/prettier-js.el
File: /Users/travis/.emacs.d/.cache/quelpa/build/prettier-js/prettier-js.stamp
Error getting PACKAGE-DESC: (search-failed ;;; prettier-js.el ends here)
Cannot load prettier-js

我对 emacs 的了解还不够多,不知道 PACKAGE-DESC 的作用,或者我是否需要它来更漂亮地加载。

我正在尝试在私有层中执行此操作

文档说:

Add this to your init

(require 'prettier-js)
(add-hook 'js-mode-hook
          (lambda ()
            (add-hook 'before-save-hook 'prettier-before-save)))

我想我应该有这样的东西:

(defun myJS/post-init-prettier-js ()
  "Initialize prettier-js"
  (use-package prettier-js)
  :defer t
  :init
  (progn
    (add-hook 'before-save-hook 'prettier-before-save)
    )
  )

在我的图层中

prettier-js 包现在在 melpa 上安装它,将 prettier-js 添加到 spacemacs 文件中的 dotspacemacs-additional-packages。

我们需要执行几个步骤才能在 Spacemacs 中激活 prettier:


1.在 Spacemacs 中安装 prettier 集成:

  • <SPC> <SPC>(按两次空格键),这将触发HELM让我们搜索Emacs命令。

  • <SPC> <SPC>后,在HELM缓冲区中输入package-install,然后按<RET>(Return/Enter键)。

  • 软件包列表将出现在 HELM 软件包安装 缓冲区中,在其中键入 prettier-js 并按 <RET>


2。在您的系统中安装 prettier

  • 如果没有 prettier 本身,集成不会做任何事情。

  • 假设您已经安装了 nodenpm,请转到您的终端并输入:npm install -g prettier 并按回车键。


3。 (可选)设置自动保存格式:

  • <SPC> <f> <e> <d> 打开您的 .spacemacs 配置文件。

  • 找到其中的 dotspacemacs/user-config 部分并在其中键入以下代码段:

    (defun dotspacemacs/user-config () (add-hook 'js2-mode-hook 'prettier-js-mode) (add-hook 'web-mode-hook 'prettier-js-mode) )

  • <SPC> <f> <s>

  • 保存设置更改
  • <SPC> <f> <e> <R>

  • 重新加载保存的设置

截至提交 9d2a108 Spacemacs 附带了一个层,该层增加了对 Prettier 的支持。如果您使用的是 Spacemacs 的 develop 分支,或者如果您将来阅读本文并使用版本 0.300 或更新的版本,那么您今天就可以使用它。

要使用它,只需将 prettier 作为层添加到 dotspacemacs-configuration-layers 指定的层列表中。此外,您应该为要使用 Prettier 的语言启用 Prettier 作为层的格式化程序。具体层中记录了如何执行此操作。对于 JavaScript,您应该将以下内容添加到 dotspacemacs/user-init

(setq javascript-fmt-tool 'prettier)

通过上述配置,JavaScript 层将使用 Prettier 来格式化 JavaScript 个文件。