まずあなたはグローバル変数として、あなたの行番号を宣言したい:行が
editor.getSession().removeMarker(marker);
ハイライト:
var range = new Range(rowStart, columnStart, rowEnd, columnEnd);
var marker = editor.getSession().addMarker(range,"ace_selected_word", "text");
強調表示された単語を削除します。
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の代わりに、以下:
function highlightSyntax(text) {
var res = [];
var Tokenizer = ace.require('ace/tokenizer').Tokenizer;
var Rules = ace.require('ace/mode/sql_highlight_rules').SqlHighlightRules;
var Text = ace.require('ace/layer/text').Text;
var tok = new Tokenizer(new Rules().getRules());
var lines = text.split('\n');
lines.forEach(function(line) {
var renderedTokens = [];
var tokens = tok.getLineTokens(line);
if (tokens && tokens.tokens.length) {
new Text(document.createElement('div')).$renderSimpleLine(renderedTokens, tokens.tokens);
}
res.push('<div class="ace_line">' + renderedTokens.join('') + '</div>');
});
return '<div class="ace_editor ace-tomorrow"><div class="ace_layer" style="position: static;">' + res.join('') + '</div></div>';
}
この関数のSQL構文(ACE-明日のテーマ)をハイライトする必要があります
.errorHighlight{
position:absolute;
z-index:20;
background-color:#F4B9B7;
}
この機能は、すでに強調表示された行
function unhighlightError(){
editor.getSession().removeMarker(erroneousLine);
}
何を使用しましたか? – Ari
エースエディタは、基本的にエディタを表示させるだけの読み取り専用モードですが、それでも完全エディタのオーバーヘッドが発生します。速度は大きな問題ではありません。エディタのサイズはそれ以上です。私はいくつかのサイトで編集と表示の両方のためにそれを使用し、それはうまく動作します。 –