【问题标题】:Get the API/pull the Visual Studio Code file language icons into the VS extension获取 API/将 Visual Studio Code 文件语言图标拉入 VS 扩展
【发布时间】:2021-12-30 15:19:51
【问题描述】:

我正在制作一个在树视图上显示某些项目的扩展程序,并希望为它们提供代表其语言的图标。我不想保存 90 个 svg,而是考虑是否有 api 调用或某些选项可以直接从 IDE 本身获取 Visual Studio 代码图标,我知道我可以使用很多图标,例如 Product图标。如果这是不可能的,有没有办法得到这些,即使它在一个 svg 中?

我不能只使用 vscode.ThemeIcon.File;因为显示的项目是某些代码sn-ps,而不是整个文件。

【问题讨论】:

标签: typescript visual-studio-code themes visual-studio-extensions


【解决方案1】:

使用以下TreeItem 子类

class MyTreeItem extends vscode.TreeItem {
  constructor(item) {
    super(vscode.Uri.file(item.path));
    this.command = { command: "some_command", arguments: [], title: '' };
    this.iconPath = vscode.ThemeIcon.File;
    this.description = true; // use resource URI
    this.label = item.label; // use label when set
  }
}

item 是一个具有path 成员(文件uri 的fsPath)和label 成员的对象。

现在 VSC 将使用当前文件图标主题为项目添加图标。

【讨论】:

  • 谢谢,虽然它发现每个树元素都是一个文本对象,而不是某个文件。我希望能够从 api 手动映射项目,例如 >API['ts'] = vscode.ThemeIcon.File.hypoteticalTSIcon.
  • @HannaS as a text object 是什么意思,什么时候是 file?
  • 树视图中的项目列表不是文件。它们是代码 sn-ps,是从服务器中提取的字符串,但每个代码 sn-p 都使用某种语言。它们不是文件。我从 api 中提取文本片段,让我们说“ts”作为给定的语言。我希望能够在树的项目旁边显示语言图标。我希望能够从主题中提取图标,使其保持一致。树就像。这个:>[icon] Typescript ->Snippet 1 ->Snippet 2 >[icon] C++ ->... 现在我在本地自定义图标,但我希望能够将它们从主题中拉出来,这样它是一致的
猜你喜欢
  • 2018-12-28
  • 2018-07-21
  • 2018-08-23
  • 1970-01-01
  • 2017-07-01
  • 1970-01-01
  • 2015-07-10
  • 1970-01-01
  • 2019-01-25
相关资源
最近更新 更多