From e1fef748e8fdd3410b875d391cb0223440ce8a9d Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Sun, 13 Feb 2011 16:06:21 +0100 Subject: [PATCH] implement center selection in view port command --- lib/ace/commands/default_commands.js | 4 ++++ lib/ace/editor.js | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/lib/ace/commands/default_commands.js b/lib/ace/commands/default_commands.js index 3565cc5b..0c555076 100644 --- a/lib/ace/commands/default_commands.js +++ b/lib/ace/commands/default_commands.js @@ -261,6 +261,9 @@ canon.addCommand({ } }); canon.addCommand({ + name: "centerselection", + exec: function(env, args, request) { env.editor.centerSelection(); } +}); canon.addCommand({ name: "splitline", exec: function(env, args, request) { env.editor.splitLine(); } @@ -270,4 +273,5 @@ canon.addCommand({ exec: function(env, args, request) { env.editor.transposeLetters(); } }); + }); diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 6a8d38f9..67ff0735 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -824,6 +824,12 @@ var Editor =function(renderer, session) { this.scrollToLine = function(line, center) { this.renderer.scrollToLine(line, center); }; + + this.centerSelection = function() { + var range = this.getSelectionRange(); + var line = Math.floor(range.start.row + (range.end.row - range.start.row) / 2); + this.renderer.scrollToLine(line, true); + }; this.getCursorPosition = function() { return this.selection.getCursor();