web-mode 有没有格式化代码的函数

比如一行引入太长时,

import { RankList, HeadBarWithCity, TrendAnalysis, DetailedTrendChart } from '../../components';

一键格式化成下面的形式:

import {
  RankList,
  HeadBarWithCity,
  TrendAnalysis,
  DetailedTrendChart,
} from '../../components';

刚才 Vim 里试了一下, JsBeautify 就可以实现你要的结果。

这个插件在各大编辑器里广泛存在,emacs 里应该也有。

M+x mark-whole-buffer
C+M+\ 这样行么?

M+x mark-whole-buffer
C+M+\ 这样行么?

这样不行,我的这个组合键是绑定的到调整缩进上的。

spacemacs 用 = 号 调用 js-beautify

之前试过,感觉调用外部js-beautify好卡,还不如手敲

(ps, web-mode有一键缩进排版 C-c <tab>)

@Qquanwei 多少行的代码能让你感觉好卡?

这个恐怕只能归责于你的配置问题或者 emacs 自身。

编辑代码与配置无关吧,用的web-beautify,它是启用的外部进程js-beautify, 你可以试试。

有没有试过 https://github.com/prettier/prettier-emacs

1 个赞

抽时间试一下大家提的方法,并做个反馈

js2-mode里,js2-refactor-mode的expand-object可以。这里也讨论过,没好的办法:

还是谁有语法树谁牛X。

兄弟,你是用的prettier吗?可以使用自己定义的eslint规则来格式化代码吗?我再IDE上实现了,想在emacs上也是实现这个功能,求指点

可以参考下我的 spacemacs 配置,prettier + standardjs/eslint: