ps. 原本計劃從webstorm換vscode,本身寫一些插件來用,可是發現vscode還有不少沒遇上webstorm的地方,太多地方要寫插件了,用着很糟心,因而決定續費webstorm,就再也不更新這個系列啦web
這就是vscode的文本編輯器對象api
官方相關文檔:https://code.visualstudio.com...webstorm
通常來講看官方文檔也能看懂了,可是有個別屬性還要本身實驗才理解具體意思編輯器
獲取當前激活的編輯器對象方法:spa
import * as vscode from 'vscode' const editor: vscode.TextEditor | undefined = vscode.window.activeTextEditor
vscode.TextEditor有如下屬性:插件
selection.active 當前光標位置Position
類型
若是有選中的文本,這裏是被選擇文本的最後,細心的你會發現,選擇了文本後,光標也是會存在的。code
若是隻須要知道當前光標在哪,獲取這個就對了orm
selection.anchor 選擇開始的位置Position
類型
若是沒有選中的文本,這個值與 selection.active
徹底一致,但若是選中了文本,這裏就是被選中文本的開始位置對象
selection.start 靠前的位置Position
類型
這個值應該是以上兩值的副本,Postion 會計算出以上兩值中,靠前一值放到這來。line越小越前,line相同character越小越前blog
selection.end 靠後的位置Position
類型
同上,兩值中靠後一值放到這來
Array<Position>
類型
vscode有個方便的功能,選中一處代碼以後,按ctrl+d能夠把當前編輯器中相同的代碼一塊兒選中,這就會出現多個選中區域,因此這個屬性是把全部選中區域都記錄上了。而且它的第一個子項,確定是用戶一開始選中的那個區域
這是vscode的位置類型,用於表達文本編輯器裏的位置,有兩個屬性:line
和character
關注過vscode下面信息欄的下面這個信息,就知道這兩個屬性表達的意思了。
可是這兩個屬性與上圖有一個不一致的,上圖是從1開始計數,而 position 的兩個屬性是從0開始計數