[occur] highlighting occur search term in occur mode

This commit is contained in:
Robert Krahn 2013-03-17 18:04:12 -07:00
commit 6f68042545
2 changed files with 35 additions and 3 deletions

View file

@ -209,6 +209,14 @@
box-sizing: border-box;
}
.ace_marker-layer .ace_occur-highlight {
position: absolute;
z-index: 4;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.ace_line .ace_fold {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;

View file

@ -35,6 +35,7 @@ var oop = require("./lib/oop");
var Range = require("./range").Range;
var Search = require("./search").Search;
var Document = require("./document").Document;
var SearchHighlight = require("./search_highlight").SearchHighlight;
/**
* @class Occur
@ -99,6 +100,13 @@ oop.inherits(Occur, Search);
return true;
}
this.highlight = function(sess, regexp) {
var hl = sess.$occurHighlight = sess.$occurHighlight || sess.addDynamicMarker(
new SearchHighlight(null, "ace_occur-highlight", "text"));
hl.setRegexp(regexp);
sess._emit("changeBackMarker"); // force highlight layer redraw
}
this.display = function(session, options) {
this.$originalDoc = session.doc;
var found = this.matchingLines(session, options),
@ -107,14 +115,13 @@ oop.inherits(Occur, Search);
occurDoc.$occur = this;
occurDoc.$occurMatchingLines = found;
session.setDocument(occurDoc);
session.highlight(null);
session.highlight(options.re);
this.highlight(session, options.re);
session._emit('changeBackMarker');
}
this.displayOriginal = function(session) {
session.setDocument(this.$originalDoc);
session.highlight(null);
this.highlight(session, null);
session._emit('changeBackMarker');
}
@ -166,6 +173,23 @@ oop.inherits(Occur, Search);
}).call(Occur.prototype);
var dom = require('./lib/dom');
(function patchHighlightMarkerStyling() {
var id = 'incremental-occur-highlighting',
css = 'div.ace_occur-highlight {\n'
+ " border-radius: 4px;\n"
+ "border: 8px solid rgba(87, 255, 8, 0.25);\n"
+ "box-shadow: 0 0 4px rgb(91, 255, 50);\n"
+ "}\n"
+ '.ace_dark div.ace_occur-highlight {\n'
+ "border: 8px solid rgb(80, 140, 85);\n"
+ "box-shadow: 0 0 4px rgb(60, 120, 70);\n"
+ '}\n';
dom.importCssString(css, id);
})();
window.Occur = Occur
window.Document = Document
exports.Occur = Occur;