Merge pull request #1334 from LivelyKernel/occur-with-isearch

Occur with isearch
This commit is contained in:
Harutyun Amirjanyan 2013-03-30 02:53:37 -07:00
commit 5fd8d7bbc8
5 changed files with 24 additions and 16 deletions

View file

@ -31,6 +31,9 @@
define(function(require, exports, module) {
var config = require("../config");
var oop = require("../lib/oop");
var HashHandler = require("../keyboard/hash_handler").HashHandler;
var occurStartCommand = require("./occur_commands").occurStartCommand;
// These commands can be installed in a normal key handler to start iSearch:
exports.iSearchStartCommands = [{
@ -121,13 +124,18 @@ exports.iSearchCommands = [{
exec: function(iSearch) { iSearch.deactivate(true); },
readOnly: true,
isIncrementalSearchCommand: true
}, {
name: 'occurisearch',
bindKey: 'Ctrl-O',
exec: function(iSearch) {
var options = oop.mixin({}, iSearch.$options);
iSearch.deactivate();
occurStartCommand.exec(iSearch.$editor, options);
},
readOnly: true,
isIncrementalSearchCommand: true
}];
var HashHandler = require("../keyboard/hash_handler").HashHandler;
var oop = require("../lib/oop");
function IncrementalSearchKeyboardHandler(iSearch) {
this.$iSearch = iSearch;
}

View file

@ -34,7 +34,7 @@ var config = require("../config"),
Occur = require("../occur").Occur;
// These commands can be installed in a normal command handler to start occur:
var occurStartCommands = [{
var occurStartCommand = {
name: "occur",
exec: function(editor, options) {
var alreadyInOccur = !!editor.session.$occur;
@ -43,7 +43,7 @@ var occurStartCommands = [{
OccurKeyboardHandler.installIn(editor);
},
readOnly: true
}];
};
var occurCommands = [{
name: "occurexit",
@ -105,6 +105,6 @@ OccurKeyboardHandler.uninstallFrom = function(editor) {
editor.keyBinding.removeKeyboardHandler(handler);
}
exports.commands = occurStartCommands;
exports.occurStartCommand = occurStartCommand;
});

View file

@ -219,11 +219,11 @@ dom.importCssString && dom.importCssString("\
}\
div.ace_isearch-result {\
border-radius: 4px;\
border: 8px solid rgba(255, 200, 0, 0.5);\
background-color: rgba(255, 200, 0, 0.5);\
box-shadow: 0 0 4px rgb(255, 200, 0);\
}\
.ace_dark div.ace_isearch-result {\
border: 8px solid rgb(100, 110, 160);\
background-color: rgb(100, 110, 160);\
box-shadow: 0 0 4px rgb(80, 90, 140);\
}", "incremental-search-highlighting");

View file

@ -172,7 +172,7 @@ oop.inherits(Occur, Search);
var dom = require('./lib/dom');
dom.importCssString(".ace_occur-highlight {\n\
border-radius: 4px;\n\
border: 8px solid rgba(87, 255, 8, 0.25);\n\
background-color: rgba(87, 255, 8, 0.25);\n\
position: absolute;\n\
z-index: 4;\n\
-moz-box-sizing: border-box;\n\
@ -181,7 +181,7 @@ dom.importCssString(".ace_occur-highlight {\n\
box-shadow: 0 0 4px rgb(91, 255, 50);\n\
}\n\
.ace_dark .ace_occur-highlight {\n\
border: 8px solid rgb(80, 140, 85);\n\
background-color: rgb(80, 140, 85);\n\
box-shadow: 0 0 4px rgb(60, 120, 70);\n\
}\n", "incremental-occur-highlighting");

View file

@ -41,7 +41,7 @@ var MockRenderer = require("./test/mockrenderer").MockRenderer;
var Range = require("./range").Range;
var assert = require("./test/assertions");
var Occur = require("./occur").Occur;
var occurCommands = require("./commands/occur_commands").commands;
var occurStartCommand = require("./commands/occur_commands").occurStartCommand;
var editor, occur;
module.exports = {
@ -83,7 +83,7 @@ module.exports = {
// setup
var text = 'hel\nlo\n\nwo\nrld\n';
editor.session.insert({row: 0, column: 0}, text);
editor.commands.addCommands(occurCommands);
editor.commands.addCommand(occurStartCommand);
// run occur for lines including 'o'
editor.execCommand('occur', {needle: 'o'});
@ -107,7 +107,7 @@ module.exports = {
// setup
var text = 'hel\nlo\n\nwo\nrld\n';
editor.session.insert({row: 0, column: 0}, text);
editor.commands.addCommands(occurCommands);
editor.commands.addCommand(occurStartCommand);
editor.moveCursorToPosition({row: 1, column: 1});
// run occur for lines including 'o'
@ -126,7 +126,7 @@ module.exports = {
// setup
var text = 'x\nabc1\nx\nabc2\n';
editor.session.insert({row: 0, column: 0}, text);
editor.commands.addCommands(occurCommands);
editor.commands.addCommand(occurStartCommand);
// orig -> occur1
editor.execCommand('occur', {needle: 'abc'});