婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用VSCode 創建一個插件

使用VSCode 創建一個插件

熱門標簽:suitecrm 地圖標注 承德地圖標注公司收費 揭陽電腦外呼系統公司 臨沂ai電銷機器人招商 華創e路航彩票銷售點地圖標注 鶴壁外呼系統公司 銀川語音外呼系統中心 高德地圖標注常顯 外呼系統號顯示星號怎么看

VSCode 創建一個插件,如何創建一個插件,VS Code 的插件既然是一個 Node.js 應用,那么官方自然也會提供了基于 NPM 的工具鏈來幫助你創建和維護插件。
首先你需要的是 yeoman,一個腳手架工具。通過 yeoman 你可以快速創建代碼模板,如下所示:

npm install -g yeoman

然后你需要安裝 VS Code 的模板:

npm install -g generator-code

有了腳手架,你就可以創建一個 VS Code 的插件模板了。接下來運行:

yo code myextension

請注意,第三個參數將是你新創建的插件的文件夾名字。

由上圖,你可以看到有七個插件模板:

前兩個是通過編程來提供插件功能,你可以選擇 TypeScript 或者 JavaScript,結果都是類似的,因為 TypeScript 最后也需要被編譯成 JavaScript 再發布;第三個是主題插件,你可以將你自己創建的主題分享給其他人;第四個是語言支持,也就是語法高亮、語言定義等;第五個是代碼片段的分享;第六個則是分享快捷鍵;第七個就是對多個插件進行組合分享。

關于主題(Color Theme)、快捷鍵(Keymap)、代碼片段(Code Snippet)的分享,我會在下一講進行介紹。語言支持之后也會涉及。今天,我們先講述第二個選項 “New Extension (JavaScript)”。

接下來,你會依次被提示輸入插件的名字、介紹、想要用哪個賬號發布、是否要打開 type check以及是否要使用 git 等。你可以暫時按照我的樣例進行輸入,之后也可以再根據需要修改。

輸入全部問題后,腳本就會自動地創建文件,安裝需要的 dependencies。全部結束后,腳本會提示你,可以運行下面的腳本打開這個插件的代碼。

cd myextension code .

VS Code 的腳手架,默認為我們創建了不少的文件。不過像 .gitignore、.eslintrc.json、README.md 這些文件的作用想必你已經比較熟悉了。對于這個插件而言,最重要的是下面幾個文件:

package.json 我上面提到了,VS Code 的插件就是一個 Node.js 的應用,package.json 里記錄了這個 Node.js 應用的信息。同時,插件的信息也會被記錄在這個文件內。 extension.js 這個文件是當前插件的全部代碼。 .vscode 腳手架工具已經為我們提供了調試配置、任務配置等,有了它們,我們就不用自己花時間書寫了。

好了,下面我們來看看 extension.js 和 package.json??赐晁鼈?,你就對 VS Code 插件是如何運行的有很好的理解的。

extension.js的內容在刪除了所有的注釋后,如下:

const vscode = require('vscode');

function activate(context) {
  console.log('Congratulations, your extension "myextension" is now active!');
  let disposable = vscode.commands.registerCommand('extension.sayHello', function () {
    vscode.window.showInformationMessage('Hello World!');
  });

  context.subscriptions.push(disposable);
}
exports.activate = activate;

function deactivate() {
}
exports.deactivate = deactivate;

第一,我們引用了 vscode 這個庫。通過引用這個庫,我們就能夠使用 VS Code 的插件 API 了。

第二,我們創建了 activate 函數并且將其輸出。VS Code 的插件進程在激活這個插件時,就是調用這個被輸出(export)的函數。也就是說,這個函數,就是這個插件的入口。

相對應的就是 deactivate 函數,當我們禁用這個插件或者關閉 VS Code 時,這個函數就會被調用了。
下面我們再來看看 activate 這個函數:

function activate(context) {
  console.log('Congratulations, your extension "myextension" is now active!');
  let disposable = vscode.commands.registerCommand('extension.sayHello', function () {
    vscode.window.showInformationMessage('Hello World!');
  });

  context.subscriptions.push(disposable);
}`

這個函數首先輸出了 log,告訴我們插件已經被成功激活了。接著,我們使用 vscode.commands.registerCommand注冊一個名為 extension.sayHello的命令,這個命令的實現,是 registerCommand的第二個參數,我們通過調用 vscode.window.showInformationMessage ,在界面上調出一個提示框,內容則是 Hello World!。

不過,光有 extension.js ,這個插件是無法運行的。VS Code 會根據條件來激活插件,而這個激活條件寫在了 package.json 中,那么我們一起來看下package.json。

{
  "name": "myextension",
  "displayName": "myextension",
  "description": "my extension",
  "version": "0.0.1",
  "publisher": "rebornix",
  "engines": {
    "vscode": "^1.29.0"
  },
  "categories": [
    "Other"
  ],
  "activationEvents": [
    "onCommand:extension.sayHello"
  ],
  "main": "./extension",
  "contributes": {
    "commands": [
      {
        "command": "extension.sayHello",
        "title": "Hello World"
      }
    ]
  },
  "scripts": {
    "postinstall": "node ./node_modules/vscode/bin/install",
    "test": "node ./node_modules/vscode/bin/test"
  },
  "devDependencies": {
    "typescript": "^2.6.1",
    "vscode": "^1.1.21",
    "eslint": "^4.11.0",
    "@types/node": "^8.10.25",
    "@types/mocha": "^2.2.42"
  }
}

上面這個文件,跟普通的 npm 的 package.json 只有三處不同。

第一處是 engines。

"vscode": "^1.29.0"

它指定了運行這個插件需要的 VS Code 版本。比如 “^1.29.0” 就是說明,要安裝運行這個插件必須要使用 VS Code 1.29 及以上版本。

第二處是 activationEvents。

"activationEvents": [
  "onCommand:extension.sayHello"
]

這個屬性指定了什么情況下這個插件應該被加載并且激活。在我們這個例子里,激活條件是,當用戶想要運行 “extension.sayHello” 這個命令時,就激活這個插件。
這個機制能夠保證,當我們需要使用這個插件的時候,這個插件才被激活,盡可能地保證性能和內存使用的合理性。

第三處是 contributes。

"contributes": {
  "commands": [
    {
      "command": "extension.sayHello",
      "title": "Hello World"
    }
  ]
},

這個屬性指定了,我們這個插件給 VS Code 添加了一個 command,這個 command 的 id 是 “extension.sayHello”, 跟 extension.js 中寫的一樣。而這個命令的名字,叫做 Hello World。

如果不寫這個屬性的話,VS Code 是不會把這個命令注冊到命令面板中的,我們也就沒法找到這個命令并且執行了。

您可能感興趣的文章:
  • 使用VScode 插件debugger for chrome 調試react源碼的方法
  • vscode中eslint插件的配置(prettier配置無效)
  • 解決vscode中golang插件依賴安裝失敗問題
  • VsCode插件開發之插件初步通信的方法步驟
  • vscode extension插件開發詳解
  • vsCode安裝使用教程和插件安裝方法
  • 詳解vscode中vue代碼顏色插件
  • VSCode下好用的Python插件及配置
  • VsCode插件整理(小結)
  • 推薦VSCode 上特別好用的 Vue 插件之vetur
  • 如何使用VSCode 運行調試插件代碼

標簽:忻州 萊蕪 三沙 汕尾 咸寧 棗莊 許昌 七臺河

巨人網絡通訊聲明:本文標題《使用VSCode 創建一個插件》,本文關鍵詞  使用,VSCode,創建,一個,插件,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用VSCode 創建一個插件》相關的同類信息!
  • 本頁收集關于使用VSCode 創建一個插件的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美激情一区二区三区全黄| 91在线porny国产在线看| 欧美高清在线精品一区| 亚洲精品一线二线三线| 91精品国产aⅴ一区二区| 欧美日韩在线播放一区| 精品视频一区 二区 三区| 欧美日韩国产高清一区| 欧美巨大另类极品videosbest| 欧美日韩亚洲综合在线 | 久久国产剧场电影| 日韩av中文字幕一区二区三区| 污片在线观看一区二区| 日韩激情一区二区| 久久99精品久久久久久| 国产成人综合亚洲网站| av激情综合网| 精品国一区二区三区| 久久精品一区二区三区不卡| 国产午夜精品久久久久久免费视 | 欧美三级日本三级少妇99| 91豆麻精品91久久久久久| 欧洲人成人精品| 精品国偷自产国产一区| 国产精品久久久久久久久免费相片| 国产精品天干天干在观线| 亚洲视频在线一区观看| 免费成人av资源网| 成人性视频网站| 欧美日韩一区二区三区四区五区| 日韩欧美亚洲国产另类| 亚洲欧美在线观看| 日本不卡一二三| av亚洲精华国产精华精| 制服丝袜中文字幕亚洲| 国产日产欧美一区二区视频| 一区二区三区日韩欧美精品| 久久99精品久久只有精品| 色乱码一区二区三区88| 精品福利一二区| 一区二区三区四区视频精品免费| 久久精品国产免费| 欧洲一区在线电影| 欧美国产亚洲另类动漫| 捆绑调教美女网站视频一区| 色综合久久中文字幕| www国产精品av| 五月天中文字幕一区二区| 波多野结衣中文字幕一区二区三区| 欧美视频在线观看一区二区| 精品国产乱码久久久久久夜甘婷婷 | 欧美女孩性生活视频| 欧美一区二视频| 久久一区二区三区国产精品| 亚洲国产aⅴ天堂久久| 国产在线播放一区三区四| 在线观看免费视频综合| 精品99久久久久久| 免费视频一区二区| 成人精品视频一区| 久久久美女毛片| 亚洲在线观看免费| 91麻豆免费视频| 国产日韩成人精品| 久久精品久久99精品久久| 国产**成人网毛片九色| 久久久久成人黄色影片| 久久福利视频一区二区| 欧美在线免费播放| 亚洲综合激情小说| 色一情一乱一乱一91av| 国产亚洲欧洲一区高清在线观看| 久久精品久久99精品久久| 欧美在线不卡视频| 亚洲国产精品麻豆| 欧美中文字幕亚洲一区二区va在线| 国产精品视频你懂的| 国产在线精品不卡| 欧美激情资源网| 国产真实乱子伦精品视频| 精品国产精品一区二区夜夜嗨 | 在线观看免费成人| 最新欧美精品一区二区三区| 99精品桃花视频在线观看| 国产午夜亚洲精品不卡| 99视频精品在线| 国产精品久久久久久久第一福利 | 中文字幕av一区二区三区高 | 亚洲黄色片在线观看| 国产精品一区久久久久| 欧美国产亚洲另类动漫| 国产精品77777| 亚洲三级在线观看| 国产一区免费电影| 国产精品久久久久aaaa樱花| 国产做a爰片久久毛片| 国产精品乱人伦| 久99久精品视频免费观看| 久久久午夜精品| 国产在线麻豆精品观看| 久久综合网色—综合色88| 丁香激情综合五月| 亚洲免费高清视频在线| 7777精品伊人久久久大香线蕉 | 欧美日韩一级片在线观看| 国产精品情趣视频| 丁香婷婷综合网| 亚洲精品国产视频| 欧美日韩一卡二卡| 久久精品国产网站| 亚洲欧洲日本在线| 欧美日韩大陆在线| 成人av网站免费观看| 自拍偷拍亚洲综合| 久久久久久久久久久电影| 成人sese在线| 麻豆视频一区二区| 欧美经典一区二区三区| 欧美日韩第一区日日骚| 国产一区二区三区精品欧美日韩一区二区三区 | 在线国产电影不卡| 久久精品国产久精国产| 国产精品嫩草久久久久| 91精品国产91热久久久做人人| 精品在线一区二区三区| 亚洲精品国产第一综合99久久| 欧美肥胖老妇做爰| 色88888久久久久久影院野外| 日韩电影在线观看网站| 夜夜夜精品看看| 久久久国际精品| 精品国产91乱码一区二区三区| 日本黄色一区二区| 国产精品一区二区91| 六月丁香综合在线视频| 国产精品久久久久久亚洲伦 | 一本大道久久a久久综合| 婷婷久久综合九色综合绿巨人 | 色综合久久综合| 亚洲国产色一区| 国产精品久久久爽爽爽麻豆色哟哟| 欧美va亚洲va国产综合| 欧美综合一区二区| 91九色最新地址| 成人免费视频视频| 懂色一区二区三区免费观看| 日韩激情中文字幕| 久久99精品久久久久久久久久久久| 久久久精品国产免大香伊| 国产夜色精品一区二区av| 欧美mv日韩mv| 日韩欧美中文字幕制服| 日韩欧美三级在线| 日韩一区二区在线观看视频播放| 色欧美乱欧美15图片| 99久久久精品免费观看国产蜜| 国产美女在线精品| 国产又粗又猛又爽又黄91精品| 精品在线亚洲视频| 久久精品国产久精国产爱| 国产精品影视在线| 日韩高清电影一区| 精品在线免费观看| 丰满放荡岳乱妇91ww| 国产精品白丝jk黑袜喷水| 风间由美性色一区二区三区| 国产在线精品免费av| 99精品1区2区| 色中色一区二区| 制服丝袜日韩国产| 欧亚一区二区三区| 久久亚洲二区三区| 中文字幕在线不卡| 亚洲精品国产一区二区精华液 | 九九视频精品免费| 成人精品一区二区三区四区| 国产.欧美.日韩| 欧美夫妻性生活| 精品少妇一区二区三区| 国产精品久久久久毛片软件| 精品国产精品一区二区夜夜嗨| 中文字幕av一区二区三区高| 精品国产乱码久久久久久老虎 | 欧美日韩亚洲综合一区二区三区 | 裸体一区二区三区| 国产激情视频一区二区三区欧美 | 欧美日本国产视频| 日韩精品一区二区三区四区| 日韩午夜电影av| 一区二区三区影院| 美女被吸乳得到大胸91| 99re亚洲国产精品| 久久国产精品99久久人人澡| 成人国产精品免费观看动漫| 欧美日韩成人综合在线一区二区 | 成人免费看黄yyy456| 在线国产电影不卡| 国产精品久线在线观看| 亚洲综合色网站| 成人av电影在线网|