首頁 > 軟體

2020最新版vscode格式化程式碼的詳細教學

2020-08-11 00:05:53

這篇關於vscode格式化設定研究初稿,具體內容如下所示:

前言

之前用vscode進行格式化的時候都是在百度和谷歌上搜「vscode格式化程式碼」然後直接copy別人。細節的設定一直沒去看過。

但是最近一段時間開發專案的時候發現和同組的提交程式碼的時候格式總是不統一。於是這兩天專門看了看外掛的官方文件,研究研究。

今天初步有一點研究結果了。會設定一點點了。寫此部落格與大家共同參考。不足的地方歡迎大家補充,錯誤的地方歡迎大家糾錯。

文章內容包括兩個部分:一是理論,二是我的settings.json的設定。

理論

參考文章:

VSCode程式猿彩虹屁外掛rainbow fart體驗篇

vscode 設定vue+vetur+eslint+prettier自動格式化功能

vscode 設定vue+vetur+eslint+prettier自動格式化功能

程式碼格式化目的:

程式碼格式化的目的一是爲了提高程式碼可讀性,方便自己編碼,方便團隊開發;二是方便找出和修正因爲格式導致的錯誤。

在團隊開發。因爲每個人的編碼習慣不同,如

  • 縮排是2還是4。
  • 程式碼結尾是否加分號,用單引號還是用雙引號。
  • 函數和後面的括號之間是否加個空格。
  • 等等

統一程式碼格式,讓每個人開發更順利。

爲了完成第一個目的,格式化外掛有vetur、prettier等針對檔案進行格式化的外掛;

爲了完成第二個目的,格式化外掛有ESlint等對檔案進行程式碼檢驗的外掛。

程式碼格式化的注意事項:

外掛作用

首先明白格式化外掛分別側重格式化哪些檔案,因爲不同的檔案有不同的格式規範。

prettyhtml格式化HTML;
prettier格式化css/less/scss/postcss/ts;
stylus-supremacy格式化stylus;
vscode自帶格式化外掛格式化js;
vetur格式化.vue檔案;讓不同塊使用不同的格式化方案
ESlint:新版的ESlint支援了對.vue檔案的校驗。

符合程式碼檢驗

然後注意讓格式化的程式碼符號ESlint程式碼檢驗。

格式化程式碼最重要的是兩點,一點是用格式化外掛格式化對應的檔案;另一點是讓格式化後的程式碼能通過程式碼檢驗工具。

舉個例子。

Prettier外掛不支援在函數名後面加上括號。這點和ESlint衝突了。所以js的格式化不能使用prettier外掛格式化,而是使用vscode自帶的js格式化功能來格式化。否則ESlint就是報錯,簡直煩死強迫症。

外掛更新

最後要注意外掛的是外掛不斷更新的,所以網上直接copy的格式化程式碼會各種不相容。

如vscode 的 ESLint 外掛在某個版本已經移除了 "eslint.validate" 這個設定選項,而網上很多教學都是使用的這個。

在新版的 ESLint 中已經支援了對 *.vue 檔案的校驗,所以無需再進行這項設定了,只需要新增一個儲存時自動修復 ESLint 錯誤的功能就行了。

程式碼格式化外掛的官方文件:

語言介紹

pug:官方文件 。pug是一款專門爲node.js平臺開發的HTML模組引擎。

less:官方文件。less是一門CSS預處理語言。

scss:官方文件。scss(sass)是世界上最成熟、穩定強大的專業級CSS預處理語言。

postcss:官方文件。postcss是使用js外掛來轉換CSS的工具。

stylus:官方文件。stylus是node.js平臺上的CSS預處理框架。

外掛介紹

vetur:官方文件。程式碼高亮、emmet語法支援、語法錯誤校驗檢查、程式碼提醒、格式化vue。
vetur整合了prettier,讓.vue檔案中不同的塊使用不同的格式化方案,template標籤呼叫 html 格式化工具,script標籤呼叫 JavaScript 格式化工具,style標籤使用style格式化工具。

ESlint:官方文件。程式碼檢驗。

prettyhtml:官方文件。爲vue或純HTML模板等提供通用格式化的工具。

pretties:官方文件。程式碼格式化工具,能夠解析程式碼,使用用戶設定的規則格式化規範的程式碼。

stylus-supremacy:官方文件。用於格式化stylus檔案的node.js模組。

我的settings.json檔案

{
 /*格式化檔案對應外掛:
主要是兩步,一步是用格式化外掛格式化對應的檔案;
另一步讓格式化後的程式碼能通過程式碼檢驗工具。
prettyhtml格式化HTML;prettier格式化css/less/scss/postcss/ts;
stylus-supremacy格式化stylus;
vscode自帶格式化外掛格式化js;
vetur格式化.vue檔案;
ESlint進行程式碼檢驗。
*/

 /*格式化思路和注意事項。
注意格式化的程式碼能符合ESlint程式碼檢驗。
1.用vetur設定預設格式化工具。格式化.vue檔案
2.用ESlint設定儲存時修復ESlint錯誤的功能。
3.用prettier格式化css;去除語法結尾的分號,使用單引號替換雙引號。
4.儲存時自動格式化。
*/

 // 預設使用prettier格式化支援的檔案
 "editor.defaultFormatter": "esbenp.prettier-vscode",

 "vetur.format.defaultFormatter.html": "prettyhtml",
 "vetur.format.defaultFormatter.css": "prettier",
 "vetur.format.defaultFormatter.postcss": "prettier",
 "vetur.format.defaultFormatter.scss": "prettier",
 "vetur.format.defaultFormatter.less": "prettier",
 "vetur.format.defaultFormatter.stylus": "stylus-supremacy",
 // "vetur.format.defaultFormatter.js": "prettier",
 "vetur.format.defaultFormatter.ts": "prettier",
 "vetur.format.defaultFormatter.sass": "sass-formatter",
 "open-in-browser.default": "Chrome",

 // 將vetur的js格式化工具指定爲vscode自帶的
 "vetur.format.defaultFormatter.js": "vscode-typescript",
 // 移除js語句的分號
 "javascript.format.semicolons": "remove",
 // 在函數名後面加上括號,類似這種形式 foo () {}
 "javascript.format.insertSpaceBeforeFunctionParenthesis": true,

 // eslint設定項,儲存時自動修復錯誤。
 "editor.codeActionsOnSave": {
 "source.fixAll": true
 },

 // 指定 *.vue 檔案的格式化工具爲vetur
 "[vue]": {
 "editor.defaultFormatter": "octref.vetur"
 },
 // 指定 *.js 檔案的格式化工具爲vscode自帶
 "[javascript]": {
 "editor.defaultFormatter": "vscode.typescript-language-features"
 },

 "vetur.format.defaultFormatterOptions": {
 "JS-beautify-HTML": {
 // JS-beautify-HTML的設定在這裏
 "wrap_attributes": "force-aligned"
 },
 " prettyhtml": {
 "printWidth'": 100, // 每一行不超過100個字元
 "singleQuote": false, // 不用單引號
 "wrapAttributes": false,
 "sortAttributes": true
 },
 "prettier": {
 // 去掉程式碼結尾的分號
 "semi": false, //不加分號
 "singleQuote": true, //用單引號
 // #讓prettier使用eslint的程式碼格式進行校驗
 "eslintIntegration": true,
 "arrowParens": "always"
 }
 },

 // vscode預設啓用了根據檔案型別自動設定tabsize的選項
 "editor.detectIndentation": false,
 // 重新設定tabsize
 "editor.tabSize": 2,

 // 儲存時自動格式化程式碼
 "editor.formatOnSave": true,

 //可選項。stylus的格式化設定以及sass格式化設定。
 // 格式化stylus, 需安裝Manta's Stylus Supremacy外掛
 "stylusSupremacy.insertBraces": false, // 是否插入大括號
 "stylusSupremacy.insertColons": false, // 是否插入冒號
 "stylusSupremacy.insertSemicolons": false, // 是否插入分號
 "stylusSupremacy.insertNewLineAroundImports": false, // import之後是否換行
 "stylusSupremacy.insertNewLineAroundBlocks": false,
 // 啓用偵錯模式。
 "sass.format.debug": false,
 // 刪除空格
 "sass.format.deleteEmptyRows": true,
 // 刪除最後一個空格。
 "sass.format.deleteWhitespace": true,
 // 將 scss / css 轉換爲 sass。
 "sass.format.convert": true,
 // 如果 屬性:值 爲true,則始終設定爲1.
 "sass.format.setPropertySpace": true

 /*格式化外掛:
//vetur:程式碼高亮、emmet語法支援、語法錯誤校驗檢查、程式碼提醒、格式化vue。
vetur整合了prettier,讓.vue檔案中不同的塊使用不同的格式化方案,
<template> 呼叫 html 格式化工具,
<script> 呼叫 JavaScript 格式化工具,
<style> 使用style格式化工具。

//ESlint:新版的ESlint支援了對.vue檔案的校驗。

//prettyhtml:爲純HTML模板等提供通用格式化的工具。
//prettier:格式化工具,用於css/less/scss/postcss/ts
//stylus-supremacy:用於格式化stylus檔案的node.js模組。
//js的格式化工具用vscode自帶的。
Prettier不支援在函數名後面加上括號。這點和ESlint衝突了。

//EditorConfig:主要是用於讓 vscode 支援.editorconfig 檔案。
.editorconfig 檔案中的設定用於在基本程式碼庫中維持一致的編碼風格和設定,
例如縮排樣式、索引標签寬度、行尾字元以及編碼等。
EditorConfig 是讓程式碼建立前保持規範,
Prettier 是讓程式碼儲存後保持規範
*/
}

總結

到此這篇關於2020最新版vscode格式化程式碼的詳細教學的文章就介紹到這了,更多相關vscode格式化程式碼內容請搜尋it145.com以前的文章或繼續瀏覽下面 下麪的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com