javascript - Hur man ställer in anpassade ikoner och logotyper i statusfältet (setStatusBarMessage) för en vscode-tillägg?


Jag utvecklar ett VS Code-tillägg där jag vill sätta ikonerna i statusfältet men jag stöter på problem.

import * as vscode from 'vscode';
...
export function activate(context: vscode.ExtensionContext) {
    ...

    let disposable = vscode.commands.registerCommand('extension.helloWorld', () => { 
            ....
            //on the place of icon i want the icon to get display in the status bar
                  vscode.window.setStatusBarMessage(
                    "icon "+" icon "+  
                    data1 +
                    " icon " +
                    data2 +
                    " icon" +
                    data3
                  );
                  ...
                  ...
});
...
}

export function deactivate() {}

Svar #1

Ja, du kan lägga till en ikon i statusfältet. Först behöver du konvertera din ikon svg till teckensnitt (du kan använda ett verktyg som iconmo) och sedan lägga till den i package.json. API:et finns här: (https://code.visualstudio.com/api/references/contribution-points#contributes.icons)

Exempel :

"contributes": {
    "icons": {
      "skedulo-logo": {
        "description": "Skedulo icon",
        "default": {
          "fontPath": "media/skedulo.woff",
          "fontCharacter": "\\e900"
        }
      }
    }
  }
}

Då i din statusfält:

this.statusBar = vscode.window.createStatusBarItem(
      vscode.StatusBarAlignment.Left,
      100
    );

this.statusBar.text = `$(skedulo-logo)`;

Du kan hänvisa till några tillägg som Graphql: https://github.com/graphql/graphiql/blob/main/packages/vscode-graphql/package.json

Svar #2

Du kan hitta en lista över tillgängliga ikoner här (anpassade ikoner stöds inte):

https://code.visualstudio.com/api/references/icons-in-labels

De används via $ (icon-name)-syntax, till exempel $ (alert) som kommer att producera

.