2016-09-10 18 views
0

変更が発生したブロックを検出する方法を探しています。ACEエディタ:どのブロックが変更されたかを検出する方法

小さなマークダウンパーサーを作成していて、単純なUIが必要な場合は、位置とパフォーマンスを維持するために、実際に変更している部分をライブプレビューで更新したいだけです。これが機能するには、私はエディタのどの部分を修正しているのかを知る必要があります。

私がonchangeイベントを使用するとき、イベントデータは、自分の変更がどこで発生したか、どの行と位置であるかをきれいに指定します。改行のために上下を検索するコードを書く前に、ブロックが変更されたAPIにデフォルトの方法があるかどうか尋ねたいと思っていました。

あなたはこのような何かを得るでしょう:エース内のブロックの概念がない

fs.readFile(__dirname + '/example.md', 'utf8', function(err, text) { 
    session = ace.createEditSession(text); 
    session.on('change', function(e, f) { 
     // getChangedParagraph does not exist and needs to return the 
     // actual block which changed. 
     var changedText = getChangedParagraph(); 
     parseTheText(changedText); 
    }); 
    editor.setSession(session); 
}); 

答えて

0

。変更の行と列を与えるエース変更イベント、パーサーの位置を追跡する必要があります

+0

ありがとうございます。パーサに変更を送信するだけですか?または、テキスト全体を送信し、解析し、ASTをマージしますか?それとももっと良い方法がありますか? –

関連する問題