1. 程式人生 > >VSCode外掛開發全攻略(九)常用API總結

VSCode外掛開發全攻略(九)常用API總結

本文提煉一些常見的API使用場景供參考,本文內容有待完善。

編輯器相關

修改當前啟用編輯器內容

替換當前編輯器全部內容:

vscode.window.activeTextEditor.edit(editBuilder => {
    // 從開始到結束,全量替換
    const end = new vscode.Position(vscode.window.activeTextEditor.document.lineCount + 1, 0);
    const text = '新替換的內容';
    editBuilder.replace(new vscode.Range(new vscode.Position(0, 0), end), text);
});

開啟檔案並選中某段文字

const path = '/Users/somefile.txt';
const options = {
    // 選中第3行第9列到第3行第17列
    selection: new vscode.Range(new vscode.Position(2, 8), new vscode.Position(2, 16));
    // 是否預覽,預設true,預覽的意思是下次再開啟檔案是否會替換當前檔案
    preview: false,
    // 顯示在第二個編輯器
    viewColumn: vscode.ViewColumn.Two
};
vscode.window.showTextDocument(vscode.Uri.file(path), options);

preview為true相當於我們在檔案管理器單擊檔案,此時標題是斜體(如下圖),為false時則相當於雙擊。

W740xH312

通知和狀態列

提示

vscode.window.showInformationMessage('我是info資訊!');
vscode.window.showErrorMessage('我是錯誤資訊!');

自定義按鈕帶回調的提示:

vscode.window.showInformationMessage('是否要開啟小茗同學的部落格?', '是', '否', '不再提示').then(result => {
    if (result === '是') {
        exec(`open 'https://haoji.me'`);
    } else if (result === '不再提示') {
        // 其它操作
    }
});

修改狀態列

vscode.window.setStatusBarMessage('你好,前端藝術家!');

W594xH270

setStatusBarMessage只是vscode.window.createStatusBarItem的一種快捷呼叫方式,如需更多自定義設定可以使用這個方法。

參考

相關推薦

VSCode外掛開發常用API總結

本文提煉一些常見的API使用場景供參考,本文內容有待完善。 編輯器相關 修改當前啟用編輯器內容 替換當前編輯器全部內容: vscode.window.activeTextEditor.edit(editBuilder => { // 從開始到結束,全量替換 const end = ne

VSCode外掛開發WebView

更多文章請戳VSCode外掛開發全攻略系列目錄導航。 什麼是Webview 大家都知道,整個VSCode編輯器就是一張大的網頁,其實,我們還可以在Visual Studio Code中建立完全自定義的、可以間接和nodejs通訊的特殊網頁(通過一個acquireVsCodeApi特殊方法),這個網頁就叫W

VSCode外掛開發開發除錯技巧

更多文章請戳VSCode外掛開發全攻略系列目錄導航。 前言 在介紹完一些比較簡單的內容點之後,我覺得有必要先和大家介紹一些開發中遇到的一些細節問題以及技巧,特別是後面一章節將要介紹WebView的知識,這個坑會比較多,避免大家走彎路。 開發方式 最理想的方式是準備雙顯示器,一個寫程式

VSCode外掛開發跳轉到定義、自動補、懸停提示

更多文章請戳VSCode外掛開發全攻略系列目錄導航。 跳轉到定義 跳轉到定義其實很簡單,通過vscode.languages.registerDefinitionProvider註冊一個provider,這個provider如果返回了new vscode.Location()就表示當前游標所在單詞支援跳轉

VSCode外掛開發概覽

文章索引 寫在前面 一年前我寫了一篇3萬多字的Chrome外掛(擴充套件)開發全攻略,反響還不錯,幫助了很多新手快速上手,甚至包括大名鼎鼎的紅芯瀏覽器(戳這裡瞭解更多)。 最近因工作需要又接觸到了vscode外掛開發,所以趁勢再寫一篇有關vscode外掛開發的文章,記錄一些自己踩過的坑以及接觸vscod

VSCode外掛開發程式碼片段、設定、自定義歡迎頁

程式碼片段 程式碼片段,也叫snippets,相信大家都不陌生,就是輸入一個很簡單的單詞然後一回車帶出來很多程式碼。平時大家也可以直接在vscode中建立屬於自己的snippets: 建立程式碼片段 那麼如何在擴充套件中建立snippets呢? package.json檔案新增如下: "contribut

VSCode外掛開發打包、釋出、升級

釋出方式 外掛開發完了,如何釋出出去分享給他人呢?主要有3種方法: 方法一:直接把資料夾發給別人,讓別人找到vscode的外掛存放目錄並放進去,然後重啟vscode,一般不推薦; 方法二:打包成vsix外掛,然後傳送給別人安裝,如果你的外掛涉及機密不方便釋出到應用市場,可以嘗試採用這種方式; 方法三:註冊

VSCode外掛開發HelloWord

寫著前面 學習一門新的語言或者生態首先肯定是從HelloWord開始。 您可以直接克隆我放在GitHub上vscode-plugin-demo 的程式碼到本地,然後嘗試修改程式碼並執行,也可以使用微軟官方的腳手架vscode-generator-code來生成專案結構,腳手架的使用我們後面再來介紹,先來熟悉

VSCode外掛開發package.json詳解

package.json 在詳細介紹vscode外掛開發細節之前,這裡我們先詳細介紹一下vscode外掛的package.json寫法,但是建議先只需要隨便看一下,瞭解個大概,等後面講到具體細節的時候再回過頭來看。 如下是package.json檔案的常用配置,當然這裡還不是全部: { // 外掛的

VSCode外掛開發命令、選單、快捷鍵

命令 我們在前面HelloWord章節中已經提到了命令寫法,這裡再重溫一下。 context.subscriptions.push(vscode.commands.registerCommand('extension.sayHello', () => { vscode.window.showI

【乾貨】Chrome外掛(擴充套件)開發轉載

轉載來源:https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html 【乾貨】Chrome外掛(擴充套件)開發全攻略 寫在前面 我花了將近一個多月的時間斷斷續續寫下這篇博文,並精心寫下完整demo,寫部落格的辛苦大家懂的,

【微軟大法好】VS Tools for AI2

port shell orf 方式 virt cnblogs 我們 玩耍 虛擬 接著上文,我們來討論如何使用Azure資源來訓練我們的tensorflow項目。Azure雲我個人用得很多,主要是因為微軟爸爸批了150刀每月的額度,我可以愉快地玩耍。 那麽針對Azure,有成

C#微信公眾號3--接管所有訊息驗證部分 C#程式碼

新建網站 新建一般處理程式 怎麼操作SQL資料庫不寫了 只發一些關鍵部分程式碼 一般處理程式關鍵程式碼 public class Interface : IHttpHandler { public stati

C#微信公眾號5--群發訊息時的openid對應的使用者是誰呢

有一個openid不屬於公眾號關注使用者的任何一位 在通過微信控制檯群發訊息後 將有一個Event為MASSSENDJOBFINISH的事件推送 對應的openid 他是誰呢 他的nickname是張三瘋 來自 中國 廣東 廣州 簽名是DayDayUpUp

C#微信公眾號4--實現回覆訊息C#程式碼

接上文 這個函式把使用者發來的內容交接給messageHelp來處理 最後返回messageHelp.ReturnMessage private void Handle(string postStr) { messageHelp help = new

VS Tools for AI2低配置虛擬機器也能玩轉深度學習,無需NC/NV系列

接著上文VS Tools for AI全攻略,我們來討論如何使用Azure資源來訓練我們的tensorflow專案。Azure雲我個人用得很多,主要是因為微軟爸爸批了150刀每月的額度,我可以愉快地玩耍。 那麼針對Azure,有成套的兩個方案解決問題。 方案一(比較有錢的、對速度要求高的):使用De

Linux使用者管理

摘要:本文詳解使用者(User)和使用者組(Group)的配置檔案,本文是《Linux 使用者(User)和使用者組(Group)管理概述》文件的關健部份的細化;通過本文,您至少能明白/etc/passwd /etc/group ,以及什麼是UID和GID 等;其中對UID的

Android程序保活

在上一篇部落格Android程序保活全攻略(上)中介紹了程序保活的背景和一些方法的思路和實現方式,本篇部落格我將承接上篇部落格,繼續進行介紹。 9) 1畫素懸浮層 **思路:**1畫素懸浮層是傳說的QQ黑科技,監控手機鎖屏解鎖事件,在螢幕鎖屏時啟動1個

在Struts2中實現自定義分頁標籤

我們先看看這個分頁標籤的效果: 使用標籤的最大好處就是下次再用到的話直接引用就行,而不必重寫。 本人對Struts2自定義標籤沒有太深究,在網上找了一些資料可以參考參考: 其實,開發自定義標籤並不需要Struts2的支援,一般情況下,只需要繼承javax.servle

企業專案遷移go-zero

承接上篇:上篇文章講到 `go-zero` 架構設計和專案設計。本篇文章接著這個專案設計,將生成的 `app 模組` 中 `gateway` 和 `RPC` 進行改造。廢話不多說,讓我們開始! ## gateway service gateway 中我做了一些自定義,在端請求我們後臺介面情況下,雖然多數情