2012-03-19 24 views
3

私のサイトにはエースエディタが統合されています。 私はそこにいくつかのコードを持っており、いくつかの行の変更を強調表示したい。変更されたハイライト行

var range = new Range(rowStart, columnStart, rowEnd, columnEnd); 
var marker = editor.getSession().addMarker(range,"ace_active_line","background"); 

行をハイライトすることになっていることが分かったが、私は、Rangeオブジェクトの作成時にilligalコンストラクタエラーが発生します。何か案は ?

特定の行に黄色の背景を追加する方法はありますか?

おかげ

答えて

6

問題がここにあるというエースのいずれかにブラウザのネイティブレンジ機能としないようにRangeポイント。あなたはおそらくそれをインポートしていないでしょう。あなたは、エラー/警告が行をマークしたい場合は、このAPIを使用することができます

// taken from kitchen-sink.js 
var Range = require("./range").Range; 
2

あなたがしたい場合は変更された行を表示すると、強調表示する代わりにガターにマークを付けることができます。

var modified = 'ace-changed'; // css class 
editor.on('change', function(e) { 
    var activeLine = e.start.row; 
    if (e.action == "insert") { 
     while (activeLine < (e.end.row+1)) { 
      editor.session.removeGutterDecoration(activeLine, modified); 
      editor.session.addGutterDecoration(activeLine, modified); 
      activeLine++; 
     } 
    } else if (e.action == "remove") { 
     while (activeLine < (e.end.row+1)) { 
      editor.session.removeGutterDecoration(activeLine, modified); 
      activeLine++; 
     } 
     editor.session.addGutterDecoration(e.start.row, modified); 
    } 
}); 

JSFiddle:http://jsfiddle.net/u9e31pdm/1/

スクリーンショット:http://rghost.ru/6h4kMBM5z/image.png

申し訳ありませんが、私のコードはあまり良くない場合 - 私はちょうど2日前にはJavaScriptを学び始めました。

関連する問題