全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2021-11-30_VSCode撸猫插件vscode-cats它来了,一起来云撸猫吧

您的位置:首页 >> 新闻 >> 行业资讯

VSCode撸猫插件vscode-cats它来了,一起来云撸猫吧 前言 本月活动主题是代码吸猫,大约两周以前,我写了一篇如何给VSCode和个人网站添加 live2d 喵咪的博客,没想到得到了众多大佬的喜爱,但大佬们想要简单快乐的撸猫,给VSCode和网站领养喵咪 一起快乐撸猫实现撸猫有几分繁琐,用户体验性不佳。 因此为了让众多大佬更舒服的撸猫,我将撸猫功能封装成vscode-cats插件,同时已经将 vscode-cats 0.0.1 成功发布在 VSCode 应用市场上。如果想下载插件,VSCode 扩展中直接搜索 vscode-cats 安装。 ???????? 撒花~庆祝一下~???????? 传送门:应用市场[1]vscode-cats:github[2] 插件实现思路本插件的开发模式是通过修改 VSCode 自身文件来实现的, VSCode 官方并不推荐 (连文档都没有),但即使这样,还是有大佬成功探索出这种模式,在此致敬一下此类项目的先导者: vscode-background 开发者[3]。 撸猫插件的思路与 vscode-background 类似,background 插件通过修改 workbench 目录下 css 文件实现,撸猫插件通过修改 workbench 目录下 workbench.html 实现。 插件功能目前撸猫插件还处于新生期,喵咪只能配置下面几个属性: 配置描述vscode-cats.enabledtrue: 启用插件、false: 禁用插件vscode-cats.model更换喵咪vscode-cats.modelWidth自定义喵咪宽度vscode-cats.modelHeight自定义喵咪高度vscode-cats.moveX自定义喵咪水平位置vscode-cats.moveY自定义喵咪垂直位置vscode-cats.opacity设置喵咪透明度vscode-cats.position设置喵咪左右定位后续开发后续开发,我现在还没完全设想好,目前脑袋里有的想法暂时想添加喵咪对话功能和背景音乐功能 对话功能设想一下,当你写代码写的正酣时,可爱的喵咪还在卖力的夸奖你,那感觉不可谓不舒服啊,飘飘然如羽化登仙。 「急求: 夸奖、吹捧、乐逗等喵言」 背景音乐光看文字还是有几分单调,如果能加上点简单的喵音,糯糯的、软软的,疲乏时听起来还是很舒服的。 看板娘其实 live2d 喵咪只占一小部分,如果有大佬想要漂亮的小姐姐和帅气的小哥哥,也可以添加 (??????)。 更多大佬们,如果有更多好的想法,可以在评论区留言,咱们可以共同交流,寻求实现方案。 注意如果想卸载 vscode-cats 插件,尽量关掉配置项 vscode-cats.enabled ,再进行卸载。插件是通过修改 VSCode 自身文件实现的,因此在初次安装,或者 VSCode 升级的时候,会出现损坏提示,请选择 【不再提示】。「如果实在介意此提示请不要安装此扩展!!!」因为是第一次开发插件,插件开发经验较少,阿包不能保证是否存在 bug 。如果有大佬下载后不能正常使用,给阿包留言一下。解决【不再提示】警告因为上述实现方法直接修改 Vscode 的 JavaScript 文件,重启 Vscode 后有可能会有 code 文件错误的警告,我们来解决这种情况: 方法一开命令行,安装 Fix VSCode Checksums,键入命令:code--install-extensionlehni.vscode-fix-checksums 复制代码 打开 Vscode ,快捷键 Ctrl + Shift + P 输入命令:FixChecksums:Apply 复制代码 方法二打开 VSCode 扩展搜索 Fix VSCode Checksums 插件 插件实现核心最后交待一下插件的大致实现核心吧。 getHTML.ts撸猫插件的核心,当安装插件后或者开启撸猫插件时替换原 VSCode workbench.html 里的代码。 exportdefaultfunction( config:any, extName:string, version:string ):string{ letmodel:string=config.model; letmodelWidth:number=config.modelWidth; letmodelHeight:number=config.modelHeight; letmoveX:number=config.moveX; letmoveY:number=config.moveY; letopacity:number=config.opacity; letposition:string=config.position; return`!--/*ext-${extName}-start*/-- !--/*ext.${extName}.ver.${version}*/-- !--Copyright(C)MicrosoftCorporation.Allrightsreserved.-- !DOCTYPEhtml html head metacharset="utf-8"/ meta http-equiv="Content-Security-Policy" content="default-src'none';img-src'self'https:data:blob:vscode-remote-resource:;media-src'none';frame-src'self'vscode-webview:https://*.vscode-webview-test.com;object-src'self';script-src*'unsafe-inline''unsafe-eval';style-src'self''unsafe-inline';connect-src'self'https:;font-src'self'https:vscode-remote-resource:;" / /head styletype="text/css" #live2dcanvas{ border:0!important; } /style bodyaria-label="" divid="live2d-widget" canvas id="live2dcanvas" width="${modelWidth}" height="${modelHeight}" style=" position:fixed; width:${modelWidth}px; height:${modelHeight}px; opacity:${opacity}; transition:opacity300msease-in-out; ${position}:${moveX+20}px; bottom:${moveY+20}px; z-index:99999; pointer-events:none; border: " /canvas /div /body !--InitBootstrapHelpers-- scriptsrc="../../../../bootstrap.js"/script scriptsrc="../../../../vs/loader.js"/script scriptsrc="../../../../bootstrap-window.js"/script !--Startupviaworkbench.js-- scriptsrc="workbench.js"/script script type="text/javascript" src="https://cdn.jsdelivr.net/npm/live2d-widget@3.0.4/lib/L2Dwidget.min.js?_=1557308476616" /script scripttype="text/javascript" L2Dwidget.init({ model:{ jsonPath: "https://unpkg.com/live2d-widget-model-${model}/assets/${model}.model.json", }, display:{ superSample:2, width:${modelHeight}, height:${modelHeight}, position:"${position}", hOffset:${moveX+20}, vOffset:${moveY+20}, }, react:{ opacityDefault:${opacity} } /script /html } 复制代码 文件操作方法另外最重要的就是文件的读取,修改,保存三大方法。 /** *设置文件内容 * *@param{string}filePath文件路径 *@param{string}content */ exportconstsaveContent=function(filePath,content:string):void{ fs.writeFileSync(filePath,content,"utf-8"); }; /** *获取文件内容 *@param{string}filePath文件路径 */ exportconstgetContent=function(filePath):string{ returnfs.readFileSync(filePath,"utf-8"); }; /** *获取workbench为原始代码 * *@private *@returns{string} */ exportconstrenewHTML=function():string{ letnowContent=originHtml(); returnnowContent; }; 复制代码 总结有了文件的读取、修改、保存和 getHTML 就可以轻松的实现 workbench.html 文件内容的更改。其余部分的实现等我再慢慢跟大家道来。 参考资料 [1] https://marketplace.visualstudio.com/items?itemName=zcxiaobao.vscode-cats [2] https://github.com/zcxiaobao/vscode-cats [3] https://github.com/shalldie/vscode-background 阅读原文

上一篇:2019-08-25_「转」香港再无“渣渣辉” 下一篇:2022-09-27_零基础玩转 WebGL - 着色器

TAG标签:

17
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价