monaco-editor / react addCommand () в ControlledEditor

Мы используем @ monaco-editor / react, а именно:

import { ControlledEditor } from "@monaco-editor/react";

...

return (
    <ControlledEditor
                height="85vh"
                editorDidMount={handleEditorDidMount}
                language="xml"
                onChange={listenEditorChanges}
                theme={
                    uiTheme !== undefined && uiTheme === "Default Theme"
                        ? "light"
                        : "vs-dark"
                }
                value={currentTab.choosenFile.value}
                options={{
                    readOnly:
                        (permissions && !permissions.editFiles) ||
                        currentTab.choosenFile.historyFile ||
                        currentTab.choosenFile.used
                            ? true
                            : false,
                    wordWrap: "on",
                    automaticLayout: "on",
                    editorConstructionOptions: {
                        formatOnType: "on"
                    }
                }}
            />
)

Как добавить привязку клавиш (addCommand) к такой реализации? Я пробовал:

const handleEditorDidMount = (_: any, editor) => {
        editorRef.current = editor;

        editor.addCommand(17 | 83, () => {
            console.log('save!')
        });
    };

но не работает ...


person k-wasilewski    schedule 04.02.2021    source источник


Ответы (1)


Я просто использовал эту ванильную функцию Javascript:

document.addEventListener("keydown", function(e) {
      if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey))      {
        e.preventDefault();
        //your implementation or function calls
      }
    }, false);
person k-wasilewski    schedule 04.02.2021