VsCode插件开发之插件初步通信的方法步骤_实用技巧

来源:脚本之家  责任编辑:小易  

音迷动画截面图(20张)首先推出的音乐明星动画片《音迷》,是一部以故事内容来引导青少年善用音乐与明星效应的动画片,全剧有16首原创歌曲,几乎每一集都有娓娓动听的潮流歌曲可以欣赏,从这部片子开发之初(2007.5.1)的COSPLAY表演后,几乎每一个展会,我们每次COSPLAY表演后都有观众过来索要我们主题曲的音乐文件,由此可见《音迷》的音乐魔力所在。《音迷》其实除了音乐,角色造型和道具方面也是一部很有商业价值的动画片,可以讲从《音迷》开始,达力动画将正式踏上商业动画片的范畴。剧中正派乐队(TrueLove真爱乐队)的3名主角,均有常服和战斗服着装;也有常态、战斗态、Q版、舞台态等多种形象;道具上有呼叫器、战斗武器、常用乐器等等,目的就是给充分的素材衍生产品合作商提炼商业价值www.zgxue.com防采集请勿采集本网。

参考了Egret Wing,想像Egret Wing那样在上方titlebar最右边上面增加一个menu(这个menu相对于一个按钮,当点击这个按钮时会出现一个window弹框,这个window弹框里就包含相关的表单信息以供登录或者注册使用。我是以这个作为参考模板的。但是目前进展并不是很顺。于是我通过插件的方式暂时性解决了这个问题。但是觉得还不是想要的那样。

例如动画片《蓝精灵》插曲童声齐唱《可爱的蓝精灵》,对于当今二十岁以上的人来说是非常熟悉的,然而教师满怀期待地在一年级课堂上播放时,学生对富有动感的节奏、可爱迷人的蓝精灵形象竟然是无动于衷的

Egret Wing是这样的,如图所示:

1、首先打开手机版的WPS程序并点击“新建演示”图标。2、然后在新建的演示PPT页面中点击左下角的图标位置,进入设置界面。3、选择“插入”选项并点击“背景音乐”选项,选择该选项即可让插入的

不得不承认一点Egret Wing改造的挺不错的,不愧是对VsCode进行魔改。

《我不想逃》 演唱:樊凡 《守着你到永久》 演唱:樊凡 《燃烧翅膀》 演唱:樊凡 《我想大声告诉你》 演唱:樊凡 《我想要这一种幸福》 演唱:丁薇

今天先说一下通过插件通信。

歌曲的格式不支持可能是主要问题。1、电脑上下载的歌曲有多种格式,比如MP3、WAVE、APE等等,由于电脑上安装有多种插件,在你播放时,播放器会自动查找所适用的插件,你是看不到的。所以感觉不到

我主要参考的是一个叫小茗同学的插件开发,并改造其插件来达到我的目的。

在设计图示下,最下面有“页面属性” 在页面属性里找相关选项 其实代码也很简单的 在代码图示找到 在这个后面输入 这样就可以了 其中,“1.mp3”是音乐文件的路径,如果是和网页在同一个目录下

这个小茗同学我觉得他写的插件开发,我觉得不是特别详细全面,当然,参考意义还是有的。

他的插件开发目录如下:

他的插件github地址为:https://github.com/sxei/vscode-plugin-demo.git

他的插件可以在VsCode插件扩展中搜到(搜到后安装,然后直接在下载成功的插件的基础上改造),例如:

那么说说我是如何改造它的呢?

我主要改造它这么几个地方?

一个是图标,另外一个修改它的html界面(主要是修改custom-welcome.html),同时我要和还改了package.json文件。

插件开发可以用TypeScript,也可以用JavaScript。

如果是用TypeScript的话,通常扩展脚本文件是extension.ts形式存在,如果是JavaScript,则是以extension.js的形式存在。

在此我想强调的是改他人插件或者自己编写插件,以ts为例,主要把握也就两个文件,一个是extension.ts,另一个就是package.json。

如何从0开发以插件的相关视频,感兴趣的可以看看,感觉还是有一定的启发的:https://v.qq.com/x/page/k08220bdz3s.htmlb

我改造后的插件代码,放在我的个人github上,大家可以将其下载下来放入,如下两个文件中(任意一个都行):

注意:

.vscode文件夹:官方插件下载好默认放入的目录。

.vscode-oss-dev:下载源码,自己编译,下载插件放置的目录。

自己编译的不知道由于什么原因不能直接联网通信搜索一些应用市场下载的插件。

通常情况下(以.vscode-oss-dev为例),git clone下来我的插件地址,然后将其移植到这个目录就能看到对应的效果,效果图如下:

我的VsCode插件地址为:https://github.com/youcong1996/study_simple_demo/tree/vscode-plugin-communication

将其克隆下来放入.vscode或者.vscode-oss-dev中的extensions目录下即可起作用。

另外有一点要强调的是,如果是vscode非自己编译的,需要重启一下vscode,如果是自己编译的话,监听需要暂时中断重新输入(yarn watch)。

接下来说说我修改的三个地方。

1.修改package.json(包含图标一起说了及其点击登录的同时展示对应的左侧栏sidebar)

{ "name": "vscode-plugin-demo", "displayName": "vscode-plugin-demo", "description": "VSCode插件demo", "keywords": [ "vscode", "plugin", "demo" ], "version": "1.0.3", "publisher": "sxei", "engines": { "vscode": "^1.27.0" }, "categories": [ "Other" ], "icon": "images/icon.png", "activationEvents": [ "*" ], "main": "./src/extension", "contributes": { "configuration": { "type": "object", "title": "Code插件demo", "properties": { "vscodePluginDemo.yourName": { "type": "string", "default": "guest", "description": "你的名字" }, "vscodePluginDemo.showTip": { "type": "boolean", "default": true, "description": "启动时显示自定义欢迎页" } } }, "commands": [ { "command": "extension.sayHello", "title": "Hello,小茗同学" }, { "command": "extension.demo.getCurrentFilePath", "title": "获取当前文件(夹)路径" }, { "command": "extension.demo.testMenuShow", "title": "这个菜单仅在JS文件中出现", "icon": { "light": "./images/tool-light.svg", "dark": "./images/tool-light.svg" } }, { "command": "extension.demo.openWebview", "title": "打开WebView" }, { "command": "extension.demo.showWelcome", "title": "显示自定义欢迎页" } ], "keybindings": [ { "command": "extension.sayHello", "key": "ctrl+f10", "mac": "cmd+f10", "when": "editorTextFocus" }, { "command": "extension.demo.openWebview", "key": "ctrl+f9", "mac": "cmd+f9", "when": "editorTextFocus" } ], "menus": { "editor/context": [ { "when": "editorFocus", "command": "extension.sayHello", "group": "navigation@6" }, { "when": "editorFocus", "command": "extension.demo.getCurrentFilePath", "group": "navigation@5" }, { "when": "editorFocus && resourceLangId == javascript", "command": "extension.demo.testMenuShow", "group": "z_commands" }, { "command": "extension.demo.openWebview", "group": "navigation" } ], "editor/title": [ { "when": "editorFocus && resourceLangId == javascript", "command": "extension.demo.testMenuShow", "group": "navigation" } ], "editor/title/context": [ { "when": "resourceLangId == javascript", "command": "extension.demo.testMenuShow", "group": "navigation" } ], "explorer/context": [ { "command": "extension.demo.getCurrentFilePath", "group": "navigation" }, { "command": "extension.demo.openWebview", "group": "navigation" } ] }, "snippets": [ { "language": "javascript", "path": "./snippets/javascript.json" }, { "language": "html", "path": "./snippets/html.json" } ], "viewsContainers": { "activitybar": [ { "id": "beautifulGirl", "title": "测试", "icon": "images/beautifulGirl.svg" } ] }, "views": { "beautifulGirl": [ { "id": "测试001", "name": "test" }, { "id": "测试002", "name": "test" }, { "id": "测试003", "name": "test" } ] }, "iconThemes": [ { "id": "testIconTheme", "label": "测试图标主题", "path": "./theme/icon-theme.json" } ] }, "scripts": { "postinstall": "node ./node_modules/vscode/bin/install", "test": "node ./node_modules/vscode/bin/test" }, "devDependencies": { "typescript": "^2.6.1", "vscode": "^1.1.6", "eslint": "^4.11.0", "@types/node": "^7.0.43", "@types/mocha": "^2.2.42" }, "license": "SEE LICENSE IN LICENSE.txt", "bugs": { "url": "https://github.com/sxei/vscode-plugin-demo/issues" }, "repository": { "type": "git", "url": "https://github.com/sxei/vscode-plugin-demo" }, "homepage": "https://github.com/sxei/vscode-plugin-demo/blob/master/README.md", "__metadata": { "id": "ac2b7b16-d87f-4e51-87a8-37011e8aa713", "publisherId": "cdd0fc1d-3acf-4250-a09b-95545e29bdbc", "publisherDisplayName": "小茗同学" }}

在package.json我也就修改了这么几个地方,一个是views(这个view通常主要用于展示左侧的sidebar视图),一个是viewsContainers(我主要修改beautifulGirl.svg)。

修改后的效果分别如下所示:

2.通信(修改custom-welcome.html)

通信我目前采用最原始的javascript的ajax请求,其实jQuery及其vue.js的异步通信也是可以的。

这个custom-welcome.html你可以理解成它就是一个webview。

custom-welcome.html文件内容如下:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>自定义欢迎页</title> <link rel="stylesheet" href="../../lib/bootstrap-3.3.1/css/bootstrap.min.css" rel="external nofollow" > <link rel="stylesheet" href="../../lib/layui/css/layui.css" rel="external nofollow" > <style> html, body, #app { height: 100%; } ::-webkit-scrollbar { width: 10px; height: 10px } ::-webkit-scrollbar-track { border-radius: 10px; background-color: #d8dce5 } ::-webkit-scrollbar-thumb { border-radius: 5px; background-color: #adadad } ::-webkit-scrollbar-thumb:hover { background-color: #929292 } ::-webkit-scrollbar-thumb:active { background-color: #666363 } ::-webkit-scrollbar-corner { background-color: #535353 } ::-webkit-scrollbar-resizer { background-color: #ff6e00 } .page-title { margin-bottom: 20px; } .control-label { font-weight: normal; } .btn-primary { background-color: #1890ff; border-color: #1890ff; outline: none; } .btn-primary:focus, .btn-primary:hover { background-color: #40a9ff; border-color: #40a9ff; outline: none; } .btn-primary.active, .btn-primary:active { background-color: #096dd9; border-color: #096dd9; color: #fff; outline: none; } </style></head><body> <div id="app" class="container-fluid"> <h3 class="page-title">自定义欢迎页</h3> <p class="alert alert-success" style="width: 300px;">{{userName}},{{time}}好! <span id="info"></span> </p> <form class="form-horizontal"> <div class="form-group"> <div class="col-sm-6"> <div id="form"> <form> <p>用户名:<input type="text" id="userName" style="color:black;"/></p> <p>密&nbsp;&nbsp;码&nbsp;&nbsp;:<input type="password" id="password" style="color:black;"/></p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" style="color:black;" value="提交" onclick="test()"/> <input type="button" value="打开" onclick="openLogin()"/> </form> </div> <div class="checkbox"> <label> <input type="checkbox" v-model="show"> 启动时显示自定义欢迎页 &nbsp;&nbsp; <input type="button" onclick="register()" value="退出"/> </label> </div> </div> </div> </form> </div> <script src="../../lib/jquery/jquery.min.js"></script> <script src="../../lib/bootstrap-3.3.1/js/bootstrap.min.js"></script> <script src="../../lib/vue-2.5.17/vue.js"></script> <script src="../../src/view/custom-welcome.js"></script> <script src="../../lib/layui/layui.js"></script> <script src="../../lib/layer/layer-v3.1.1/layer/mobile/layer.js"></script> <script> function openLogin(){ layui.use('layer', function(){ var layer = layui.layer; layer.open({ type: 2, title: 'Login', fix: false, maxmin: true, shadeClose: true, shade: 0.8, area: ['500px', '500px'], content: 'login.html', end: function () { location.reload(); } }); }); } function test(){ var userName = document.getElementById("userName").value; if(userName != null && userName != undefined){ var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) { $("#info").html("登录成功"); $("#form").hide(); console.log('test:'+xhr.status); console.log(xhr.responseText); } else { console.log("请求成功:" + xhr.status); } } }; xhr.open("POST", "http://www.test.com/test-web/sysUser/getUserCodeByInfo?userCode=2", true); xhr.send(null); }else{ layui.use('layer', function(){ var layer = layui.layer; layer.msg('userName为必填项'); }); } } function register(){ $("#info").html(""); $("#form").show(); } </script></body></html>

这个html在浏览器上看到的效果如下所示:

目前这仅仅是一个很初级的(蹩脚通信),后续我将会继续补充对VsCode的源码解析及其插件开发相关的详细说明,由于目前掌握的比较分散不够系统,暂时延后讲解。

1、《我还有点小糊涂》:《熊出没》主题曲。2、《早安大森林》:《熊出没》片尾曲,为纯音乐。3、《环球大冒险》:2012年上映的《熊出没之环球大冒险》(别名:熊出没 第二季),片头曲。4、《我的甜蜜》:为《熊出没之春日对对碰》,《熊出没之冬日乐翻天》,《熊出没之夏日连连看》和《熊出没之秋日团团转》当中的片尾曲,由张秉君演唱。5、《归家心切》:是动画《熊出没之过年》里的插曲,由万泰作词,黎俊君作曲,白挺演唱。在电影中将皮卡改装成伐木机时所唱。6、《绝望的控诉》:是熊出没之过年的插曲之一,表述了光头强为了得到了李老板欠光头强的工钱买车票,向欠钱的李老板讨债,但李老板提出了可恨的要求来难为光头强的事情。7、《终会与你同行》:是熊出没之过年的插曲之一,虽然光头强与熊大熊二之间虽敌,但彼此不会忘记这次的经历,他们永远是朋友,终会一起同行。8、《伴你成长》:是动画电影《熊出没之夺宝熊兵》的片尾曲,由万秦、戴悫作词,李志平作曲,白挺演唱。是继《终会与你同行》后的一首新流行主题歌曲。9、《彩虹ABC》:是3D大电影《熊出没之雪岭熊风》主题推广曲。10、《你从未离去》:是动画大电影《熊出没之雪岭熊风》的片尾曲,歌曲偏伤感,由万秦、崔铁志作词,李智平作曲,李智平、黎俊君编曲,白挺演唱。11、《我乘着风飞过来》:电影《熊出没之熊心归来》插曲,由宁桓宇、洪辰演唱。后来曲被略微修改,重新填词,成为深圳华强数字动漫有限公司2017年制作的《熊出没之探险日记》片头曲。12、《T恤衫之歌(年货)》:是熊出没之过年的插曲之一。13、《伐木歌》:是3D大电影《熊出没之雪岭熊风》插曲。14、《看看世界有多大》:是电影《熊出没之熊心归来》插曲。15、《大明星》是《熊出没之熊心归来》的插曲的插曲。扩展资料:《熊出没》是深圳华强数字动漫有限公司出品的系列动画片中的第一部,丁亮、邢旭辉导演,武斌、侯喆编剧。该片主要讲述了森林保护者熊兄弟与破坏森林、采伐原木、占领土地开发创业实验田的光头强之间上演的一幕幕搞笑对决的故事。作品于2012年1月22日在中央电视台少儿频道首播。2013年12月,3D动画电影《熊出没之夺宝熊兵》发布元旦特别版海报,该片已于2014年1月17日春节档上映。参考资料:《熊出没》—百度百科内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • vscode插件开发全攻略之package.json详解
  • vscode插件开发全攻略之打包、发布、升级的详细教程
  • vscode extension插件开发详解
  • vscode插件开发全攻略之命令、菜单、快捷键
  • .net生成缩略图及水印图片时出现gdi+中发生一般性错误解决方法
  • asp.net(c#)复数类(复数加减乘除四则运算)
  • asp.net实现treeview的xml数据源绑定实例代码
  • identityserver4 quckstart 授权与自定义claims的问题
  • asp.net中防止用户多次登录的方法
  • asp.net textbox javascript实现enter与ctrl+enter互换 文本框发
  • iis7伪静态web.config配置的方法和规则
  • asp.net通过第三方网站bitly实现短链接地址程序
  • 对listbox的添加移除操作实例分享
  • asp.net点击 查看更多 实现无刷新加载的实现代码
  • 求全部熊出没的歌曲歌名。不论是动漫,还是电影。
  • 有一部动画片我忘记叫什么名字了,只记得是关于音乐的,中国的动画,好像有个真爱乐队,乐队共有三个成...
  • 谁知道【小鲤鱼历险记】的插曲叫什么名字
  • excel已经填好的表格中插曲一行怎么做?
  • 音乐教师怎样开发和利用音乐教学活动的资源
  • 如何用手机版的WPS给PPT添加背景音乐并一直播放
  • 求电视剧《蜗居》里的所有插曲,片头曲,片尾曲。
  • 为什么电脑里面的歌曲一放到U盘里面就不能播放了?
  • 在用dreamweaver制作网页中如何插入背景音乐?
  • 十大让人听完热血沸腾的歌曲有哪些?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全基础应用实用技巧自学过程首页asp.net实用技巧vscode插件开发全攻略之package.json详解vscode插件开发全攻略之打包、发布、升级的详细教程vscode extension插件开发详解vscode插件开发全攻略之命令、菜单、快捷键.net生成缩略图及水印图片时出现gdi+中发生一般性错误解决方法asp.net(c#)复数类(复数加减乘除四则运算)asp.net实现treeview的xml数据源绑定实例代码identityserver4 quckstart 授权与自定义claims的问题asp.net中防止用户多次登录的方法asp.net textbox javascript实现enter与ctrl+enter互换 文本框发iis7伪静态web.config配置的方法和规则asp.net通过第三方网站bitly实现短链接地址程序对listbox的添加移除操作实例分享asp.net点击 查看更多 实现无刷新加载的实现代码java正则表达式 pattern和matche未将对象引用设置到对象的实例 (asp.net(c#)网页跳转七种方法小结未能加载文件或程序集“xxx”或它asp.net“服务器应用程序不可用”asp.net中的几种弹出框提示基本实asp.net gridview 72般绝技asp.net生成excel并导出下载五种asp.net对路径"xxxxx"asp.net汉字转拼音和获取汉字首字ado.net之连接池技术的使用详解win10 iis 安装.net 4.5的方法asp.net动态生成html表单的方法asp.net core 实现一个简单的仓储的方法asp.net中request.form中文乱码的解决方法asp datatable添加列和行的三种方法vs2010制作简单的asp.net网站asp.net core中使用xunit进行单元测试asp.net mvc中使用jquery插件ajaxfileupl.net使用js制作百度搜索下拉提示效果(不是
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved