成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

利用 Vscode snippets 和項目成員一起提高開發(fā)效率

開發(fā) 前端
vscode 的 snippets 是可以隨項目共享的,多人開發(fā)一個項目的時候,可以維護項目級別的 snippets 并且通過 git 共享,來提高項目開發(fā)效率。

[[422869]]

code snippets 是代碼片段的意思,是 vscode 提供的根據(jù)某字符串快速補全一段代碼的功能,可以提高寫代碼的效率。

圖片

vscode 的 snippets 是可以隨項目共享的,多人開發(fā)一個項目的時候,可以維護項目級別的 snippets 并且通過 git 共享,來提高項目開發(fā)效率。

下面我們來詳細(xì)了解下 snippets。

snippets 的功能

snippets 配置的格式如下:

  1.   "For Loop": { 
  2.     "prefix": ["for""for-const"], 
  3.     "body": ["for (const ${2:element} of ${1:array}) {""\t$0""}"], 
  4.     "description""A for loop." 
  5.   } 
  • prefix 是觸發(fā) snippets 的前綴,可以通過數(shù)組指定多個
  • body 是填入到編輯器的內(nèi)容
  • description 是 snippets 的描述

其中 body 部分可以通過 ${} 的方式指定光標(biāo)位置、順序、占位字符串、可用的值等,有 5 種語法,我們分別來看一下:

光標(biāo)跳轉(zhuǎn):$1 $2

可以通過 $1、$2 指定光標(biāo)位置,當(dāng)填入 snippets 的內(nèi)容之后,光標(biāo)會設(shè)置到 $1 的位置來編輯,當(dāng)編輯完,可以通過 tab 來跳到 $2。

比如這段配置:

  1.  "測試": { 
  2.   "scope""javascript,typescript"
  3.   "prefix""test"
  4.   "body": [ 
  5.    "$1  xxxx"
  6.    "yyyy $2"
  7.   ], 
  8.   "description""光標(biāo)跳轉(zhuǎn)" 
  9.  } 

效果為:

圖片

還有當(dāng)有多個 $1、$2 等,編輯一處其他內(nèi)容也會同步修改,也就是 vscode 的多光標(biāo)編輯。

比如:

  1.  "測試": { 
  2.   "scope""javascript,typescript"
  3.   "prefix""test"
  4.   "body": [ 
  5.    "$1  xxxx $1"
  6.   ], 
  7.   "description""多光標(biāo)" 
  8.  } 

效果為:

通過這種功能可以快速編輯 snippets 中的可編輯內(nèi)容。

占位符:${1: placeholder}

只是光標(biāo)跳轉(zhuǎn)雖然可以快速編輯內(nèi)容,但是不知道編輯的部分是什么,所以 snippets 支持了設(shè)置 placeholder 的值,默認(rèn)會選中該段文本,輸入內(nèi)容即可覆蓋。

比如:

  1.  "測試": { 
  2.   "scope""javascript,typescript"
  3.   "prefix""test"
  4.   "body": [ 
  5.    "${1:aaa}  xxxx"
  6.    "yyyy ${2:bbb}"
  7.   ], 
  8.   "description""光標(biāo)跳轉(zhuǎn)" 
  9.  } 

效果為:

可選值:${1|text1,text2,text3|}

占位符的方式就像 input 標(biāo)簽加了個 placeholder 屬性,還是要手動輸入,當(dāng)可編輯區(qū)域是有幾個可選的值的話,就要換成下拉選擇,在 snippets 里就是通過:

${1|text1,text2,text3|} 的方式支持,在 | 和 | 之間填入通過 , 分割的多個選項。

比如:

  1.  "測試": { 
  2.   "scope""javascript,typescript"
  3.   "prefix""test"
  4.   "body": [ 
  5.   "${1|神說要有光,卡頌|}" 
  6.   ], 
  7.   "description""可選值" 
  8.  } 

效果為:

變量:$變量名

在模版可編輯位置填入內(nèi)容的時候,有的時候需要用到選中的值、剪貼板的值、文件名、日期等,這些信息通過 snippets 中支持的變量來取。

比如:

  • TM_FILENAME: 文件名
  • TM_CURRENT_LINE: 當(dāng)前行的內(nèi)容
  • CLIPBOARD: 剪貼板內(nèi)容
  • WORKSPACE_NAME:workspace 的名字
  • WORKSPACE_PATH:workspace 的路徑
  • CURRENT_YEAR:當(dāng)前年
  • CURRENT_MONTH:當(dāng)前月
  • CURRENT_DATE:當(dāng)前日
  • RANDOM: 隨機數(shù)
  • RANDOM_HEX: 6 位隨機 16 進(jìn)制數(shù)
  • UUID: 唯一 id

可以取這些變量的值來填入到光標(biāo)位置,方式就是使用 $TM_FILENAME、$CURRENT_YEAR 的方式。

比如:

  1.  "測試": { 
  2.   "scope""javascript,typescript"
  3.   "prefix""test"
  4.   "body": [ 
  5.   "當(dāng)前文件: $TM_FILENAME"
  6.   "當(dāng)前日期: $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE" 
  7.   ], 
  8.   "description""變量" 
  9.  } 

效果為:

變量轉(zhuǎn)換:${變量名/匹配的正則/替換到的字符串/匹配模式}

支持了變量的填入還不行,因為有的變量的內(nèi)容不合適,需要做一些字符串替換,所以 snippets 只吃了 transform 的功能。

比如 abc-123.js 的文件,

我們通過 $TM_FILENAME 取到文件名,然后把后綴去掉轉(zhuǎn)成大寫填入

  1. ${TM_FILENAME/(.*)\\.[a-z]+/${1:/upcase}/i} 

對文件名 TM_FILENAME 做正則匹配 (.*).[a-z]+,把分組一變成大寫之后返回,匹配模式為忽略大小寫(ignore)。

  1.     "填入文件名": { 
  2.             "scope""javascript,typescript"
  3.             "prefix""filename"
  4.             "body": [ 
  5.                     "${TM_FILENAME/(.*)\\.[a-z]+/${1:/upcase}/i}" 
  6.             ], 
  7.             "description""文件名" 
  8.     } 

我們實驗下效果:

圖片

可以看到,正確的取到了文件名,并且去掉后綴轉(zhuǎn)成大寫填入了。

知道了 snippets 的功能,那么怎么設(shè)置 snippets 呢?snippets 在什么范圍內(nèi)生效呢?

snippets 的范圍

command + shift + p 打開命令面板,輸入 snippet,選擇 configure user snippets:

可以選擇創(chuàng)建全局的、項目范圍的、語言范圍的 snippets:

分別會打開不同位置的文件來添加 snippets。

語言級別的 snippets 是對于特定語言才生效,這個還可以封裝成插件。在插件的 package.json 中配置下即可:

  1.   "contributes": { 
  2.     "snippets": [ 
  3.       { 
  4.         "language""javascript"
  5.         "path""./snippets.json" 
  6.       } 
  7.     ] 
  8.   } 

項目范圍的 snippets 是在項目根目錄的 .vscode/xxx.code-snippets 下面添加的,vscode 啟動的時候會讀取這些文件,然后使之在項目范圍內(nèi)生效。

當(dāng)有一些項目級別的代碼片段可以共享的時候,完全把這個文件提交到遠(yuǎn)程 git 倉庫,然后項目成員都可以共享這些 snippets 設(shè)置。對于一些模版代碼比較多的項目,還是比較有意義的。

總結(jié)

snippets 是 vscode 提供的用于提高開發(fā)效率的一些快速輸入代碼片段的功能,支持光標(biāo)位置的跳轉(zhuǎn)、多光標(biāo)同時編輯、占位符、可選值、變量、變量轉(zhuǎn)換等功能,靈活運用這些功能,可以作出易用的提高開發(fā)效率的 snippets。

snippets 有 global、language、project 3 種生效范圍:global 是全局的設(shè)置;language 是語言級別的設(shè)置,可以進(jìn)一步封裝成插件共享;project 則是項目范圍內(nèi)的,在 .vscode 下的 xx.code-snippets 中,完全可以提交到 git 倉庫,和其他成員共享。

靈活運用 snippets 功能,是可以提高開發(fā)效率的,而且這個也是可以項目級別共享的。希望這篇文章能夠幫大家了解 snippets。

【編輯推薦】

 

責(zé)任編輯:姜華 來源: 神光的編程秘籍
相關(guān)推薦

2022-01-13 22:37:26

VSCode代碼 編輯器

2021-11-04 06:58:31

CSS性能設(shè)備

2021-02-23 09:21:29

代碼效率C++

2010-11-15 16:46:49

Oracle查詢效率

2015-07-20 10:54:47

IOS提高效率工具

2021-02-07 09:26:55

機器學(xué)習(xí)建筑能源ML

2021-07-17 06:48:09

AI人工智能

2021-07-18 07:45:04

物聯(lián)網(wǎng)資產(chǎn)IOT

2021-11-16 19:18:23

數(shù)字化

2010-08-26 12:55:01

丁磊

2023-12-28 09:55:08

隊列數(shù)據(jù)結(jié)構(gòu)存儲

2023-11-22 08:26:03

HutoolJava工具集

2009-11-06 08:57:31

WCF開發(fā)

2024-02-02 09:21:57

API性能策略

2013-08-06 09:49:01

2013-09-18 10:25:52

Google Glas谷歌眼鏡

2022-12-02 14:20:09

Tetris鴻蒙

2022-11-29 16:35:02

Tetris鴻蒙

2009-06-19 15:11:34

DWR和Spring

2023-05-31 08:42:02

管理產(chǎn)品技術(shù)項目
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产在线观看福利 | 亚洲综合无码一区二区 | 成人一区二区三区在线观看 | 欧美日韩精品亚洲 | 日韩成人在线电影 | 日本视频中文字幕 | 亚洲精品www | 中文字幕视频一区二区 | 亚洲天堂中文字幕 | 国产免费一区二区三区网站免费 | 在线区| 久久精品国产一区二区电影 | 久热久热| 欧美日韩一本 | 91久久国产综合久久91精品网站 | 黄色欧美视频 | 国产成人精品久久二区二区91 | 欧美日韩理论 | 久久久噜噜噜www成人网 | 国产一区二区精 | 久久精品国产99国产精品亚洲 | 国产精品片 | 精品日韩一区 | 热久久性| 岛国av在线免费观看 | 日本黄色不卡视频 | 免费成人高清在线视频 | 欧美日韩在线观看视频 | 亚洲精品视频免费 | 亚洲高清一区二区三区 | 精品欧美一区二区在线观看视频 | 黑人巨大精品欧美一区二区免费 | a网站在线观看 | 亚洲视频免费 | 精品中文字幕一区二区 | 国产成人精品一区二区 | 国产成人精品免费视频大全最热 | 亚洲综合一区二区三区 | 日韩av一区二区在线观看 | 亚洲国产成人精品女人久久久 | 成人免费视频网站在线看 |