【vscode插件】獲取當前激活的編輯器及其信息詳解

ps. 原本計劃從webstorm換vscode,本身寫一些插件來用,可是發現vscode還有不少沒遇上webstorm的地方,太多地方要寫插件了,用着很糟心,因而決定續費webstorm,就再也不更新這個系列啦web

vscode.TextEditor

這就是vscode的文本編輯器對象api

官方相關文檔:https://code.visualstudio.com...webstorm

通常來講看官方文檔也能看懂了,可是有個別屬性還要本身實驗才理解具體意思編輯器

獲取當前激活的編輯器對象方法:spa

import * as vscode from 'vscode'
const editor: vscode.TextEditor | undefined = vscode.window.activeTextEditor

vscode.TextEditor有如下屬性:插件

selection 當前選中的文本

selection.active 當前光標位置
Position 類型
若是有選中的文本,這裏是被選擇文本的最後,細心的你會發現,選擇了文本後,光標也是會存在的。code

若是隻須要知道當前光標在哪,獲取這個就對了orm

selection.anchor 選擇開始的位置
Position 類型
若是沒有選中的文本,這個值與 selection.active 徹底一致,但若是選中了文本,這裏就是被選中文本的開始位置對象

selection.start 靠前的位置
Position 類型
這個值應該是以上兩值的副本,Postion 會計算出以上兩值中,靠前一值放到這來。line越小越前,line相同character越小越前blog

selection.end 靠後的位置
Position 類型
同上,兩值中靠後一值放到這來

selections

Array<Position>類型
vscode有個方便的功能,選中一處代碼以後,按ctrl+d能夠把當前編輯器中相同的代碼一塊兒選中,這就會出現多個選中區域,因此這個屬性是把全部選中區域都記錄上了。而且它的第一個子項,確定是用戶一開始選中的那個區域

vscode.Position

這是vscode的位置類型,用於表達文本編輯器裏的位置,有兩個屬性:linecharacter

關注過vscode下面信息欄的下面這個信息,就知道這兩個屬性表達的意思了。

clipboard.png

可是這兩個屬性與上圖有一個不一致的,上圖是從1開始計數,而 position 的兩個屬性是從0開始計數

相關文章
相關標籤/搜索