稀土掘金技术社区 01月12日
两周时间我开发了两个vscode插件
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文作者分享了其两周内开发两款VSCode插件的经验,从零开始学习并实践了插件开发的全过程。文章详细介绍了Alias Manager和Copy Filename Pro两款插件的开发背景、功能实现、设计思路以及所用工具。Alias Manager旨在解决git alias管理不便的问题,通过全局状态存储和文件操作实现别名和分组管理;Copy Filename Pro则专注于复制文件名和目录名,利用node的path模块和vscode的clipboard API实现快速复制。文章还推荐了rattail打包工具和@varlet/release发版工具,为其他开发者提供了参考。

💡Alias Manager插件的灵感来源于git alias,旨在提供系统级的别名管理,通过备份alias到插件全局状态,实现别名和分组的便捷管理,数据改动直接修改全局状态,不影响源文件。

✂️Copy Filename Pro插件的开发是为了解决日常开发中复制文件名的需求,支持复制带扩展名、不带扩展名以及目录名,利用vscode提供的文件路径获取和剪切板API,核心代码简洁高效。

🌍两款插件均支持国际化,其中Alias Manager的别名分组功能,通过context.globalState存储数据,实现了分组管理,即使清空全局状态也不影响文件中的原始数据。

🛠️文章推荐了rattail打包工具和@varlet/release发版工具,这些工具在插件开发过程中发挥了重要作用,提高了开发效率和发布流程的规范性。

原创 笨笨狗吞噬者 2025-01-11 09:02 重庆

点击关注公众号,“技术干货” 及时达!

点击关注公众号,“技术干货” 及时达!

前言

最近两周花时间做了两个vscode插件,在这之前我是没什么vscode 插件开发经验的,倒是认识vscode插件大佬,Simon_He,看他做了不少实用高质量的插件。整个过程下来学到了很多东西,在此分享我的开发过程。

收获

其实,两周之前我都没有搞过vscode插件开发,基本上就是零经验开始的。我去网上翻阅官方文档,安装脚手架,生成模板项目,理清需求,开发,调试,发布。整个过程基本上没啥大的阻碍,除了国际化,分组需求带来的数据存储这两个困扰了我一会,其他的基本上靠官方文档和chatgpt都能解决,实在解决不了就去google。不得不说,chatgpt真的可以当一个搜索引擎来用,某些方面可以大大提高工作效率。

Alias Manager


背景

这个最开始起源于上上周阮一峰老师的周刊,里面有篇文章介绍了 git alias。给我打开了新世界的大门,我感觉这个命令很好啊,由此萌生了做一个vscode插件的想法。晚上下班之后,我在varlet群里面分享了我的想法,耗子哥说我不如做一个系统级的别名管理插件。到家后我就去了解了下 linux alias 命令,有了基本的概念和简单的实践之后,我理了思路,简单设计了下ui,因为周日要加班,所以花了大概一天多做了第一版出来。

别名

可能有些掘友不是很清楚 alias,可以看下这个文章


效果

因为实现的功能很多,考虑到篇幅,这里就只放一部分效果图


点击按钮即可运行


支持分组管理别名


思路

因为这个插件包含的东西比较多,别名的crud,别名分组,分组的curd,国际化,排序,备注等等,不太好详细说每一个点的思路,简单分享下分组的思路,对其他部分感兴趣的掘友可以去点击文末的github链接查看源码。

为了实时生效,通常会把 alias 命令存储在 .zshrc 文件中,每次有新的改动就执行 source ~/.bashrc。所以别名的crud其实就在操作文件。

但是分组是一个新的东西,它和别名没一点关系,这个东西就是为了便捷管理别名,肯定不能加到文件里面。我的思路是备份一份 alias 到 插件的全局状态下,也就是 context.globalState,这个是跟着插件走的,只要不卸载插件,数据就一直在


这就很明朗了,但凡涉及别名数据改动的地方就去修改 globalState,分组的crud和数据的显示也根据这里的数据处理,就算把全局状态清空了也不会影响存储在文件中的原数据。

Copy Filename Pro


背景

日常开发过程中,难免遇到那种要复制文件名字的场景,比如 app-upload-image.vue,复制 app-upload-image 到剪切板。

我就去vscode extensions里找,很遗憾没找到,有个使用量很高的插件,有人提pr实现这个功能,但是作者不维护了。


然后去varlet社区群里面问,也没有找到合适的,就思索着自己做一个。

效果


已打开的文件也支持复制


插件也做了国际化,如果你安装了 Chinese (Simplified) 插件,插件也能切换到中文


思路

我要支持三个命令

vscode 本身支持获取文件路径,所以我们要做的就很简单了,获取这个路径,然后处理得到路径中的文件名或者目录名。

代码

node的 path 模块能够很好地实现文件名和目录名获取,vscode官方提供了 clipboard 用于处理剪切板的内容。


所以,核心逻辑就很简单,总共不到三十行代码


工具推荐

这里分享下我写库常用的一些工具

工具库 rattail

这个库是 varlet作者 haoziqaq 开源的


打包工具 tsup


发版工具 @varlet/release


结语

如果感觉插件帮助到了你,欢迎 star

Alias Manager

Copy Filename Pro

如有疑问或建议,欢迎评论区留言。

点击关注公众号,“技术干货” 及时达!

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

VSCode插件 Alias Manager Copy Filename Pro 插件开发 工具推荐
相关文章