Codemirror.getCursor () возвращает правильное местоположение только при каждом втором нажатии - PullRequest
0 голосов
/ 04 февраля 2020

Я использую Codemirror и просто хочу получить строку cm в mousedown, проблема в том, что getCursor() по умолчанию работает как режим выделения / непрерывный режим, что означает, что он ожидает местоположение первого щелчка (по умолчанию Pos {line: 0, ch: 0} на первый щелчок после загрузки страницы, а затем второй щелчок возвращает правильные координаты, в основном это работает как селектор, а не как один щелчок.

Я уже пытался передать несколько опций в опцию из документов и из других поиск в Google все же результат остается прежним.

Я хотел бы знать, как простое событие mousedown отправит обратно текущую строку и ch.

Вот мое кодовое зеркало, заключенное в функцию init:

    function createCodeMirror(textarea_elem, showLineNumbers = false)
    {
        var cm = CodeMirror.fromTextArea(textarea_elem[0],
        {
            lineNumbers: showLineNumbers,
            mode: 'text/x-c++src',
            readOnly: "true",
            gutters: ["motifGutter"],
            lineWrapping: false,
            viewportMargin: Infinity,
            scrollbarStyle: "overlay",
            // highlightSelectionMatches: {showToken: /\w/},
        });

        if (gTextDir == "rtl")
        {
            cm.setOption("lineWrapping", true);
            $(".CodeMirror-code").css("direction", "rtl");
            $(".CodeMirror-code").css("font-family", "Arial, Helvetica, sans-serif");
        }

        cm.on("mousedown", function(instance, e) {

        console.log(instance.getCursor());
    })
}
...