From 18246a9dad7a7fd28ea1c7da15ebdef72390e206 Mon Sep 17 00:00:00 2001 From: WoLpH Date: Tue, 19 Jun 2012 12:36:13 +0000 Subject: [PATCH] added basic autoindenting support --- webapp/content/js/completer.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/webapp/content/js/completer.js b/webapp/content/js/completer.js index 7e8589a86..25e2ea773 100644 --- a/webapp/content/js/completer.js +++ b/webapp/content/js/completer.js @@ -45,11 +45,8 @@ MetricCompleter = Ext.extend(Ext.form.TextArea, { }, onSpecialKey: function (field, e) { - if (e.getKey() == e.TAB) { // This was a pain in the ass to actually get it working right - // field.getEl().blur(); - // field.getEl().focus(50); - // field.doQuery( field.getValue() ); - + var key = e.getKey(); + if(key == e.TAB){ /* allow the user to insert tabs */ var el = field.el.dom; var startPos = el.selectionStart; @@ -57,11 +54,21 @@ MetricCompleter = Ext.extend(Ext.form.TextArea, { var value = field.getValue(); field.setValue( value.substring(0, el.selectionStart) - + '\t' + + ' ' + value.substring(el.selectionEnd, value.length) ); e.stopEvent(); return false; + }else if(key == e.ENTER){ + var value = field.getValue(); + braces = value.match(/\(/g).length - value.match(/\)/g).length; + field.setValue( + value + + '\n' + + Array(braces + 1).join(' ') + ); + e.stopEvent(); + return false; } } });