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

xal發表於2018-10-18

更多文章請戳VSCode外掛開發全攻略系列目錄導航

本文提煉一些常見的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的一種快捷呼叫方式,如需更多自定義設定可以使用這個方法。

參考

https://code.visualstudio.com/docs/extensionAPI/vscode-api


相關文章