diff --git a/lib/ace/layer/marker.js b/lib/ace/layer/marker.js index 9162a501..cd1b992d 100644 --- a/lib/ace/layer/marker.js +++ b/lib/ace/layer/marker.js @@ -101,7 +101,7 @@ var Marker = function(parentEl) { }; // Draws a marker, which spans a range of text on multiple lines - this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig) { + this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) { // selection start var row = range.start.row; @@ -109,35 +109,36 @@ var Marker = function(parentEl) { row, range.start.column, row, this.session.getScreenLastRowColumn(row) ); - this.drawSingleLineMarker(stringBuilder, lineRange, clazz + " ace_start", layerConfig, 1, "text"); + this.drawSingleLineMarker(stringBuilder, lineRange, clazz + " ace_start", layerConfig, 1, extraStyle); // selection end row = range.end.row; lineRange = new Range(row, 0, row, range.end.column); - this.drawSingleLineMarker(stringBuilder, lineRange, clazz, layerConfig, 0, "text"); + this.drawSingleLineMarker(stringBuilder, lineRange, clazz, layerConfig, 0, extraStyle); for (row = range.start.row + 1; row < range.end.row; row++) { lineRange.start.row = row; lineRange.end.row = row; lineRange.end.column = this.session.getScreenLastRowColumn(row); - this.drawSingleLineMarker(stringBuilder, lineRange, clazz, layerConfig, 1, "text"); + this.drawSingleLineMarker(stringBuilder, lineRange, clazz, layerConfig, 1, extraStyle); } }; // Draws a multi line marker, where lines span the full width - this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, type) { + this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { // from selection start to the end of the line var padding = this.$padding; var height = config.lineHeight; var top = this.$getTop(range.start.row, config); var left = padding + range.start.column * config.characterWidth; + extraStyle = extraStyle || ""; stringBuilder.push( "
" + "left:", left, "px;", extraStyle, "'>" ); // from start of the last line to the selection end @@ -149,7 +150,7 @@ var Marker = function(parentEl) { "height:", height, "px;", "width:", width, "px;", "top:", top, "px;", - "left:", padding, "px;'>" + "left:", padding, "px;", extraStyle, "'>" ); // all the complete lines @@ -163,12 +164,12 @@ var Marker = function(parentEl) { "height:", height, "px;", "right:0;", "top:", top, "px;", - "left:", padding, "px;'>" + "left:", padding, "px;", extraStyle, "'>" ); }; // Draws a marker which covers part or whole width of a single screen line - this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength) { + this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) { var height = config.lineHeight; var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth; @@ -180,11 +181,11 @@ var Marker = function(parentEl) { "height:", height, "px;", "width:", width, "px;", "top:", top, "px;", - "left:", left,"px;'>" + "left:", left, "px;", extraStyle || "", "'>" ); }; - this.drawFullLineMarker = function(stringBuilder, range, clazz, config) { + this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { var top = this.$getTop(range.start.row, config); var height = config.lineHeight; if (range.start.row != range.end.row) @@ -194,11 +195,11 @@ var Marker = function(parentEl) { "" + "left:0;right:0;", extraStyle || "", "'>" ); }; - this.drawScreenLineMarker = function(stringBuilder, range, clazz, config) { + this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { var top = this.$getTop(range.start.row, config); var height = config.lineHeight; @@ -206,7 +207,7 @@ var Marker = function(parentEl) { "" + "left:0;right:0;", extraStyle || "", "'>" ); }; diff --git a/lib/ace/search_highlight.js b/lib/ace/search_highlight.js index 64cd43b7..11defd9c 100644 --- a/lib/ace/search_highlight.js +++ b/lib/ace/search_highlight.js @@ -71,9 +71,7 @@ var SearchHighlight = function(regExp, clazz, type) { for (var j = ranges.length; j --; ) { markerLayer.drawSingleLineMarker( - html, ranges[j].toScreenRange(session), this.clazz, config, - null, this.type - ); + html, ranges[j].toScreenRange(session), this.clazz, config); } } };