From df79f4a0d2e6b41688a8293f6fa06597e57e78d2 Mon Sep 17 00:00:00 2001 From: cadorn Date: Mon, 31 Jan 2011 10:29:49 -0800 Subject: [PATCH 1/7] Save and Save-As commands --- lib/ace/keyboard/keybinding/default_mac.js | 2 ++ lib/ace/keyboard/keybinding/default_win.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lib/ace/keyboard/keybinding/default_mac.js b/lib/ace/keyboard/keybinding/default_mac.js index 778ecc65..a2f7d643 100644 --- a/lib/ace/keyboard/keybinding/default_mac.js +++ b/lib/ace/keyboard/keybinding/default_mac.js @@ -38,6 +38,8 @@ define(function(require, exports, module) { exports.bindings = { + "save": "Command-S", + "saveas": "Command-Shift-S", "selectall": "Command-A", "removeline": "Command-D", "gotoline": "Command-L", diff --git a/lib/ace/keyboard/keybinding/default_win.js b/lib/ace/keyboard/keybinding/default_win.js index 507fb517..3d52019e 100644 --- a/lib/ace/keyboard/keybinding/default_win.js +++ b/lib/ace/keyboard/keybinding/default_win.js @@ -38,6 +38,8 @@ define(function(require, exports, module) { exports.bindings = { + "save": "Ctrl-S", + "saveas": "Ctrl-Shift-S", "selectall": "Ctrl-A", "removeline": "Ctrl-D", "gotoline": "Ctrl-L", From 36e89847ca30e6f24c64ead069469cc0bb995583 Mon Sep 17 00:00:00 2001 From: cadorn Date: Mon, 31 Jan 2011 10:30:13 -0800 Subject: [PATCH 2/7] Lib directory mapping --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 01adf13f..da8d322d 100644 --- a/package.json +++ b/package.json @@ -21,5 +21,8 @@ { "type": "LGPL", "url": "http://www.gnu.org/licenses/lgpl.html" - }] + }], + "directories": { + "lib": "lib/ace" + } } \ No newline at end of file From fae2af5ad4f9d642981e23a5897f0199609e9a02 Mon Sep 17 00:00:00 2001 From: cadorn Date: Mon, 31 Jan 2011 10:36:45 -0800 Subject: [PATCH 3/7] Basic ExtJS wrapper --- lib/ace/wrappers/extjs.js | 114 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 lib/ace/wrappers/extjs.js diff --git a/lib/ace/wrappers/extjs.js b/lib/ace/wrappers/extjs.js new file mode 100644 index 00000000..8f15fccc --- /dev/null +++ b/lib/ace/wrappers/extjs.js @@ -0,0 +1,114 @@ + +define(function(require, exports, module) { + +// TODO: Move this out of here +require("pilot/fixoldbrowsers"); + +var CANON = require("pilot/canon"); +var EDITOR = require("ace/editor").Editor; +var RENDERER = require("ace/virtual_renderer").VirtualRenderer; +var THEME_TEXTMATE = require("ace/theme/textmate"); + +Ext.ux.AceEditor = Ext.extend(Ext.BoxComponent, { + + initComponent: function() { + Ext.ux.AceEditor.superclass.initComponent.call(this); + var self = this; + + self.value = null; + + self.addEvents( + "editor-save", + "editor-saveas" + ); + CANON.addCommand({ + name: "save", + exec: function(env, args, request) { + self.fireEvent('editor-save', self); + } + }); + CANON.addCommand({ + name: "saveas", + exec: function(env, args, request) { + self.fireEvent('editor-saveas', self); + } + }); + }, + + onRender: function() { + Ext.BoxComponent.superclass.onRender.apply(this, arguments); + + + this.editor = new EDITOR(new RENDERER(this.el.dom, THEME_TEXTMATE)); + this.editor.resize(); + + if(this.value!==null) { + this.setValue(this.value[0], this.value[1]); + } + + var self = this; + this.editor.getDocument().addEventListener("changeDelta", function() { + self.fireEvent('editor-changeDelta', self); + }); + }, + + onResize: function( aw, ah ){ + if(this.editor) { + this.editor.resize(); + } + }, + + getValue: function() { + return this.editor.getDocument().getValue(); + }, + + setValue: function(value, options) { + if(!this.editor) { + this.value = [value, options]; + return; + } + this.value = null; + + options = options || {}; + + var doc = this.editor.getDocument(), + ext, + mode; + + if(typeof options.basename != "undefined" && (ext = options.basename.match(/\.([\w]+)$/))) { + switch(ext[1]) { + case "xml": + case "xhtml": + case "rdf": + mode = require("ace/mode/xml").Mode; + break; + case "htm": + case "html": + mode = require("ace/mode/html").Mode; + break; + case "js": + case "json": + mode = require("ace/mode/javascript").Mode; + break; + case "css": + mode = require("ace/mode/css").Mode; + break; + case "py": + mode = require("ace/mode/python").Mode; + break; + case "php": + mode = require("ace/mode/php").Mode; + break; + default: + mode = require("ace/mode/text").Mode; + break; + } + } else { + mode = require("ace/mode/text").Mode; + } + doc.setMode(new mode()); + doc.setValue(value); + } +}); + +}); \ No newline at end of file From 7b39072755239142c42dd1539cfeeab56a20d46f Mon Sep 17 00:00:00 2001 From: cadorn Date: Mon, 31 Jan 2011 10:36:57 -0800 Subject: [PATCH 4/7] Updated ignore rules --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index b747724a..36913cbf 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,9 @@ .DS_Store *.swp *.tmp +*.local.* +.pinf-* +.tmp* # Project files that should not be in the repo .project From 790565f084d18bd0d11f05fa3b8cac54065191f0 Mon Sep 17 00:00:00 2001 From: cadorn Date: Wed, 4 May 2011 09:28:26 -0700 Subject: [PATCH 5/7] removed extjs wrapper --- lib/ace/wrappers/extjs.js | 114 -------------------------------------- 1 file changed, 114 deletions(-) delete mode 100644 lib/ace/wrappers/extjs.js diff --git a/lib/ace/wrappers/extjs.js b/lib/ace/wrappers/extjs.js deleted file mode 100644 index 8f15fccc..00000000 --- a/lib/ace/wrappers/extjs.js +++ /dev/null @@ -1,114 +0,0 @@ - -define(function(require, exports, module) { - -// TODO: Move this out of here -require("pilot/fixoldbrowsers"); - -var CANON = require("pilot/canon"); -var EDITOR = require("ace/editor").Editor; -var RENDERER = require("ace/virtual_renderer").VirtualRenderer; -var THEME_TEXTMATE = require("ace/theme/textmate"); - -Ext.ux.AceEditor = Ext.extend(Ext.BoxComponent, { - - initComponent: function() { - Ext.ux.AceEditor.superclass.initComponent.call(this); - var self = this; - - self.value = null; - - self.addEvents( - "editor-save", - "editor-saveas" - ); - CANON.addCommand({ - name: "save", - exec: function(env, args, request) { - self.fireEvent('editor-save', self); - } - }); - CANON.addCommand({ - name: "saveas", - exec: function(env, args, request) { - self.fireEvent('editor-saveas', self); - } - }); - }, - - onRender: function() { - Ext.BoxComponent.superclass.onRender.apply(this, arguments); - - - this.editor = new EDITOR(new RENDERER(this.el.dom, THEME_TEXTMATE)); - this.editor.resize(); - - if(this.value!==null) { - this.setValue(this.value[0], this.value[1]); - } - - var self = this; - this.editor.getDocument().addEventListener("changeDelta", function() { - self.fireEvent('editor-changeDelta', self); - }); - }, - - onResize: function( aw, ah ){ - if(this.editor) { - this.editor.resize(); - } - }, - - getValue: function() { - return this.editor.getDocument().getValue(); - }, - - setValue: function(value, options) { - if(!this.editor) { - this.value = [value, options]; - return; - } - this.value = null; - - options = options || {}; - - var doc = this.editor.getDocument(), - ext, - mode; - - if(typeof options.basename != "undefined" && (ext = options.basename.match(/\.([\w]+)$/))) { - switch(ext[1]) { - case "xml": - case "xhtml": - case "rdf": - mode = require("ace/mode/xml").Mode; - break; - case "htm": - case "html": - mode = require("ace/mode/html").Mode; - break; - case "js": - case "json": - mode = require("ace/mode/javascript").Mode; - break; - case "css": - mode = require("ace/mode/css").Mode; - break; - case "py": - mode = require("ace/mode/python").Mode; - break; - case "php": - mode = require("ace/mode/php").Mode; - break; - default: - mode = require("ace/mode/text").Mode; - break; - } - } else { - mode = require("ace/mode/text").Mode; - } - doc.setMode(new mode()); - doc.setValue(value); - } -}); - -}); \ No newline at end of file From f530c1bccfa8fb8bcda2ec4790c0c85472009250 Mon Sep 17 00:00:00 2001 From: cadorn Date: Wed, 4 May 2011 09:46:19 -0700 Subject: [PATCH 6/7] bugfix --- lib/ace/mode/clojure_highlight_rules.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ace/mode/clojure_highlight_rules.js b/lib/ace/mode/clojure_highlight_rules.js index a19541d6..29d69662 100644 --- a/lib/ace/mode/clojure_highlight_rules.js +++ b/lib/ace/mode/clojure_highlight_rules.js @@ -119,8 +119,8 @@ var ClojureHighlightRules = function() { ); var keywords = lang.arrayToMap( - ("def do fn if let loop monitor-enter monitor-exit new quote recur set! ' + - 'throw try var").split(" ") + ('def do fn if let loop monitor-enter monitor-exit new quote recur set! ' + + 'throw try var').split(" ") ); var buildinConstants = lang.arrayToMap( From c13896a1e2ca93f912cba337dfe0faba3eb3fdb3 Mon Sep 17 00:00:00 2001 From: cadorn Date: Wed, 4 May 2011 09:48:02 -0700 Subject: [PATCH 7/7] reverted ignore rules --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index 18334489..65700fe6 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,6 @@ .DS_Store *.swp *.tmp -*.local.* -.pinf-* -.tmp* # Project files that should not be in the repo .project