有没有办法使我自己的保存命令覆盖标准文件保存密钥绑定?

时间:2019-11-30 06:30:29

标签: visual-studio-code command

我正在为有关键绑定和自定义编辑器的公开问题做出贡献。更具体地说,如果要在标准.md文本编辑器中编辑Markdown文件,然后单击CMD+S,则VSCode不仅将编辑内容保存在打开的文件中,还切换到Markdown的预览模式

现在,我的作品中有一个自定义编辑器保存命令,构造函数/键绑定如下(在TypeScript中):

(new class SaveCustomEditorCommand extends Command {
    public static readonly ID = 'editor.action.customEditor.save';

    constructor() {
        super({
            id: SaveCustomEditorCommand.ID,
            precondition: CONTEXT_HAS_CUSTOM_EDITORS,
            kbOpts: {
                primary: KeyMod.CtrlCmd | KeyCode.KEY_S,
                weight: KeybindingWeight.EditorContrib
            }
        });
    }
    ... // fully implemented runCommand function
}).register();

就像命令一样,按CMD+S仅保存更改,仅此而已。但是,如果我要将KeyCode从KEY_S更改为 KEY_Y (因为CMD+Y还不存在),则save-to-preview命令将按预期工作。将weight中的kbOpts属性设置为较高的枚举不会更改任何内容。

我确定在VSCode源代码中的某个位置,File / Save CMD+S命令具有最高优先级,但是鉴于我的命令仅应在上下文具有自定义编辑器的前提下运行,我想知道是否我可以某种方式强制我的“保存和预览”命令运行,而不是简单的通用“保存”命令。

任何指针或指导将不胜感激;这是我对任何开源的第一项贡献!

如果对于“保存并预览”键绑定,保留CMD+Y是更可行的做法,那么这对我有用,但是如果可能的话,我希望至少尝试使用CMD+S

0 个答案:

没有答案