在VSCode中添加特定语言的图标

12
我已经创建了一个语言扩展(语法突出显示等),现在想将特定的图标与该语言(或使用我扩展名的文件)相关联。
我注意到在 package.json 文件中有一个 "icon" 属性,并试图将此属性绑定到我的 .svg 文件上。但是,虽然测试文件上的语法突出显示正常工作,但我没有看到我的自定义图标与此文件相关联。
我应该在哪里添加对我的 .svg 文件的引用?我是否需要以某种方式将我的 .svg 文件贡献给 Seti 文件图标主题?
3个回答

7
在 vscode v1.64 中:

语言默认图标

语言贡献者可以为该语言定义一个图标。

"contributes": {  
     "languages": [
       {
         "id": "latex",
         // ...
         "icon": {
           "light": "./icons/latex-light.png",
           "dark": "./icons/latex-dark.png"
         }
       }
   ] 
}

如果当前文件图标主题只有通用的语言文件图标,则会显示该图标。

像Minimal或None这样不显示文件图标的文件图标主题也不会使用语言图标。此外,如果文件图标主题具有扩展名或文件名的图标,则将优先使用它们。

文件图标主题可以通过在主题文件中定义showLanguageModeIcons: true|false来自定义新行为。

showLanguageModeIcons: true即使主题未指定文件图标,也会显示默认的语言图标。
showLanguageModeIcons: false防止使用默认的语言图标。


2
文件和文件夹图标是在图标集中定义的,缺省设置为Seti。目前没有办法在扩展中重新定义这些图标,除非创建自己的图标主题。Seti UI图标从依赖项生成,并作为内置扩展程序提供。因此,将您的语法图标包含在VScode中的最佳方法是向Seti UI存储库提交拉取请求。在某个时候,新图标将被VScode开发人员合并到图标字体中,您的图标应该会出现。

此答案已过期,适用于 v1.64 之前的版本。请查看 Mark 的回答。 - rrama

-1

!!

更新:请查看其他评论以获取正确答案

现在有新版本的vscode,所以不再需要这个“hack”了。

!!

很遗憾,在当前版本的VSCode中,您必须指定整个主题图标规范。

Github上有一个PR,应该允许扩展默认图标:支持扩展图标主题

在它被合并并包含在新版本中之前,有可能复制默认的seti配置。

https://github.com/microsoft/vscode/blob/master/extensions/theme-seti/icons/seti.woff https://github.com/microsoft/vscode/blob/master/extensions/theme-seti/icons/vs-seti-icon-theme.json

根据文档 File Icon Theme,将自己的图标添加到 vs-seti-icon-theme.json 配置文件中。


此答案已过时,适用于v1.64。请参考Mark的答案。 - rrama

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接