大家好,我是韋恩,今天是第十四天,今天我們會練習使用Output Channel輸出訊息給使用者,並利用OutputChannel練習熟悉物件導向的設計,讓我們開始吧!
[圖片來源:筆者VSCode截圖]
在VSCode的Panel元件上,我們可以看到第三個名為OUTPUT
的tab,這裡會顯示各種Extension輸出的訊息。
我們可以展開右邊預設是Task
的下拉選單,展開選單後,我們可以看到,我們可以看到
在Task
跟Extension
下面,有著各種Extension名稱的選項,點擊這些選項後,我們就會進入到這個Extension的訊息輸出頻道,也就是我們今天的主題Output Channel。
讓我們點擊下Typescript
,切換到Typescript
的Output Channel的頻道吧!
選中Typescript
後我們可以看到,Panel底下輸出了Typescript的TS Server啟動等各種訊息,透過Output Channel,我們可以讓使用者檢視Extension當前的狀態了。
現在,讓我們了解下用法。
前面已經介紹過,VSCode的window命名空間底下的以create開頭的api,起手式均為先create一個物件,再讓我們使用該物件的方法。OutputChannel也不例外。讓我們先來創造一個OutputChannel物件吧!
const channel = vscode.window.createOutputChannel('YourChannelName');
讀者們可以看到,在上面的程式碼中,我們提供給create方法一個YourChannelName,當create這個channel以後,我們即可在Output Panel的下拉選單中找到這個我們提供的頻道名字。
接下來,讓我們來看一下channel物件底下有什麼API可以使用
OutputChannel方法 | 描述 |
---|---|
append | 在panel中訊息的尾部換行後輸出訊息。 |
appendLine | 在panel中訊息的尾部輸出訊息,不換行。 |
clear | 清除所有panel上輸出的訊息。 |
dispose | 釋放vscode分配給output channel的資源。 |
hide | 隱藏顯示中的OutputChannel。 |
show | 打開panel並呈現extension的OutputChannel訊息。 |
讓我們練習一下最常用的append方法與appendLine方法
const channel = vscode.window.createOutputChannel('ChannelPractice');
channel.append('[ newLineText ]');
channel.appendLine('[ appendLine after previous line] ');
channel.append('[ newLineText ]');
channel.appendLine('[ appendLine after previous line] ');
channel.show();
以上面的示範為例,VSCode會打開panel並輸出這樣的訊息
好啦,今天,我們練習了基本的OutputChannel用法,並且理解了api的各種用途。
明天我們會繼續介紹extension實務開發的常用元件和api。
我們明天見,謝謝大家。