16

シンタックスハイライトで12を超える小さなコードスニペットを作成し、それらをクリックしてACE Editorで編集できるようにします。これは、それぞれに完全なエディターを設定するよりもはるかに高速だと思います。ACEエディターを設定するための簡単なコマンドがあるようです。

<div id="editor">some text</div>
<script src="src/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
window.onload = function() {
    var editor = ace.edit("editor");
};
</script>

エディターを設定せずにテキストを強調表示するためにAPIを呼び出す簡単な方法はありますか?理想的なAPIは、テキストを取り込んで、強調表示に使用できるタグ付きのHTMLを返します。JavaScript専用のハイライトライブラリがあることは承知していますが、表示中のテキストと編集中のテキストの両方に同じハイライターを使用してみたいと思います。

4

5 に答える 5

16

次の単語をハイライトします。

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

強調表示された単語を削除します。

editor.getSession().removeMarker(marker);

次の行を強調表示します。

editor.getSession().addMarker(range,"ace_active_line","background");
于 2012-02-21T10:47:54.703 に答える
8

まず、行番号をグローバル変数として宣言します。

var erroneousLine;

これは、行番号 ( lineNumber) をパラメーターとして受け取る、highlightError 関数です。editor.selection.getCursor().rowこれは、エラー メッセージから、または現在の行を取得するために使用したり、その他の何かからトリガーされる可能性があります。

function highlightError(lineNumber) {
  unhighlightError();
  var Range = ace.require("ace/range").Range
  erroneousLine = editor.session.addMarker(new Range(lineNumber, 0, lineNumber, 144), "errorHighlight", "fullLine");
}

を宣言したことに注意してくださいerrorHighlight。これにより、これが強調表示されます。css に次のように記述します。

.errorHighlight{
  position:absolute;
  z-index:20;
  background-color:#F4B9B7;
}

この関数は、すでに強調表示されている行の強調表示を解除します

function unhighlightError(){
  editor.getSession().removeMarker(erroneousLine);
}
于 2015-01-14T21:28:32.493 に答える
6

サーバー側バージョンのハイライター (node.js で実行) が利用可能で、おそらく Web ベースの JavaScript にかなり簡単に移植できます。

于 2012-01-24T23:55:49.750 に答える