fix tag flicker

fix tag highlight flicker when selecting
This commit is contained in:
Adam Jimenez 2014-06-06 13:32:16 +01:00
commit 111ec1899f

View file

@ -539,11 +539,6 @@ var Editor = function(renderer, session) {
this.$highlightTags = function() { this.$highlightTags = function() {
var session = this.session; var session = this.session;
if (session.$tagHighlight) {
session.removeMarker(session.$tagHighlight);
session.$tagHighlight = null;
}
if (this.$highlightTagPending) { if (this.$highlightTagPending) {
return; return;
} }
@ -558,7 +553,9 @@ var Editor = function(renderer, session) {
var iterator = new TokenIterator(self.session, pos.row, pos.column); var iterator = new TokenIterator(self.session, pos.row, pos.column);
var token = iterator.getCurrentToken(); var token = iterator.getCurrentToken();
if( !token || token.type.indexOf('tag-name') === -1 ){ if (!token || token.type.indexOf('tag-name') === -1) {
session.removeMarker(session.$tagHighlight);
session.$tagHighlight = null;
return; return;
} }
@ -601,6 +598,8 @@ var Editor = function(renderer, session) {
} }
if (!token) { if (!token) {
session.removeMarker(session.$tagHighlight);
session.$tagHighlight = null;
return; return;
} }
@ -608,8 +607,14 @@ var Editor = function(renderer, session) {
var column = iterator.getCurrentTokenColumn(); var column = iterator.getCurrentTokenColumn();
var range = new Range(row, column, row, column+token.value.length); var range = new Range(row, column, row, column+token.value.length);
if (range) //remove range if different
self.session.$tagHighlight = self.session.addMarker(range, "ace_bracket", "text"); if (session.$tagHighlight && range.compareRange(session.$backMarkers[session.$tagHighlight].range)!==0) {
session.removeMarker(session.$tagHighlight);
session.$tagHighlight = null;
}
if (range && !session.$tagHighlight)
session.$tagHighlight = session.addMarker(range, "ace_bracket", "text");
}, 50); }, 50);
}; };