不同的编辑器预设的输入方式都不尽相同,因此同个专案的同个档案使用不同的编辑器修改,可能会因为输入的格式不同,而使整体的格式不一致,造成阅读与管理上的困难。
一般的解决方式是直接修改编辑器内输入的相关设定,使其匹配专案的设定,但是每个编辑器的设定方式不同,同个效果的配置属性也可能不同,难以确保设定後的一致性。
EditorConfig 是由专案中的配置文件与各式编辑器的插件所组成的,藉由使用的编辑器插件读取配置文件,从而将编辑器的设定修改为与 EditorConfig 的配置一致。
EditorConfig 使用的配置文件在不同的编辑器中都是相同的设定方式,使用这个所有编辑器共用的配置做设定,搭配编辑器中 EditorConfig 的插件做解析并转为各个编辑器原生的设定,使输入方式在不同的编辑器之间达成一致。
要使用 EditorConfig ,有两点需要学习:
EditorConfig 使用名为 .editorconfig
的档案作为配置文件,下面是个 .editorconfig
的范例:
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
# Matches all files
[*]
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
# Matches all Markdown files
[*.md]
trim_trailing_whitespace = false
.editorconfig
采用 INI 档案格式编写,以 name = value
配置各个设定, name
为设定属性, value
为设定值,设定会被 []
隔为一个个的 section , section 名称(例如: *.md
)是以 globs 设定(区分大小写)的档案路径(类似 gitignore 的设定方式), section 内(从 []
行到下个 []
行或是档案结尾)的所有设定都会作用在与 section 名称相符的档案上。
使用者依照专案的习惯将各种档案的设定(设定属性可以在 EditorConfig Wiki 中检索)配置於 .editorconfig
中。
在使用者开启专案中的任一档案时,编辑器的插件会从当前目录开始往上层搜索 .editorconfig
配置档,直到 root 目录或是取得的 .editorconfig
中设定 root = true
为止。
可以在专案中配置多个 .editorconfig
, EditorConfig 会将搜索过程中的配置合并,离开启档案越进优先权越大,而配置档内的设定由上而下,越下面的 section 优先权越大。
可以参考实际专案的配置方式。
EditorConfig 依照编辑器的支援种类,分为原生支援与依靠插件支援的两类:
由於 Visual Studio Code 原生并不支援 EditorConfig ,因此需要另外安装插件 EditorConfig for VS Code ,安装完成後就可以直接设定 .editorconfig
开始使用。
VS Code 的 EditorConfig 目前支援下列属性:
indent_style
indent_size
tab_width
end_of_line
(on save)insert_final_newline
(on save)trim_trailing_whitespace
(on save)只要依照 EditorConfig 规定的设定相关的配置属性,就可以给每个人的编辑器带来相同的输入配置。
为了让专案的其他使用者可以顺利的安装插件,我们可以将插件加入推荐清单中。
在插件的介绍页上按下设定的齿轮,并且选择 Add to Workspace Recommendations ,就可以将其加入清单。
或者也可以直接开启 .vscode/extensions.json
进行编辑:
{
"recommendations": ["editorconfig.editorconfig"]
}
.editorconfig
,并在编辑器中安装插件来执行相关的配置修改。
<template> <table class="table"...
之前我们在写 API 程序的时候,一开始使用写死在程序里的资料集合(List),这个方法虽然快速让我...
前一篇提到可以利用指令tiup cluster template > topology.yam...
这边先简单介绍前面有用到的函式陈述式和函式表达式 函式陈述式:特性是放在宣告的 function 前...
前言: 前一天提到 val_accuracy 的数值约落在0.6500上下 改成只储存数值高的 ac...