iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0

大家好,我是韋恩,今天是第十四天,今天我們會練習使用Output Channel輸出訊息給使用者,並利用OutputChannel練習熟悉物件導向的設計,讓我們開始吧!


[圖片來源:筆者VSCode截圖]

Output Channel簡介


在VSCode的Panel元件上,我們可以看到第三個名為OUTPUT的tab,這裡會顯示各種Extension輸出的訊息。

我們可以展開右邊預設是Task的下拉選單,展開選單後,我們可以看到,我們可以看到

TaskExtension下面,有著各種Extension名稱的選項,點擊這些選項後,我們就會進入到這個Extension的訊息輸出頻道,也就是我們今天的主題Output Channel。

讓我們點擊下Typescript,切換到Typescript的Output Channel的頻道吧!

選中Typescript後我們可以看到,Panel底下輸出了Typescript的TS Server啟動等各種訊息,透過Output Channel,我們可以讓使用者檢視Extension當前的狀態了。

現在,讓我們了解下用法。

createOutputChannel API用法介紹


前面已經介紹過,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。

我們明天見,謝謝大家。

本日參考文件



上一篇
Day13 | 打造VSCode上的TreeView樹狀選單 (二) - DataProvider的原理與相關觀念 X List的增刪改查
下一篇
Day15 | Webview API (一)
系列文
自己用的工具自己做! 30天玩轉VS Code Extension之旅36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言