diff options
Diffstat (limited to 'objectapp/static/objectapp/js/Gnowmacs/src/js/.svn/text-base/ymacs.js.svn-base')
-rw-r--r-- | objectapp/static/objectapp/js/Gnowmacs/src/js/.svn/text-base/ymacs.js.svn-base | 559 |
1 files changed, 0 insertions, 559 deletions
diff --git a/objectapp/static/objectapp/js/Gnowmacs/src/js/.svn/text-base/ymacs.js.svn-base b/objectapp/static/objectapp/js/Gnowmacs/src/js/.svn/text-base/ymacs.js.svn-base deleted file mode 100644 index cf58706..0000000 --- a/objectapp/static/objectapp/js/Gnowmacs/src/js/.svn/text-base/ymacs.js.svn-base +++ /dev/null @@ -1,559 +0,0 @@ -//> This file is part of Ymacs, an Emacs-like editor for the Web -//> http://www.ymacs.org/ -//> -//> Copyright (c) 2009-2010, Mihai Bazon, Dynarch.com. All rights reserved. -//> -//> Redistribution and use in source and binary forms, with or without -//> modification, are permitted provided that the following conditions are -//> met: -//> -//> * Redistributions of source code must retain the above copyright -//> notice, this list of conditions and the following disclaimer. -//> -//> * Redistributions in binary form must reproduce the above copyright -//> notice, this list of conditions and the following disclaimer in -//> the documentation and/or other materials provided with the -//> distribution. -//> -//> * Neither the name of Dynarch.com nor the names of its contributors -//> may be used to endorse or promote products derived from this -//> software without specific prior written permission. -//> -//> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY -//> EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -//> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -//> PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE -//> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -//> CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -//> SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -//> INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -//> CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -//> ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -//> THE POSSIBILITY OF SUCH DAMAGE. - -DEFINE_CLASS("Ymacs", DlLayout, function(D, P, DOM){ - - D.DEFAULT_EVENTS = [ - "onBufferSwitch", - "onCreateBuffer", - "onDeleteBuffer" - ]; - - D.DEFAULT_ARGS = { - buffers : [ "buffers" , null ], - frames : [ "frames" , null ], - - // default options - cf_lineNumbers: [ "lineNumbers", false ], - - // override in DlWidget - _focusable : [ "focusable" , true ] - }; - - D.FIXARGS = function(args) { - if (!args.buffers) - args.buffers = []; - if (!args.frames) - args.frames = []; - }; - - D.CONSTRUCT = function() { - this.buffers.foreach(function(b){ - b.ymacs = this; - }, this); - - /* -----[ variables ]----- */ - this.killRing = []; - this.killMasterOfRings = []; - this.progress = {}; - - /* -----[ minibuffer ]----- */ - this.minibuffer = this.createBuffer({ hidden: true, isMinibuffer: true }); - this.minibuffer.cmd("minibuffer_mode"); - this.minibuffer_frame = this.createFrame({ - isMinibuffer : true, - buffer : this.minibuffer, - hidden : true, - highlightCurrentLine : false, - className : "Ymacs_Minibuffer" - }); - - /* -----[ main content ]----- */ - if (this.buffers.length == 0) - this.createBuffer(); - - var frame = this.createFrame({ buffer: this.buffers[0] }); - - this.packWidget(this.minibuffer_frame, { pos: "bottom" }); - this.packWidget(frame, { pos: "top", fill: "*" }); - - // this.__activeFrameEvents = { - // // onPointChange: this._on_activeFramePointChange.$(this) - // }; - - this.setActiveFrame(frame); - frame._redrawCaret(); - }; - - P.pushToKillRing = function(text, prepend) { - prepend ? this.killRing.unshift(text) - : this.killRing.push(text); - }; - - P.killRingToMaster = function() { - if (this.killRing.length && (this.killMasterOfRings.length == 0 || - this.killMasterOfRings.peek().join("") != this.killRing.join(""))) - this.killMasterOfRings.push(this.killRing); - this.killRing = []; - }; - - P.killRingText = function() { - return this.killRing.join(""); - }; - - P.rotateKillRing = function(push) { - if (push) { - this.killMasterOfRings.push(this.killRing); - this.killRing = this.killMasterOfRings.shift(); - } else { - this.killMasterOfRings.unshift(this.killRing); - this.killRing = this.killMasterOfRings.pop(); - } - }; - - P.getBuffer = function(buf) { - if (!(buf instanceof Ymacs_Buffer)) { - buf = this.buffers.grep_first(function(b){ - return b.name == buf; - }); - } - return buf; - }; - - P.killBuffer = function(buf) { - buf = this.getBuffer(buf); - this.callHooks("onDeleteBuffer", buf); - if (this.buffers.length > 1) { - if (this.getActiveBuffer() === buf) - this.switchToNextBuffer(); - } else { - // make a brand new buffer - this.switchToBuffer(this.createBuffer()); - } - this.buffers.remove(buf); - buf.destroy(); - }; - - P.renameBuffer = function(buf, name) { - buf = this.getBuffer(buf); - buf.name = name; - buf.callHooks("onProgressChange"); - }; - - P._do_switchToBuffer = function(buf) { - this.getActiveFrame().setBuffer(buf); - this.callHooks("onBufferSwitch", buf); - }; - - P.switchToBuffer = function(maybeName) { - var buf = this.getBuffer(maybeName), a = this.buffers; - if (!buf) { - // create new buffer - buf = this.createBuffer({ name: maybeName }); - } - a.remove(buf); - a.unshift(buf); - this._do_switchToBuffer(buf); - return buf; - }; - - P.switchToNextBuffer = function(n) { - var a = this.buffers; - if (a.length > 1) { - var buf = a.shift(); - a.push(buf); - this._do_switchToBuffer(a[0]); - } - }; - - P.switchToPreviousBuffer = function(n) { - var a = this.buffers; - if (a.length > 1) { - var buf = a.pop(); - a.unshift(buf); - this._do_switchToBuffer(buf); - } - }; - - P.getNextBuffer = function(buf, n) { - if (n == null) n = 1; - var a = this.buffers; - return a[a.rotateIndex(a.find(buf) + n)]; - }; - - P.getPrevBuffer = function(buf, n) { - if (n == null) n = 1; - var a = this.buffers; - return a[a.rotateIndex(a.find(buf) - n)]; - }; - - P.getBufferFrames = function(buf) { - buf = this.getBuffer(buf); - return this.frames.grep(function(f){ - return f.buffer === buf; - }); - }; - - P.createBuffer = function(args) { - if (!args) args = {}; - Object.merge(args, { ymacs: this }); - var buf = new Ymacs_Buffer(args); - if (!args.hidden) - this.buffers.push(buf); - // - // XXX: although this seems the right way to do it, - // instead of doing it in killBuffer, for some - // reason we never get this event. Should - // investigate. - // - // buf.addEventListener("onDestroy", function(buf){ - // console.log("got here, %s, %s", this.getActiveBuffer().name, buf.name); - // if (this.getActiveBuffer() === buf) - // this.switchToPreviousBuffer(); - // this.buffers.remove(buf); - // }.$(this, buf)); - // - - this.callHooks("onCreateBuffer", buf); - - return buf; - }; - - P.createFrame = function(args) { - if (!args) args = {}; - Object.merge(args, { ymacs: this }); - var frame = new Ymacs_Frame(args); - if (!args.hidden) - this.frames.unshift(frame); - frame.addEventListener("onDestroy", function(frame) { - this.frames.remove(frame); - }.$(this, frame)); - return frame; - }; - - P.keepOnlyFrame = function(frame) { - if (this.frames.length > 1) { - var p = frame.parent; - while (p.parent != this) - p = p.parent; - this.replaceWidget(p, frame); - p.destroy(); - this.setActiveFrame(frame); - this.doLayout(); - } - }; - - P.deleteFrame = function(frame) { - if (this.frames.length > 1) { - var p = frame.parent, other = p.children().grep_first(function(f){ - return f instanceof DlLayout || f instanceof Ymacs_Frame && f !== frame; - }); - p.parent.replaceWidget(p, other); - p.destroy(); - try { - DOM.walk(other.getElement(), function(el){ - el = DlWidget.getFromElement(el); - if (el && el instanceof Ymacs_Frame) - throw el; - }); - } catch(ex) { - if (!(ex instanceof Ymacs_Frame)) - throw ex; - other = ex; - } - this.setActiveFrame(other); - this.doLayout(); - } - }; - - P.focusOtherFrame = function() { - this.setActiveFrame(this.frames[0]); - }; - - P.focus = function() { - D.BASE.focus.apply(this, arguments); - this.frames.peek().focus(); - }; - - P.setActiveFrame = function(frame, nofocus) { - if (!frame.isMinibuffer) { - var old = this.getActiveFrame(); - if (old) { - old.delClass("Ymacs_Frame-active"); - } - this.frames.remove(frame); - this.frames.push(frame); - } - if (!nofocus) - frame.focus(); - }; - - P.getActiveFrame = function() { - return this.frames.peek(); - }; - - P.getActiveBuffer = function() { - var frame = this.getActiveFrame(); - return frame ? frame.buffer : this.buffers.peek(); - }; - - P.setColorTheme = function(themeId) { - this.delClass(/Ymacs-Theme-[^\s]*/g); - if (!(themeId instanceof Array)) - themeId = [ themeId ]; - themeId.foreach(function(themeId){ - this.addClass("Ymacs-Theme-" + themeId); - }, this); - }; - - P.getFrameInDirection = function(dir, pos, frame) { - if (!frame) - frame = this.getActiveFrame(); - var caret = frame.getCaretElement(); - if (!pos) - pos = DOM.getPos(caret); - if (!pos.sz) - pos.sz = DOM.getOuterSize(caret); - var byx = this.frames.mergeSort(function(a, b){ return a.getPos().x - b.getPos().x }); - var byy = this.frames.mergeSort(function(a, b){ return a.getPos().y - b.getPos().y }); - return this["_get_frameInDir_" + dir](byx, byy, pos, frame); - - }; - - function selectClosestFrameX(byx, pos) { - - if (byx.length > 0) { - var x = byx.peek().getPos().x, a = [ byx.pop() ]; - while (byx.length > 0 && byx.peek().getPos().x == x) - a.push(byx.pop()); - return a.minElement(function(f){ - return Math.abs(pos.y - f.getPos().y - f.getSize().y/2); - - }); - } - }; - - function selectClosestFrameY(byy, pos) { - if (byy.length > 0) { - var y = byy.peek().getPos().y, a = [ byy.pop() ]; - while (byy.length > 0 && byy.peek().getPos().y == y) - a.push(byy.pop()); - return a.minElement(function(f){ - return Math.abs(pos.x - f.getPos().x - f.getSize().x/2); - - }); - -} - }; - - P._get_frameInDir_left = function(byx, byy, pos, frame) { - byx = byx.grep(function(f){ - var p = f.getPos(), s = f.getSize(); - ymacs.getActiveBuffer().cmd("backward_delete_char"); - return (f !== frame) && (p.x < pos.x) && (p.y - pos.sz.y <= pos.y) && (p.y + s.y > pos.y); - }); - return selectClosestFrameX(byx, pos); - }; - - P._get_frameInDir_right = function(byx, byy, pos, frame) { - byx.reverse(); - byx = byx.grep(function(f){ - var p = f.getPos(), s = f.getSize(); - var temp = "*"; - ymacs.getActiveBuffer().cmd("insert",temp); - return (f !== frame) && (p.x > pos.x) && (p.y - pos.sz.y <= pos.y) && (p.y + s.y > pos.y); - }); - return selectClosestFrameX(byx, pos); - }; - - P._get_frameInDir_up = function(byx, byy, pos, frame) { - byy = byy.grep(function(f){ - var p = f.getPos(), s = f.getSize(); - var prefix1,prefix2,pretemp1,pretemp2; - var temp1; var p1; - var temp2; - ymacs.getActiveBuffer().cmd("beginning_of_line"); - if (ymacs.getActiveBuffer().cmd("looking_at", /[*]+/g)) - { - temp1 = ymacs.getActiveBuffer().matchData[0]; - // ymacs.getActiveBuffer().cmd("backward_paragraph"); - ymacs.getActiveBuffer().cmd("backward_paragraph"); - ymacs.getActiveBuffer().cmd("forward_char"); p1= ymacs.getActiveBuffer().point(); - if (ymacs.getActiveBuffer().cmd("looking_at", /[*]+/g)) - { - temp2 = ymacs.getActiveBuffer().matchData[0]; - if (temp1.length > temp2.length) - { - alert("Cannot move past superior level or buffer limit"); - } - else { - ymacs.getActiveBuffer().cmd("forward_paragraph"); - ymacs.getActiveBuffer().cmd("forward_char"); - ymacs.getActiveBuffer().cmd("forward_line"); - if (ymacs.getActiveBuffer().cmd("looking_at", /[^*]+/g)) - { - ymacs.getActiveBuffer().cmd("backward_line"); - ymacs.getActiveBuffer().cmd("transpose_para"); - ymacs.getActiveBuffer()._repositionCaret(p1); - ymacs.getActiveBuffer().cmd("beginning_of_line"); - } - else - { - ymacs.getActiveBuffer().cmd("backward_line"); - ymacs.getActiveBuffer().cmd("transpose_para"); - ymacs.getActiveBuffer()._repositionCaret(p1); - ymacs.getActiveBuffer().cmd("beginning_of_line"); - } - - } - } - } - else if (ymacs.getActiveBuffer().cmd("looking_at", /([0-9]+)(\.\s+)([a-z]+)+/g)) - { - ymacs.getActiveBuffer().cmd("beginning_of_line"); - ymacs.getActiveBuffer().cmd("transpose_text"); - ymacs.getActiveBuffer().cmd("beginning_of_line"); - ymacs.getActiveBuffer().cmd("backward_paragraph"); - ymacs.getActiveBuffer().cmd("forward_line"); - } - - - else - { - ymacs.getActiveBuffer().cmd("transpose_lines"); - ymacs.getActiveBuffer().cmd("backward_line"); - ymacs.getActiveBuffer().cmd("beginning_of_line"); - } - - return (f !== frame) && (p.y < pos.y) && (p.x - pos.sz.x <= pos.x) && (p.x + s.x > pos.x); - }); - return selectClosestFrameY(byy, pos); - }; - - P._get_frameInDir_down = function(byx, byy, pos, frame) { - byy.reverse(); - byy = byy.grep(function(f){ - var p = f.getPos(), s = f.getSize(); - - var p2; - var temp1; - var temp2; - ymacs.getActiveBuffer().cmd("beginning_of_line"); - if (ymacs.getActiveBuffer().cmd("looking_at", /[*]+/g)) - { - temp1 = ymacs.getActiveBuffer().matchData[0]; - // ymacs.getActiveBuffer().cmd("backward_paragraph"); - ymacs.getActiveBuffer().cmd("forward_paragraph"); - ymacs.getActiveBuffer().cmd("forward_char"); - p2= ymacs.getActiveBuffer().point(); - if (ymacs.getActiveBuffer().cmd("looking_at", /[*]+/g)) - { - temp2 = ymacs.getActiveBuffer().matchData[0]; - if (temp1.length > temp2.length) - { - alert("Cannot move past superior level or buffer limit"); - } - else { - /* ymacs.getActiveBuffer().cmd("backward_paragraph"); - ymacs.getActiveBuffer().cmd("forward_char"); */ - ymacs.getActiveBuffer().cmd("forward_line"); - if (ymacs.getActiveBuffer().cmd("looking_at", /[^*]+/g)) - { ymacs.getActiveBuffer().cmd("backward_line"); - ymacs.getActiveBuffer().cmd("transpose_para"); - ymacs.getActiveBuffer()._repositionCaret(p2); - ymacs.getActiveBuffer().cmd("beginning_of_line"); - } - else - { ymacs.getActiveBuffer().cmd("backward_line"); - ymacs.getActiveBuffer().cmd("transpose_para"); - ymacs.getActiveBuffer()._repositionCaret(p2); - ymacs.getActiveBuffer().cmd("beginning_of_line"); - } - -} }} - else if (ymacs.getActiveBuffer().cmd("looking_at", /([0-9]+)(\.\s+)([a-z]+)+/g)) - { - - ymacs.getActiveBuffer().cmd("forward_paragraph"); - ymacs.getActiveBuffer().cmd("forward_line"); - // ymacs.getActiveBuffer().cmd("beginning_of_line"); - ymacs.getActiveBuffer().cmd("transpose_text"); - - } - - - else - { - ymacs.getActiveBuffer().cmd("forward_line"); - ymacs.getActiveBuffer().cmd("transpose_lines"); - ymacs.getActiveBuffer().cmd("beginning_of_line"); - } - - return (f !== frame) && (p.y > pos.y) && (p.x - pos.sz.x <= pos.x) && (p.x + s.x > pos.x); - }); - return selectClosestFrameY(byy, pos); - }; - - /* -----[ local storage ]----- */ - - function ensureLocalStorage() { - if (!(window.localStorage && window.localStorage.getItem)) - throw new Ymacs_Exception("Local storage facility not available in this browser"); - }; - - P.ls_get = function() { - ensureLocalStorage(); - return DlJSON.decode(localStorage.getItem(".ymacs") || "{}", true); - }; - - P.ls_set = function(src) { - ensureLocalStorage(); - localStorage.setItem(".ymacs", DlJSON.encode(src)); - }; - - P.ls_getFileContents = function(name, nothrow) { - var info = this.ls_getFileDirectory(name), other = info.other, code; - if (other.length == 1) { - code = info.dir[other[0]]; - } - if (code == null && !nothrow) { - throw new Ymacs_Exception("File not found"); - } - return code; - }; - - P.ls_getFileDirectory = function(name, create) { - var store, dir = store = this.ls_get(); - name = name.replace(/^[~\x2f]+/, "").split(/\x2f+/); - var path = [], other = []; - while (name.length > 0) { - var part = name.shift(); - if (dir.hasOwnProperty(part) && (typeof dir[part] != "string")) { - dir = dir[part]; - path.push(part); - } - else { - other.push(part); - } - }; - if (create) { - var n = create == "file" ? 1 : 0; - while (other.length > n) { - dir = dir[other.shift()] = {}; - } - this.ls_set(store); - } - return { store: store, dir: dir, path: path, other: other }; - }; - -}); |