5

Microsoft Monaco エディターのブラウザー ベースのバージョンを使用して作業してきましたが、エディターの特定の行の値を取得する方法を説明するドキュメントや例がプレイグラウンドで見つかりません。

例えば:

class Example {
    private m:number;

    public met(): string {
        return "Hello world!";
    }
}

2 行目はprivate m:number;.

その行または行の一部の値を取得し、コードを使用してその値を変更するにはどうすればよいでしょうか。そのアクションをキーボードショートカットに入れたいです。

4

2 に答える 2

1

私はそれを見つけていないので、モナコにはそのような組み込み機能はないと思います。しかし、私は次のコードを使用してそれを行っています:

editor.addAction({
        id: 'some_id',
        label: 'label',
        keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_C],
        run: function(ed) {
            var position = ed.getPosition();
            var text = ed.getValue(position);
            var splitedText=text.split("\n");
            var line = splitedText[position.lineNumber-1];

            // now you have current line
            // you can also get any other line
            // and do something with that line

            splitedText[position.lineNumber-1]= _newLineText_
            ed.setValue(splitedText.join("\n"));
            ed.setPosition(position); // to return the pointer to the a position before editing text

            return null;
        },
        enablement: {
            textFocus: true,
        }
    });

この方法は小さなファイルには適していますが、大きなファイルの場合、エディター全体が再ハイライトされ、それは悪いことです。

于 2016-08-03T06:27:48.430 に答える