From e00da55c9289373b58311147a342d387a38f3537 Mon Sep 17 00:00:00 2001 From: nightwing Date: Thu, 6 Sep 2012 23:28:07 +0400 Subject: [PATCH] vim {} motions --- lib/ace/keyboard/vim/maps/motions.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/ace/keyboard/vim/maps/motions.js b/lib/ace/keyboard/vim/maps/motions.js index d082e5ce..b8fb12aa 100644 --- a/lib/ace/keyboard/vim/maps/motions.js +++ b/lib/ace/keyboard/vim/maps/motions.js @@ -27,7 +27,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ***** END LICENSE BLOCK ***** */ - + "use strict" define(function(require, exports, module) { @@ -598,6 +598,25 @@ module.exports = { return match; }), + "{": new Motion(function(ed) { + var session = ed.session; + var row = session.selection.lead.row; + while(row > 0 && !/\S/.test(session.getLine(row))) + row--; + while(/\S/.test(session.getLine(row))) + row--; + return {column: 0, row: row}; + }), + "}": new Motion(function(ed) { + var session = ed.session; + var l = session.getLength(); + var row = session.selection.lead.row; + while(row < l && !/\S/.test(session.getLine(row))) + row++; + while(/\S/.test(session.getLine(row))) + row++; + return {column: 0, row: row}; + }), "ctrl-d": { nav: function(editor, range, count, param) { editor.selection.clearSelection();