How to customize context menu in Visual Studio Cod

2020-08-13 05:49发布

问题:

Is it possible to customize context menu in Visual Studio Code ?

Currently it looks like this.

I need to add two more menu options to this.

Something like "Go Back" and "Go Forward".

Can this be done ?

回答1:

Yes, an extension can add menu items to the context menu: in package.json, add a contributes.menus section. The text editor context menu is called editor/context.

An example of an extension that does this is Bookmarks, which adds three context menu entries. The relevant parts of its package.json are:

{
    "name": "Bookmarks",
    ...
    "contributes": {
        ...
        "menus": {
            ...
            "editor/context": [
                {
                    "command": "bookmarks.toggle",
                    "group": "bookmarks",
                    "when": "editorTextFocus && config.bookmarks.showCommandsInContextMenu"
                },
                {
                    "command": "bookmarks.jumpToNext",
                    "group": "bookmarks@1",
                    "when": "editorTextFocus && config.bookmarks.showCommandsInContextMenu"
                },
                {
                    "command": "bookmarks.jumpToPrevious",
                    "group": "bookmarks@1",
                    "when": "editorTextFocus && config.bookmarks.showCommandsInContextMenu"
                }
            ],
            ....
        },
        ....
    },
    ....
}

The API docs are a bit vague about the meaning of the group attribute:

Last, a group property defines sorting and grouping of menu items.

Its meaning is described more fully under Sorting of groups. A word like "bookmarks" establishes a group of menu entries separated from other groups by a horizontal rule, with groups ordered alphabetically, and the "@<number>" suffix controls ordering within each group: