今天是2024年1月3日,距离2023年已经过了1个多月了,虽然很多次考虑要不就不写年终总结了吧,但是又有人想看到我的年终总结,拖了那么久还是写了吧(暴露出我的小学语文水平):)
我就挑一些重点和人来说吧,2023年从一个天天搬砖的码农🧑💻,完全没有社交的shy boy,在偶然的机会下,被 沈青川(川哥),邀请参加了一次线下的网友见面会,见到了我仰慕多年的开源达人 Anthony Fu,当天我也加入了UnoCss Team,当我认为这已经是我今年最高光的时刻的时候,没想到,再不久的几天,我收到了偶像的赞助和follow,我只是托尼万千迷弟之一,如今结识到了偶像是真的追星成功了~,说道我的偶像,我的开源经历也正式从他第一次在B站直播才开始的,从他一次次的直播coding,我也一次次跟着学习和模仿,渐渐的有了自己的心得和感悟,我开始去了解更多他做的开源库,到现在我能为他的开源库去提一下pr,去关一些issue,到成为他的团队成员和赞助者,这一路下来都是偶像的力量吧
附上我2023年的开源贡献图~
随之我在antfu的直播中了解了一些 vscode 的插件的开发,我开始尝试用他的 vscode 模板进行学习,一开始我是连怎么调试 vscode 的不明白,自己慢慢摸索,我开始百度和查阅 vscode api 去结合起来写一些奇奇怪怪的东西,后来发现 vscode 中,我可以做好多东西
比如:
- 写一些小助手来提醒你
喝水、午休、吃饭、下班,我写了vscode-care - 快速将数据
json格式化,快速将字符串驼峰化、连字符化,我写了vscode-transfer - 将图片一键转成
base64,我写了vscode tobase64 - 将常用的配置根据选择创建对应的初始化文件,比如
tailwind config, unocss.config, vite.config,快捷键创建这些预设,我写了vscode generate preset - 提供组件库的代码提示,和内部打开文档,我写了
common-intellisense - 快速创建变量,解决每次在vue滚动到script中定义变量,我写了
fast-create-varibale - 解决组件和导入变量跳转的困扰,提供ts类型完整深层展示到侧边栏临时文件,我写了
fast-jump - vscode中选择一个块总是需要双击,我希望轻轻一点就更加只能选中这一区域块,我写了
auto-click - 刚开始接触
UnoCss对于写法不清楚,写了转换style to unocss的库,后来写了Unot的vscode插件 - 嫌弃tailwind的自定义属性每次都要用
-、[、],影响效率,我写了tailwind-magic - 当在页面中写了class或者id的时候名字可能忘记了,我写了插件在css中敲击.或者#弹出模板中的class和id,我写了
vscode-css-selector - 当我引入了一个外部链接,我不知道里面导出了什么,我还要点进去,我写了
export-what - 烦恼每次手动敲console.log,而且为了更醒目输出的结构和在编辑器的位置,我写了
log - 为了解决我想看某一个第三方库的文档的时候,我需要从npm中获取找到repo的仓库,我希望通过快捷键,直接从外部打开这个仓库的文档readme地址,我写了
vscode-open-pkg - 为了有些情况下,我不想自己写ts的类型,我想根据数据结构生成type,我写了
to-ts-type - 为了解决我写仓库的readme时,觉得纯文字太单调,希望加一些emoji,但是我又不想从外面搜,我写了
vscode-emoji - 为了解决vscode中删除大量文件时,默认的cmd+delete删除有些慢,我写了
vscode-fast-empty - 为了解决我不想手动敲指令,执行scripts,如果想执行子仓命令还需要进到目录下的问题,我写了
vscode-script - 为了解决切换vscode主题色还需要通过选择输入一些内容才能打开到主题选择,我写了
fast-switch-theme - 为了解决某些情况下从文档粘贴内容去新建文件时,可能包含空格或者零宽字符,产生一些错误,我写了
file name detection,来检测新增和修改文件名 - 为了更加醒目和关注某一些
Unocss的属性,我写了vscode-unocss-highlight - 为了更加醒目和关注某一些
Tailwind的属性,我写了vscode-tailwind-highlight - 为了解决每次找icones都要从浏览器打开一个新页面,切换出vscode,我写了
vscode-icones和vscode-yesicon - 为了解决我老板当初说,当json层级很深的情况下,我如果要获取某一层级的属性,我希望知道应该怎么获取,我写了
vscode-json-structure - 为了玩,我希望如果页面有错误的时候,会在底部有一个表情包,当错误越多表情越来越糟糕,我写了
vscode-error - 为了玩,我写了一个vscode写日报和周报的插件,并且生成readme结果还能根据ai来润色一下,我写了
daily planner - 为了不希望在外部打开regexp101,我写了
vscode-regex-match - 为了让我有更好的开发体验,我不希望每次要传组件的属性时候,都要点进组件内部看props,我写了
v-component-prompter - 为了偷懒自动生成函数的代码注释,我写了
vscode-generate-comment,用的免费的Claude效果不是太好:( - 为了有一个比较好看的产品图标,我修改了 Material Icon Theme,写了
Material Icon Theme Simon - 为了解决vscode中一些英文看不懂,写了划词翻译
vscode-translate - 还有一些零零碎碎的小东西,就不介绍了
我想说的是,我开始用我学到的技术和一些工具结合,去解决我工作中的痛点,去提高我的工作效率,可能也正是因为我比较懒,才有了好的偷懒的点子💡,才促成了我写出这些插件
没有什么思路,我可能是突然想到了什么,就写了什么,在2023年年底,感谢 辛宝 的邀请,我很荣幸参与了Web Worker的一次录制,www.xiaoyuzhoufm.com/episode/658… ,也去分享了一下我的这段开源的经历,另外,可能大家看我经常在推上时不时就发一个vscode插件,觉得我很卷什么的,其实并不是,因为写一个vscode的插件是真的很容易,我有好的idea,5分钟写一个小工具是绰绰有余的了,在这里我不得不说,再我写第三第四个vscode插件的时候,我就想说vscode api是真的难记,我几乎上一次用完,下一次就只能记住那一个了...,于是我又想到了,把vscode的api,封装成我能一眼看去就知道他是干嘛的,并且封装的更加简单的方式去使用,那我写起来不得爽死,我开始捣鼓起来了,于是再后来我写了@vscode-use,再后来我借助@vscode-use去开发就是分分钟的事情,遇到新的知识,掌握了再加到vscode-use,就变成了我的东西,我觉得这对于很多人学习应该会有帮助,当你觉得某一个东西很难记,你不妨将你的理解和掌握的东西试着组合一下,按照你的理解封装成你觉得他应该是干什么的函数,这样你在使用的时候,你一定是得心应手的,如果第一次封装后,发现他对于后面的封装函数,在一些处理和传参上不是特别match,你不妨再改造一下兼容多种灵活的方式,反正就是不断的优化的过程
最后讲了那么多我的故事,我想说一下推友,今年也是我第一次接触推友,原本性格内向,人群中社恐的我踏出来第一步,很高兴认识那么多能陪你闲聊度过工作时的不愉快,也能在你遇到困难时帮你解答问题的全世界最好程序员伙伴~,我更加期待能和更多的推友们有线下见面闲聊的机会,尤其是 zolplay 的小伙伴们,今年收到了不少 Cali 送的的周边,很感谢他们❤️,不论是畅谈技术,还是一起嬉笑打闹,摆烂打游戏,记得喊上我哦~,大家好,我是认真工作的 Simon ,可以在X上找我,也可以在Github上找到我。