Visual Studio 2017的首個(gè)候選發(fā)布版(VS2017RC)中提供了支持EditorConfig標(biāo)準(zhǔn)的特性。秉承該標(biāo)準(zhǔn)可使開發(fā)人員一次性地定義一種編碼風(fēng)格,即可輕易地在不同的編輯器中使用該風(fēng)格。另一顯著優(yōu)點(diǎn)是對(duì)于在EditorConfig文件中定義的風(fēng)格,可由源代碼控制系統(tǒng)進(jìn)行保存,這避免了特定編輯器的對(duì)話框或配置中的風(fēng)格丟失。VS2017將支持對(duì)多種語(yǔ)言使用EditorConfig功能,包括C#、Visual Basic、C++、JavaScript、F#和TypeScript。
正如Microsoft的Kasey Uhlenhuth所介紹的,EditorConfig的優(yōu)點(diǎn)之一在于它是一種定義用于全解決方案范圍內(nèi)的寬泛標(biāo)準(zhǔn),并額外提供了可用于特定項(xiàng)目或目錄定義標(biāo)準(zhǔn)的EditorConfig文件。文件中可添加對(duì)編碼樣式(Code Formatting)規(guī)則和編碼風(fēng)格(Code Style)規(guī)則的定義。當(dāng)前VS20177RC支持下列五種樣式規(guī)則:
indent_style indent_size tab_width end_of_line charset當(dāng)前尚不支持另兩個(gè)廣為使用的規(guī)則,即“trim_trailing_whitespace”和“insert_final_newline”。同樣也可定義編碼風(fēng)格規(guī)則,并且在該機(jī)制得以實(shí)現(xiàn)后,可以根據(jù)嚴(yán)重程度(none/suggestion/warning/error)中斷構(gòu)建過(guò)程(當(dāng)前VS2017中構(gòu)建會(huì)繼續(xù)進(jìn)行)。按照Microsoft的說(shuō)法,VS2017 RTM版可能并將會(huì)更新Visual Studio中對(duì)EditorConfig支持的特性,目的在于通過(guò)更新過(guò)程提供完全符合規(guī)范的EditorConfig特性。
對(duì)于已有的源碼樹,為使開發(fā)人員按個(gè)人喜好定義的各種編碼樣式和編碼風(fēng)格規(guī)則生效,需要關(guān)閉并重新打開文件,或是去改變EditorConfig文件。Uhlenhuth給出了一些用于快速應(yīng)用規(guī)則的快捷鍵。
更新編輯器中的單個(gè)文件:“Format Document”菜單,快捷鍵“CTRL-K, D”; 應(yīng)用更新到整個(gè)項(xiàng)目/解決方案中的所有文件:“Quick Actions”菜單,快捷鍵“CTRL-+”。注意當(dāng)存在EditorConfig文件時(shí),文件規(guī)則將覆蓋Visual Studio的“Tools | Options”菜單使用的快捷鍵定義。Mads Kristensen實(shí)現(xiàn)了開源插件“EditorConfig Language Service”,使得在VS2017中編輯EditorConfig文件時(shí)可以利用上編輯器所提供的便利。當(dāng)前得需要VS2017RC才能使用編碼樣式與編碼風(fēng)格功能,但將該功能與構(gòu)建系統(tǒng)集成的NuGet軟件包正在開發(fā)中。
(本文于2017年1月10日更新,添加了語(yǔ)言支持和未來(lái)可用更新的信息。)
查看英文原文:Putting EditorConfig to Work in Visual Studio