먼저 전역 변수로 줄 번호를 선언 할 : 라인이
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
을 사용하여 현재 행이나 다른 것을 가져올 수 있습니다. 이 강조 표시됩니다 어떻게 내가
errorHighlight
을 선언 한
function highlightError(lineNumber) {
unhighlightError();
var Range = ace.require("ace/range").Range
erroneousLine = editor.session.addMarker(new Range(lineNumber, 0, lineNumber, 144), "errorHighlight", "fullLine");
}
공지 사항. 당신의 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
에이스 에디터는 기본적으로 에디터 디스플레이 만하는 읽기 전용 모드를 가지고 있지만 전체 에디터의 오버 헤드는 여전히 발생합니다. 스피드는 커다란 문제는 아니지만 에디터의 크기는 더 크다. 나는 그것을 편집과 몇몇 사이트에서의 디스플레이 모두에 사용하며 잘 작동한다. –