配置代码样式
如果你所在公司有特定的编码规则,在编写源代码时必须遵循这些规则。WebStorm可帮助你维护代码样式。
WebStorm内置了两个预定义的方案:项目方案和默认方案。
- 在项目方案中,配置仅对当前项目生效。
这些设置存储在 .idea下的codeStyles文件夹中,并通过VCS共享。
WebStorm会在修改项目的代码样式设置后创建该文件夹。 - 在默认方案中(IDE级别),配置对于已选择默认代码样式方案的所有项目生效。
这些设置存储在WebStorm配置目录下的codestyles文件夹中,不通过VCS共享。
如果要将项目代码样式方案当作默认方案使用,可以将其复制到IDE级别。另一种方法也是可以的:用IDE级别方案中的设置覆盖当前的项目设置,并与团队的其他成员共享。
项目级方案只能有一个,IDE级别可以有多个配置方案。多个项目可以引用相同的IDE级代码样式方案。
配置方案
在WebStorm中,代码样式设置是和编程语言绑定的,因此需要为项目中使用的每种语言分别配置。还可以从一种语言复制设置,应用于另一种语言。
配置语言的代码样式
- 打开设置对话框,然后选择“Editor | Code Style”
若要为新项目配置方案,请选择菜单“File | New Projects Setup | Settings for New Projects”,在弹出的窗口中选择“Editor | Code Style”。 - 选择要配置代码样式的语言。
- 选择要配置的代码样式方案:项目方案或IDE级别方案。
- 配置代码样式,使用对话框的右侧部分预览更改。更改设置时,预览区域中会出现一个或多个闪烁区域,高亮显示更改。
从其他语言应用代码样式
对于大多数支持的语言,可以从其他语言或框架复制代码样式设置。
- 打开设置对话框,选择“Editor | Code Style”;如果要为新项目配置,选择菜单“File | New Projects Setup | Settings for New Projects”,在弹出的窗口中选择“Editor | Code Style”。
- 选择要配置代码样式的语言。
- 选择要修改的代码样式方案:项目方案(Project)或IDE方案(Default)。
- 点击右上角的蓝色字体“Set from”。
- 从显示的列表中,选择要复制代码样式的语言。
使用EditorConfig在文件夹级别管理代码样式
要使用EditorConfig,请确保启用了EditorConfig插件。按 Ctrl+Alt+S 打开设置对话框,然后选择插件(Plugins)。单击“已安装(Installed)”选项卡。输入EditorConfig,查看插件是否安装和启用。
WebStorm允许使用EditorConfig管理每组文件的所有代码样式设置,只需在文件夹中放一个.editorconfig文件。你可以根据需要在一个项目中拥有任意数量的.editorconfig文件,这样就可以为不同的模块指定不同的代码样式。
.editorconfig文件中的所有选项都应用于它所在的目录以及子目录。如果.editorconfig中未定义任何内容,则使用项目设置。
.editorconfig文件中的选项分为以下几类:
- 标准选项,如:indent_size、indent_style等。这些选项没有任何特定范围。
- 具有 ij_ 前缀并适用于所有语言的通用选项:
- ij_visual_guides
- ij_formatter_off_tag
- ij_formatter_on_tag
- ij_formatter_tags_enabled
- ij_wrap_on_typing
- ij_continuation_indent_size
- ij_smart_tabs
- 大部分语言支持的普通选项。它们以 ij_any 前缀开头,例如:ij_any_brace_style。
- 语言特定选项以 ij_<lang>_ 前缀开头,其中<lang>是语言ID(通常是小写语言名称),例如:ij_java_。
相同的选项可以定义为通用选项和特定语言选项,例如:ij_<…>_brace_style。特定语言选项比普通或通用选项具有更高优先级。
添加.editorconfig文件
- 在“项目工具窗口”中,右键单击要定义代码样式的文件夹,然后从右键菜单中选择“New | EditorConfig File”。
- 选择要定义的属性,WebStorm会生成.editorconfig文件,或者将所有复选框留空,稍后手动添加所需属性。
- 要预览代码样式设置的效果,请单击打开的.editorconfig文件在编辑器左侧边栏中的小眼睛图标,打开对应编程语言编写的源文件。
你可以在预览窗口中编辑代码,查看代码样式配置是否生效,不必担心会修改源代码,当关闭.editorconfig文件时,所有这些更改都会不会被保存。