问题标签 [vscode-extensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
334 浏览

typescript - 如何检测 Visual Studio 代码扩展中的复制和剪切操作?

我开发了一个 vscode 扩展。
我想在编辑器上检测用户操作以进行复制和剪切。

我检查了API 参考,但找不到该方法。

如何在 typescript 的扩展中做到这一点?

0 投票
3 回答
1476 浏览

visual-studio-code - 在 Visual Studio Code 中以编程方式检测明暗主题

我正在开发一个可以预览美人鱼图的 Visual Studio Code扩展:

在此处输入图像描述

该扩展使用默认样式表,如果使用浅色主题,该样式表可以正常工作。但是,如果用户已将 Visual Studio Code 切换为使用深色主题,则样式表有一些与默认深色样式表不兼容的规则:

在此处输入图像描述

是否可以以编程方式检测活动主题类型(例如浅色/深色),以便我可以为每种情况提供不同的样式表?

我想使用捆绑在美人鱼中的样式表,而不是在我的扩展中制作完全不同的样式表。

0 投票
0 回答
1410 浏览

visual-studio-code - gulp:节点找不到模块“vscode”

我正在为 VS Code 开发一个扩展,并针对该扩展使用的对象编写一些测试。这些测试在 VS Code 中成功运行。但是,我也希望它们作为我的 CI 构建的一部分运行,我通过 gulp 来实现。我有一个使用“gulp mocha”来运行测试的 gulp 任务。这些测试将通过 gulp 成功运行,直到我引入一个类,该类在模块引用的传递闭包的任何地方都引入了“vscode”。

我的 gulp 输出如下:

在调用堆栈中,有对src\helpers\settings.js:6:18的引用。在那个位置是这样的声明:

在我的打字稿源中,即:

如果我只是删除引入我在 settings.js 中使用的命名空间的 import 语句,测试就会成功运行。

在阅读了有关 node.js 模块解析的文档(https://nodejs.org/api/modules.html#modules_all_together)之后,我可以理解为什么我会得到 MODULE_NOT_FOUND。由于“vscode”不是核心模块,也不是相对引用(“.”、“/”、“../”),节点将查找 package.json 文件。假设它找到它(procmon 告诉我它找到了),它会寻找一个“主”字段。我猜,在这一点上,它没有找到“主要”字段并且无法解决。

据推测,在 VS Code 中运行测试时(工作正常),解决方案还包括定位类型文件(http://www.typescriptlang.org/docs/handbook/module-resolution.html),因此是成功的。

我想不通的是,当我通过 gulp 运行测试时,我可以做些什么来解决对“vscode”的引用。

有什么想法吗?

0 投票
1 回答
343 浏览

typescript - 不知道从哪里获取 vsCode 自动完成列表中的数据

我对编写扩展/平台编程很陌生。我正在尝试在 vsCode 中编写一个扩展来过滤当前的智能感知类型。例如,如果您开始输入字母let obj = a..,智能感知将带回与智能感知匹配的全局范围内的所有内容。但是,我想构建一个扩展,允许您按类型过滤它,因此在输入“a”后,您可以按 alt+i 然后按 p 获取属性或按 alt+i 然后按 c 获取类,它将按特定类型过滤该列表.

我正在尝试通读 vsCode api,但很难理解自动完成的处理程序/引用在哪里。

我找到的 API - vsCode 网站

到目前为止,我已经遇到了一般的工作流程,所以你会在 package.json 中注册一个命令,然后在激活导出函数中注册命令,但是我对如何在更改事件上实现监听器有点困惑智能感知以及如何获取/设置智能感知信息,或者当前是否有可能。

0 投票
1 回答
2922 浏览

visual-studio-code - 如何将菜单添加到 vs 代码扩展?

我找不到任何有关在 vs 代码扩展中创建菜单的信息。这可能吗?某处有例子吗?

0 投票
1 回答
263 浏览

regex - VS Code 扩展:如何获取单词类型

我正在开发一个扩展,如果光标位于 RegExp 单词上,它将显示正则表达式的可视图(即:可以是简单的字符串“^regex$”或特定于语言的方式来定义正则表达式,如 JavaScript /^正则表达式$/)。

所以我需要知道光标在什么类型的元素上:有没有办法知道使用 VSCode API ?

如果我能检测到这个词是字符串还是正则表达式,那就太好了。我知道像 Atom 这样的其他编辑器提供了 API 来访问它,但在 VS Code 文档中没有找到任何东西。

0 投票
1 回答
1774 浏览

typescript - 如何在 VS Code 语言服务器中将 Uri 转换为 FilePath?

在 VS Code 扩展中,您可以将 uri 转换为 filePath,如下所示:

但是,在语言服务器中这不起作用,因为导入 vscode 失败。原因是vscode 在成功运行后“不是真正的node_module”
vscode问题#6586 ,

当语言服务器启动时,它仍然找不到模块:

以独立于平台的方式将 Uri 转换为 filePath 的最佳方法是什么?

0 投票
0 回答
170 浏览

visual-studio-code - 如何在 VSCode 中定义新的默认任务运行器?

我在 Vscode 中编写了自己的任务运行程序。如何让它与其他默认任务运行器一起显示在“配置任务运行器”菜单中?谢谢。

现在,当尝试在没有配置任务运行器的情况下运行构建命令时,VsCode 会显示任务运行器列表。当我定义我自己的时,我必须将它复制并粘贴到每个新项目中。所以有办法让它出现在默认任务列表中会很棒。

0 投票
1 回答
1162 浏览

visual-studio-code - VSCode 如何在悬停时处理冲突的 Intellisense 扩展

1) VS Code 如何处理冲突,在我们的例子中,我们想在 json 文件中添加一些带有悬停的智能感知。但在某些情况下,可能有两个单独的扩展扩展相同类型的文件或与 VS Code 本身提供的智能感知冲突。在这种情况下,编辑器如何决定显示哪个智能感知?2)在 Vscode 片段扩展中,我们可以在前缀中给出正则表达式以显示特定范围内的自动完成片段吗?示例:在下面给定的 JSON 文件中,我希望 xyz 仅在父节点为 abc 时才显示在自动完成中。有没有办法在片段文件中定义前缀或范围来实现这一点?{ abc : { xyz : 123 } }

0 投票
1 回答
64 浏览

typescript - 在 VSCode TypeScript 中测试文件的内容

我正在尝试添加到vscode中的扩展,现在正在尝试为我完成的代码编写测试脚本。我是 TypeScript 的新手,我所拥有的确实有效,但我只是不知道如何打开我保存并使用我编写的命令关闭的文件,然后打开文件备份并检查测试用例中的内容。

有人可以帮忙吗?