diff options
Diffstat (limited to 'gstudio/static/gstudio/js/Gnowmacs/src/js/.svn/text-base/ymacs-keymap-emacs.js.svn-base')
-rw-r--r-- | gstudio/static/gstudio/js/Gnowmacs/src/js/.svn/text-base/ymacs-keymap-emacs.js.svn-base | 264 |
1 files changed, 0 insertions, 264 deletions
diff --git a/gstudio/static/gstudio/js/Gnowmacs/src/js/.svn/text-base/ymacs-keymap-emacs.js.svn-base b/gstudio/static/gstudio/js/Gnowmacs/src/js/.svn/text-base/ymacs-keymap-emacs.js.svn-base deleted file mode 100644 index 64c9891b..00000000 --- a/gstudio/static/gstudio/js/Gnowmacs/src/js/.svn/text-base/ymacs-keymap-emacs.js.svn-base +++ /dev/null @@ -1,264 +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. - -// @require ymacs-keymap.js - -// This is the default keymap, as configured in -// Ymacs_Buffer::makeDefaultKeymap. It follows closely the standard -// Emacs keybindings, with some small deviations that match my taste -// (search for "my stuff" below). - -// It would be nice to have more options, such as an Eclipse keymap, -// or Visual Studio -- but I'm not familiar with any of them. -// Contributions welcome. - -// A keymap inherits from Ymacs_Keymap and should define its bindings -// in D.KEYS. They can also define a defaultHandler property to take -// whatever action they consider necessary -- for example the Isearch -// keymap will, by default, print the entered character in the -// minibuffer and trigger a search action. Isearch mode is almost -// completely defined in a keymap -- with the minor note that -// isearch_forward and isearch_backward are assigned below to key -// combinations; once pressed, they will push the Isearch keymap onto -// the buffer's keymap stack, and it will be used until isearch is -// ended. - -/* KEY DEFINITIONS. A key is generally defined in standard Emacs - notation, with the following notes: - - - it is possible to define multiple keys at once for the same - operation, by using the "&&" combination (separate with spaces - from the actual keys) - - - some special characters are named literally; their names contain - more than one character. The available names are defined in - DlKeyboard (see keyboard.js in DynarchLIB). Examples: - ARROW_RIGHT, PAGE_UP, etc. but also SPACE and DASH. - - Normally you would define commands using Ymacs_Buffer.newCommands - (see ymacs-commands.js) and specify the command name for key - bindings, but you can specify a function as well, if you want: - - "C-8": function() { - alert("You pressed CTRL-8"); - } - - It is advised to define commands for more than simple cases, for - two reasons: - - 1. they can be used for "non-interactive" calls too - - 2. the command name is saved in this.currentCommand / - this.previousCommand, which is useful in a number of cases. - -*/ - -DEFINE_SINGLETON("Ymacs_Keymap_Emacs", Ymacs_Keymap, function(D, P){ - - var TMPL_INFO = String.template( - "<table>", - "<tr><td style='text-align: right; font-weight: bold'>Char:</td><td><tt> $ch </tt></td></tr>", - "<tr><td style='text-align: right; font-weight: bold'>Char code:</td><td> $code / 0x$codeHex </td></tr>", - "<tr><td style='text-align: right; font-weight: bold'>Position:</td><td> $point </td></tr>", - "<tr><td style='text-align: right; font-weight: bold'>Mark:</td><td> $mark </td></tr>", - "<tr><td style='text-align: right; font-weight: bold'>Buffer size:</td><td> $sizeKB </td></tr>", - "</table>" - ); - - D.KEYS = { - // movement - "ARROW_UP && C-p" : "backward_line", - "ARROW_DOWN && C-n" : "forward_line", - "ARROW_LEFT && C-b" : "backward_char", - "ARROW_RIGHT && C-f" : "forward_char", - "HOME" : "beginning_of_indentation_or_line", - "END && C-e" : "end_of_line", - "C-c C-c" : "sub_bullet", - "C-a" : "beginning_of_line", - "C-HOME && M-<" : "beginning_of_buffer", - "C-END && M->" : "end_of_buffer", - "C-ARROW_RIGHT && M-f" : "forward_word", - "C-ARROW_LEFT && M-b" : "backward_word", - "C-ARROW_DOWN" : "forward_paragraph", - "C-ARROW_UP" : "backward_paragraph", - "C-l" : "recenter_top_bottom", - "PAGE_UP && M-v" : "scroll_up", - "PAGE_DOWN && C-v" : "scroll_down", - - // transient mark - "S-ARROW_UP && S-C-p" : "backward_line_mark", - "S-ARROW_DOWN && S-C-n" : "forward_line_mark", - "S-ARROW_LEFT && S-C-b" : "backward_char_mark", - "S-ARROW_RIGHT && S-C-f" : "forward_char_mark", - "S-C-ARROW_RIGHT && S-M-f" : "forward_word_mark", - "S-C-ARROW_LEFT && S-M-b" : "backward_word_mark", - "S-C-ARROW_DOWN" : "forward_paragraph_mark", - "S-C-ARROW_UP" : "backward_paragraph_mark", - "S-HOME" : "beginning_of_indentation_or_line_mark", - "S-C-a" : "beginning_of_line_mark", - "S-END" : "end_of_line_mark", - "S-C-HOME" : "beginning_of_buffer_mark", - "S-C-END" : "end_of_buffer_mark", - - // basic editing - "BACKSPACE" : "backward_delete_char", - "DELETE && C-d" : "delete_char", - "ENTER && C-m" : "newline", - "M-d && C-DELETE" : "kill_word", - "C-BACKSPACE && M-BACKSPACE && M-DELETE" : "backward_kill_word", - "C-k" : "kill_line", - "C-y && S-INSERT" : "yank", - "M-y" : "yank_pop", - "C-SPACE" : "set_mark_command", - "C-x C-x" : "exchange_point_and_mark", - "C-w" : "kill_region", - "M-t" : "transpose_words", - "C-t" : "transpose_chars", - "C-x C-t" : "transpose_lines", - "M-w" : "copy_region_as_kill", - "M-c" : "capitalize_word", - "M-u" : "upcase_word", - "M-l" : "downcase_word", - "F11" : "nuke_trailing_whitespace", - "TAB" : "indent_line", - "C-M-\\" : "indent_region", - "M-q" : "fill_paragraph", - "C-/ && C-x u && C-_ && C-z" : "undo", - "INSERT" : "overwrite_mode", - "M-s" : "center_line", - "M-/" : "dabbrev_expand", - "C-s" : "isearch_forward", - "C-r" : "isearch_backward", - "M-C-s" : "isearch_forward_regexp", - "M-C-r" : "isearch_backward_regexp", - "C-u" : "universal_argument", - "M-g" : "goto_line", - "C-x h" : "mark_whole_buffer", - "C-g" : "keyboard_quit", - - // vertical editing - "C-x r t" : "string_rectangle", - "C-x r c" : "clear_rectangle", - "C-x r k" : "kill_rectangle", - "C-x r y" : "yank_rectangle", - - // buffers - "C-x C-ARROW_RIGHT && C-x ARROW_RIGHT && C-TAB" : "next_buffer", - "C-x C-ARROW_LEFT && C-x ARROW_LEFT && C-S-TAB" : "previous_buffer", - "C-x b" : "switch_to_buffer", - "C-x k" : "kill_buffer", - - // frames - "C-x 0" : "delete_frame", - "C-x 1" : "delete_other_frames", - "C-x 2" : "split_frame_vertically", - "C-x 3" : "split_frame_horizontally", - "C-x o" : "other_frame", - "C-x l" : "toggle_line_numbers", - "C-c C-o" : "org-open-at-point", - //"C-c C-l" : "Links", - - // eval - "M-x" : "execute_extended_command", - - // necessary evil - "C-S-y" : "yank_from_operating_system", - "M-S-w" : "copy_for_operating_system", - "C-S-w" : "kill_for_operating_system", - - // my stuff, sorry if these have different meanings in the standard Emacs keys - "M-S-y" : "yank_shift", // that's the reverse of yank_shift - "C-c /" : "close_last_xml_tag", - "S-BACKSPACE" : "backward_delete_whitespace", - "S-DELETE" : "delete_whitespace", - "C-M-d" : "delete_region_or_line", - "M-ENTER" : "start_next_paragraph", - "M-S-q" : "fill_paragraph_no_prefix", - "C-M-|" : "cperl_lineup", - "C-F4" : "kill_buffer", - "M-ARROW_LEFT" : [ "windmove", "left" ], - "M-ARROW_RIGHT" : [ "windmove", "right" ], - "M-ARROW_UP" : [ "windmove", "up" ], - "M-ARROW_DOWN" : [ "windmove", "down" ], - - // others - "C-x =": function() { - var ch = this.charAt(), chname = ch; - if (ch == " ") - chname = "<SPACE>"; - else if (ch == "\n") - chname = "<NEWLINE>"; - else if (ch == "-") - chname = "<DASH>"; - - this.signalInfo(TMPL_INFO({ - ch : chname.htmlEscape(), - code : ch.charCodeAt(0), - codeHex : ch.charCodeAt().hex(), - point : this.point(), - mark : this.markMarker.getPosition(), - size : this.getCodeSize(), - sizeKB : this.getCodeSize().formatBytes(2) - }), true); - } - }; - - P.defaultHandler = [ "self_insert_command" ]; - -}); - -DEFINE_SINGLETON("Ymacs_Keymap_UniversalArgument", Ymacs_Keymap, function(D, P){ - - P.defaultHandler = [ Ymacs_Interactive("^", function(){ - var ev = this.interactiveEvent(), - ch = String.fromCharCode(ev.charCode), - prefix = this.getPrefixArg(true); - if (ev.charCode && (/^[0-9]$/.test(ch) || (ch === "-" && prefix === "")) && !ev.altKey && !ev.ctrlKey) { - prefix += ch; - this.setPrefixArg(prefix); - if (!this.isMinibuffer) { - this.whenMinibuffer(function(mb){ - mb.cmd("insert", " ", ch); - }); - } - return true; - } - this.popKeymap(Ymacs_Keymap_UniversalArgument()); - return false; - }) ]; - - P.attached = function(buffer) { - buffer.setPrefixArg(""); - }; - -}); |