标题
[开小坑]新项目 VScode 插件 CodeLine 及一些小知识
clq
浏览(94) +
2024-09-22 19:02:16 发表
编辑
关键字:
[2024-09-28 17:08:50 最后更新]
[开小坑]新项目 VScode 插件 CodeLine 及一些小知识 为啥百忙之中还要开发一个 vscode 插件? 答案是,就是因为实在是太忙了,感觉 vscode 配合我心爱的 golang 好是好用,就是开发效率实在是比不上当年的 delphi 。 当然了毕竟 delphi 是 rad 不可同日而语的,但我这几日想了一下,其实可以扩展一下 vscode 让它的开发效率接近 delphi 的,我给它取名 VScodeAsDelphi 。好吧,暂时还是开玩笑。 不过目标确实是这样的:用类似 delphi 的界面开发界面,用 vscode 来写代码,所以就需要一个工具要能在界面中像 delphi 双击控件一样跳转到事件代码上 -- 这了就是我们这个插件要做的内容, 接收一个命令然后在 vscode 中打开指定的位置。为了更高的兼容性我决定这个交互接口是 socket 或者 udp/http 这样最简单的方式,传输 json 就好了。 很显然这是个小工具,再说了保不齐哪天 vscode 也被取代了呢? 所以粘性不用做得那么高。 好了,下面都是些 vscode 插件开发的知识,有兴趣的网友也可以看看。 -------------------------------------------------------- 更新: 插件已发布,在 vscode 中搜索 CodeLine 即可。发布时要求一个 github 链接,所以顺便传到 github 上了。总的来说开发比较简单,配置比较啰嗦。 https://github.com/clqsrc/CodeLine -------------------------------------------------------- vscode 插件其实并不难,很早以前我就写过了,主要是一个代码位置回退的功能 ... 对现在官方直接有了,所以就没有更开发了。 原理其实也比较简单,就是一段 js 代码,然后就是要引用一些不太好引用的“头文件”,我x麻烦,是直接手写的 js ,如今芝有更简单的方法。 1.安装最新的 nodejs ,我用的压缩版本,因为我要用的版本很多,安装版会很麻烦。官网经常 go die 所以可以去清华下载。 https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/ 不过我是 https://www.jb51.net/softs/851360.html 不能用老版本,因为有此依赖库不支持。 2.npm 一般情况下肯定是用不了的,所以得改服务器 。 淘宝的加速已经改到 https://registry.npmmirror.com/ 了。 我强烈建议不要用 cnpm 会有问题,用以下标准命令就好了 npm config set registry https://registry.npmmirror.com 3.安装我说的现在很方便的插件开发工具 安装 Yeoman 和 VSCode 扩展生成器 我在这里有个 ai 也解决不了的小坑,我在 yo code 中选择的实现是 ts 而不是 js 所以在调试时一直过不去。原因是要编译为 js ,另外运行时选择可以方便的选择 vscode 扩展类型,会很方便的的开启一个新 vscode 并自动加载这个开发中的插件。 插件并不会自己启动,要看你 activationEvents 设置了什么。总的来说代码其实很简单,在工具生成的模板的 activate 函数中加入自己的功能模块就行了。这个就不细说了,相关文章很多。 npm install -g yo generator-code 创建插件项目: 运行以下命令: yo code yo code 后的结果如下 -------------------------------------------------------- Your extension codeline has been created! To start editing with Visual Studio Code, use the following commands: code codeline Open vsc-extension-quickstart.md inside the new extension for further instructions on how to modify, test and publish your extension. For more information, also visit http://code.visualstudio.com and follow us @code. -------------------------------------------------------- 对于您提到的功能,可以考虑以下实现方式: 跳转到任意文件的任意行: 使用 VSCode API 中的 vscode.workspace.openTextDocument() 和 vscode.window.showTextDocument() 方法打开文件 使用 editor.revealRange() 方法跳转到指定行 接受 socket 请求: 使用 Node.js 的 net 模块创建 socket 服务器 在接收到请求时,调用相应的 VSCode API 执行操作 如果您需要更详细的代码示例或有其他具体问题,请随时告诉我。 -------------------------------------------------------- 插件不能直接在这个项目中运行,要在 codeline 中,并且只能用 vscode 打开。现在还不能在 Cursor 中运行。 另外在 yo code 中选择的是 ts 项目,所以要先编译,命令为: npm run compile -------------------------------------------------------- 插件可能没有激活,要查看 package.json 中的 activationEvents 是否包含 * (或者其他),如果没有,则要手动添加。
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.