我编写 33 个 VSCode 扩展的原因以及管理扩展的经验

VS插件VSColorOutput 源码 VS插件VSColorOutput,适用与 VS2010、2013、2015版本,输出窗口和查找结果窗口高亮关键字 立即下载

简评:使用工具的同时自己创造一些工具或扩展,是一件很棒的事情。

以下“我”指原作者 Fabio

大家好,我叫 Fabio,是一位自学成才的开发人员,热衷于开源和授权。我也喜欢自己制作工具,自然而然地。我为常用的 VSCode 程序编写了很多扩展。

在开发和管理 VSCode 扩展以及谈论我创造的所有扩展的同时,我想与大家再分享一些我的工作流程。

在这里我将介绍我创造的许多工具和扩展,因此无论你是要开始开发扩展,还是想要找到很酷的新扩展,或者只是需要管理很多存储库,本文保证会有你感兴趣的内容。

编写一个扩展

我喜欢生产力和自动化,所以我开始新项目的方式非常精简。

工具

我编写了一个名为 template 的开源项目,它可以基于模板快速创建新项目,非常简单:

  1. 它需要一个文件夹作为输入(“模板”)。
  2. 它用 handlebars 处理所有文件,要求你为模板中找到的占位符提供值(即{{name}})。
  3. 它输出一个替换了所有占位符的新文件夹。

我了解过 yeoman,但它对于我的使用情况来说似乎太复杂了。我用过 khaos,但是它不再维护,并且它不会自动更新模板,总不能在每次我想用的时候都手动更新,所以我没有使用它。

模板

接下来我使用我的 template-vscode-extension 模板启动一个新的 VSCode 扩展。

现在我有一个工作的 Hello-World-ish 扩展。该模板包含许多我经常使用的辅助函数:它支持从.vscode文件夹加载自定义配置文件 ,可以自动注册命令,还可以根据活动文件推断当前根等。

如果我能回到过去,可能会把所有这些辅助函数放到一个独立的vscode-utils包中,而不是在所有扩展中复制它们,不幸的是一开始我不知道将进行 10 次扩展,现在去更新它们将需要相当多的时间。

如果你在考虑编写 VSCode 扩展,或许会想以我的扩展为基础,我建议你制作自己的模板。

文档

我在开发扩展时总是打开 VSCode 的文档。虽然文档很长,要找到你需要的 API 并不是那么简单明了,但是只要快速阅读一下很快你就会熟悉起来。总的来说,我对能找到的 API 相当满意。

扩展

不管你信不信,我所做的一些扩展实际上对我开发其他扩展有一定帮助,稍后会对此进行进一步的讨论。

我的扩展

正如我所说的,我喜欢生产力,所以我的大部分扩展都与生产力相关的。我尽量不要过多地重复发明轮子,确保功能在扩展之间良好分离,彼此之间良好配合。

无论好坏,我发现扩展很有趣,并且不乏可以自动化的东西,这就是为什么在第 1 个扩展之后我又做了第 2 个,第 3 个…和第 33 个!

点击以下每个扩展程序的超链可以进入原页面,获取到更多详细信息和屏幕截图。

用来编写扩展程序的扩展

2、Debug Launcher:无需定义任何任务或启动配置即可从终端开始调试。我不想用重复的启动配置和任务来混乱我的存储库。VSCode 真的应该直接支持从终端启动调试器,对此我提了一个 issue。


从终端启动调试器

2、StatusBar Debugger:将调试器添加到状态栏,比默认浮动调试器干扰更少。默认工具栏的使用体验很糟糕(相关 issue),如果 VSCode 能公开调试状态,那这个扩展可能会好得多。

3、Install .VSIX:直接从资源管理器安装扩展,右键单击即可。因为现在安装 .vsix 的体验也很糟糕(相关 issue)。

4、Bump:压缩项目的版本并更新更改日志。有意见但可配置。每个可敬的扩展都需要一个更新日志,但这并不意味着你必须手动编写一个。这个扩展是我的最爱之一,我可能会制作一个CLI版本,希望将来它也可以为我制作 GitHub 版本。

5、Optimize Images:使用你最喜欢的应用程序优化项目中的一个或所有图像。只需一个命令即可完成。

管理项目

6、Projects+:管理项目的扩展。功能丰富,可自定义,自动查找你的项目。Project Manager 是这种类型中最常用的扩展,但我有 100 多个存储库,包括一个无限可嵌套的组,我需要正确的工具来管理它们。


Projects+ 可定制的快速选择

Projects+ 可定制的快速选择


管理待办事项

7、Todo +:轻松管理待办事项列表。功能强大,易于使用和可定制。如果你不需要对TODO文件进行语法高亮,可能只想要内置的基本高亮显示,那么可以查看 Todo Tree。


Todo + 语法高亮和项目级统计

8、Highlight:基于正则表达式的高级文本高亮显示。适用于待机,注释等。大多数人只是使用 TODO Highlight,但我的方式更通用,更强大,也可能更快。

9、Markdown Todo:轻松管理 markdown 文件中的待办事项列表。没什么特别的,但是它可以让一些 Todo + 的快捷方式基本上可以在 Markdown 文件中使用。

10、Projects + Todo +:鸟瞰你的项目,将所有的 ToDo 文件聚合为一个。如果你使用 Projects + 来管理项目,且使用 Todo + 来管理待办事项,那么现在可以将所有(或部分)项目中的所有待办事项汇总到一个文件中。

在…中打开…

在不同的应用程序/网站之间快速切换对我来说很重要,这就是我做了很多Open in…扩展的原因。

11、Open in Application:在默认的应用程序或你想要的应用程序中打开任意文件。广义Open in…扩展。

12、Open in Browsers:添加一些命令,用于在任何你喜欢的浏览器中打开当前文件或项目,甚至可以同时在所有浏览器中打开。

13、Open in Code:轻松地在代码和代码内部之间切换。

14、Open in Finder:添加一些命令用以在 Finder 中打开当前文件或项目。

15、Open in GitHub:在 github.com 中打开当前项目或文件。还有很多其他的扩展可以实现这个功能,但是当我试用时,发现它们非常臃肿,有很多我不需要或不起作用的东西。

16、Open in GitTower:添加一个在 GitTower 中打开当前项目的命令。

17、 Open in Marketplace:添加用于在 Marketplace 中打开当前项目的命令。

18、Open in node_modules:在 node_modules 中打开当前选择或任意字符串。当你想深入了解你正在使用的模块时很有用。

19、Open in NPM:在 npmjs.com 中打开当前选择、项目或任意字符串。有助于快速查看自述文件。

20、Open in Ship:添加用于在 Ship 中打开当前项目的命令。不幸的是,Ship 已被弃用,它不再起作用了。我现在在 Noty 中有一个专门的标签来管理即将发生的问题。

21、Open in Terminal:添加一些命令以在终端中打开当前项目。

22、Open in Transmit:添加一些命令用以在 transmit 中打开当前文件或项目。

** 其他 **

23、Browser Refresh:从代码中使用 ⌘R 刷新浏览器。无需将焦点切换到它。当你无法使用热重载,并且不希望浏览器在不需要时同步刷新页面,它会非常有用。

24、Commands:从状态栏触发任意命令。支持传递参数!


通过命令定义的自定义命令

25、Diff:Diff 2 可以轻松打开文件。因为运行code — diff path1 path2太慢了。

26、Git File History::查看或区分当前文件的历史版本。其他类似的扩展不好用。

27、GitHub Notifications:一个安全,可自定义的状态栏图标,提醒你有关 GitHub 上的通知。

28、Monokai Night Theme:完整,黑暗和简约的 Monokai 风格主题。我试用过的主题没有一个好用,所以我不得不做出自己的主题。


Monokai Night Theme

29、No [Unsupported]:从标题栏中删除 “[Unsupported]” 的扩展名。现在不推荐使用,我建议使用 Fix VSCode Checksums。相关讨论见 issue 1 和issue 2。

30、Open Multiple Files:同时打开文件夹中的所有文件,可选择用 glob 过滤。

31、Search — Open All Results:用一个命令同时打开所有搜索结果。

32、Terminals Manager:一次性设置多个终端或仅运行某些命令的扩展。这实际上是我做的第一个扩展。

33、Transmit:添加一些命令用以与 Transmit 进行交互。

介绍这些花了不少时间,讲一个有趣的小事:我想我的账户上发布的扩展最多,紧随微软之后,至少我还没有发现有人发布了比我更多的扩展(写完本文后发现 Greg 比我多做了 2 次扩展,我得加油了)

管理扩展

管理多个存储库可能是一个挑战,以下是我的工作方式。

重复提交

迟早你会想要更改所有存储库中的某些内容,这意味着需要在多个存储库中进行基本相同的提交,无聊而浪费时间。

为了实现这类任务的自动化,我制作了 autogit,它是一个跨多个存储库执行命令的工具。


通过 autogit 执行 shell 命令的示例

我一直在寻找它的用途,最近我用它对我所有扩展的存储库进行了以下更改:

  • 捆绑webpack:我发现启动时间提高了约 80%。
  • 忽略package-lock.json:这只是我提交历史中的垃圾信息,阅读本 issue参考 Sindre Sorhus 关于忽略 package-lock.json 的见解。
  • 更新tsconfig.json以输出最新的代码:我使用了相当多的异步函数,但当目标版本为<=es5时,异步函数被转换为慢速代码,并且由于 VSCode 与 Node.js 的现代版本一起发布,所以不需要这样做。
  • 删除了 TSLint:我关注到我基本上忽略了它的输出,所以我删除了对 linting 的支持。
  • 在 readme 中使用高分辨率 logo:在 readme 中使用高分辨率 logo 而不是之前使用的128x128 的 logo,遗憾的是我没有特别好的 logo,这是另一个故事了 :)

可以看到 autogit 如何在 33 个存储库中快速地执行这 5 项更改。

使用 GitHub 同步描述和关键字

这是一个不必做的事情,但是如果有一个工具能为你做这件事,那就太好了。幸运的是,autogit 和 autogit-command-github-sync 命令也能做到这一点:


通过 autogit 同步

我还制作了autogit-command-github-publish,用于自动创建 GitHub 存储库。

报告

在做了最初几次扩展后不久,我开始对了解他们获得了多少新下载感兴趣。你可以在一个页面中查看所有扩展程序,例如,您可以在此处找到我的扩展程序,但如果你不记得上次检查时扩展程序的下载次数,则无法知道新增了多少。这是我制作 rssa 的原因,这个工具可以告诉你什么时候会发生变化。你可以用它来监控几乎所有可用 URL 访问的内容。


自定义 rssa 输出

如果有图表那就更棒了,虽然我还没有发布这个工具,但是利用 rssa 的历史我们可以生成图表,下面是 Todo+ 的下载次数的图表:


Todo +下载

需要注意的是,有时候下载量会急剧增加,当发布新的更新时,就会出现这种情况,因为更新被视为下载?,任何人都可以通过推送许多次更新来拥有具有一百万次下载的扩展,这是应用市场的一个问题。

谢谢

很开心你看到了最后!谢谢你的阅读,希望你在这里找到了有用的内容。

在评论聊一聊你是如何开发 VSCode 扩展的,以及你使用了什么扩展吧!

VS2017_Monokai_Theme_v1.1.zip 黑色vscode风格的主题,明显的变量颜色等,便于识别,比官方三个主题更人性化,护眼不伤眼,让你的手指根本停不下来。 立即下载

相关推荐

vscode-debug-leetcode:适用于leetcode的vscode调试扩展,可以与vscode-leetcode一起使用

调试LeetCode 解决VS Code中的LeetCode问题并享受调试 英文文件|文件 注意力 此扩展名应与 调试问题 当前debug-leetcode仅支持Python3,Javascript和cpp语言,将来我们将支持更多支持vscode调试协议的语言。 欢迎获得另一种语言的PR。 我的下一个计划是支持c和java。 并非所有问题均受支持(大多数自由问题均受支持),并且只有受支持的问题才具有调试选项。 如果您对调试功能有任何疑问,可以包含详细信息。 Python3调试 要求 步骤1.安装适用于Visual Studio Code的。 步骤2.在您的系统上安装受支持的Python3版本(注意:不支持在macOS上进行Python的系统安装),然后将python命令添加到您的环境中。 Cpp调试 gdb 要求 步骤1.安装Visual Studio Code的。 步骤2.在

9 个实用的 VSCode 扩展插件,让你的开发工作更轻松

这些扩展将帮助您提高工作效率、改进工作流程VSCode 是几乎所有编程语言中最受欢迎的 IDE 之一。它简单、强大,有很多很酷的特性,而且是微软的产品。所以对于任何开发人员来说,它都是一个很棒的工具。通过安装其市场上可用的各种免费扩展,可以自定义 VS Code 并使其更适合您的工作流程。这些扩展将添加更多自定义功能,这肯定会帮助您进行编码,比如更快地开始编写代码!它会变得更漂亮,让人更加愉悦,因...

前端达人 1万+

vscode-yarn:VSCode扩展,用于管理纱线命令

VSCode-Yarn:VSCode扩展,用于管理纱线命令。 入门 您可以通过安装此很棒的扩展。 安装 启动快速打开 Ctrl+P ⌘P Ctrl+P 粘贴以下命令,然后按Enter : ext install gamunu.vscode-yarn 打包的VSIX扩展 从GitHub存储库文件并从命令行安装 code --install-extension vscode-yarn- * . * . * .vsix 或通过启动Quick Open并运行“从VSIX安装...”命令在VS Code中进行操作。 GitHub存储库克隆 转到您的.vscode/extensions

10个不容错过的VSCode插件

本文介绍10个强大的Visual Studio Code扩展程序,能够极大地提高Web开发体验。每个扩展程序都附有示例用法和安装链接。

xuxian的博客 4394

VS2017_Monokai_Theme_v1.1

vs2017护眼主题-仿 Sublime

vscode-solution-explorer:这是一个Visual Studio Code扩展,提供了(.sln)Visual Studio解决方案资源管理器面板。

vscode-solution-explorer 此扩展在Visual Studio Code中添加了Visual Studio解决方案文件浏览器面板。 现在,您可以按照原始的Visual Studio结构导航到解决方案。 特征 添加“解决方案资源管理器”面板,您可以在其中找到Visual Studio解决方案文件资源管理器。 可以加载任何.sln版本 支持csproj,vcxproj,fsproj和vbproj(vs2017及之前版本) 支持dotnet核心项目 您可以创建,删除,重命名或移动项目文件夹和文件。 您可以创建,删除,重命名或移动解决方案,解决方案文件夹和项目。 当项目属于CPS(dotnet核心)类型时,您可以添加或删除程序包和引用。 要求 您必须打开一个文件夹,该文件夹的根路径中至少包含一个解决方案文件(“ .sln”)。 或者,您可以通过单击鼠标右键来创建一

VS Code扩展安装后如何管理

在 VS Code 中,扩展(Extensions)是增强功能的重要工具,但随着安装的扩展越来越多,管理它们也变得尤为重要。以下是一些管理 VS Code 扩展的实用方法和技巧,帮助你更好地组织和优化你的开发环境。

2409_89146448的博客 1280

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

weixin_45390670的博客 1869

vscode快捷键+vscode扩展+电脑快捷键

目录 一、vs code 的常用快捷键列表 二、vs code 的常用扩展 三、常用的电脑快捷键 一、vs code 的常用快捷键列表 1、注释:   a)单行注释:[ctrl+k,ctrl+c] 或 ctrl+/   b)取消单行注释:[ctrl+k,ctrl+u] (按下ctrl不放,再按k + u)   c)多行注释:[alt+shift+A]   d)多行注释:/** 2、移动行:alt+up/down 3、显示/隐藏左侧目录栏ctrl + b 4、复制当前行:...

m0_46512929的博客 2236

一文搞懂 RC Correlation Scale Factor 的生成与应用

pre-route 用的是统计估算模型,post-route 用的是详细布线提取,signoff 用的是第三方 QRC 或 StarRC——三个工具,三套参数体系,结果自然天差地别。不同 RC corner(rc_worst/rc_best/rc_typical)对应不同的工艺角和温度环境,每个 corner 的 R/C 偏差比例不同,必须分别生成和应用各自的 scale factor。别被名字骗了,这个工具专门干一件事——统计拟合两组 SPEF 之间的偏差,自动推荐最优 scaling factor。

weixin_47770727的博客 560

使用基于物质点法(MPM)的Anura3D模拟沙柱坍塌

本博客使用开源软件Anura3D软件模拟了一个沙柱坍塌的过程,这个软件是基于基于物质点法(MPM)设计的

weixin_59902634的博客 4044

vscode-dark-islands的扩展按钮设计:突出与普通状态色彩区分

vscode-dark-islands是一款基于easemate IDE和Jetbrains islands主题的VSCode深色主题,其精心设计的扩展按钮色彩系统能显著提升开发效率。通过巧妙运用蓝色主调与灰色辅助色的对比,实现了按钮在突出状态与普通状态下的清晰区分,让开发者能直观识别当前交互元素。 ## 扩展按钮的色彩系统设计 在vscode-dark-islands主题中,扩展按钮的色彩设

gitblog_00661的博客 1086

ODS 与模态分析

模态分析不是通过现有的 FRF 来“推测”或“估计”其他模态参数,而是通过测量和分析 FRF 来。

轩辕霸天L 1260

VSCode Kanban 项目教程

VSCode Kanban 项目教程 1. 项目介绍 VSCode Kanban 是一个为 Visual Studio Code 设计的看板扩展,允许用户在 VSCode 中创建和管理看板。看板是一种流行的项目管理工具,通过可视化的方式帮助团队跟踪任务和进度。VSCode Kanban 扩展提供了一个简单而强大的界面,使用户能够在 VSCode 中轻松创建、编辑和管理看板。 2. 项目快速启动 安...

gitblog_01085的博客 963

AD域控设置客户端桌面壁纸

此时再右键wallpaper文件夹,共享选项下的网络路径已经有了。找到该域下的组策略编辑器(第一步有)并按照图下所示找到桌面壁纸的策略设置,点击进去。在高级共享里可以设置共享名和同时共享的用户数量限制。点击下拉箭头,找到Everyone并选择,点击添加后,点击共享。然后可以看到刚才的新建文件夹策略在域控服务器和客户端都生效了。右键wallpaper文件夹->属性,点击共享选项,点击共享。在弹出的窗口里,按照图下所示设置,点击应用并且确认。在弹出的窗口里,按图示找到文件夹,右键新建文件夹。

欲买桂花同载酒的博客 6054

【论文精度】生成式预训练模型——BART(Bidirectional and Auto-Regressive Transformers)

​ BART是一个预训练的seq2seq的去噪自编码(denoising autoencoder)模型,BART以下方式进行训练①用任意的噪声函数(noising function)去破坏文本;②学习一个模型来重建原始文本。它使用一个标准的基于transformer的神经机器翻译架构,可以看作是BERT(双向编码器)、GPT(left-to-right解码器)以及其他预训练方案的推广。

weixin_45828972的博客 7450

VSCode Cordova 扩展调试问题分析与解决方案

VSCode Cordova 扩展调试问题分析与解决方案 问题现象分析 在使用 VSCode 的 Cordova 扩展(版本 2.7.0)进行 Android 应用调试时,开发者遇到了一个典型问题。调试过程在启动阶段卡住,控制台显示"spawn EINVAL"错误信息。同时,开发者环境满足 Cordova-Android 12 版本对 SDK 33 和 build-tools ...

gitblog_07367的博客 544

VS2022编译xlnt库

xlnt是一个用于读写Excel文件的C++库,本文介绍如何用源代码编译静态或动态xlnt库

QQVQQ的博客 7288

vscode python编程规范插件

我整理的一些关于【Python】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/Hpqqk2创建一个VSCode Python编程规范插件 在这个教程中,我们将一起创建一个VSCode插件,用于帮助开发者遵循Python编程规范。整个过程分为几个步骤,下面是一个流程概述: ...

weixin_40639767的博客 232

ruoyi-nbcio-plus基于vue3的flowable服务任务的升级修改

ruoyi-nbcio-plus基于vue3的flowable服务任务的升级修改

宁波阿成的博客 847

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VSCode中值得推荐的常用的33个高效前端插件「效率篇」(三)

VSCode 是我们前端开发的一个强大的IDE,所以选择趁手好用的插件是提高开发效率,然后剩下的时间用来摸鱼是很有必要滴。

xiadaocc的博客 2963

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

vsCode常用快捷键和Ement快速编写命令

主命令框 F1 或 Ctrl+Shift+P: 打开命令面板。在打开的输入框内,可以输入任何命令,例如: 按一下 Backspace 会进入到 Ctrl+P 模式在 Ctrl+P 下输入 > 可以进入 Ctrl+Shift+P 模式 在 Ctrl+P 窗口下还可以: 直接输入文件名,跳转到文件? 列出当前可执行的动作! 显示 Errors或 Warnings,也可以 Ctr

小亚美美的博客 3136

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

VSCode通过SSH与虚拟机中linux系统的连接

本文介绍了在Windows上使用VSCode通过SSH连接Linux虚拟机的步骤:首先在Linux中安装并启动SSH服务,获取虚拟机IP地址(需选择ens33网卡IP);然后在VSCode中配置SSH连接,输入密码后即可成功建立远程连接。该方法实现了跨平台的远程开发和代码管理。

LAN_chen_ning的博客 465
上一篇: var 是 Java 开发的好朋友啊!
下一篇: 给 console 添加颜色
极光推送
博客等级 码龄14年 109粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值