cd7424ed2e9d

Moar.
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Fri, 30 Mar 2012 11:08:33 -0400
parents 2b78b064b415
children bd0c0d9e1474
branches/tags (none)
files .hgsub .hgsubstate dotjs/github.com.js dotjs/unisubs.sifterapp.com.js keyremap4macbook/private.xml vim/.vimrc vim/after/indent/html.vim vim/after/syntax/python.vim vim/bundle/django-custom/syntax/django.vim vim/plugin/autoclose.vim

Changes

--- a/.hgsub	Wed Mar 28 10:18:06 2012 -0400
+++ b/.hgsub	Fri Mar 30 11:08:33 2012 -0400
@@ -23,11 +23,11 @@
 vim/bundle/indent-object = [git]git://github.com/michaeljsmith/vim-indent-object.git
 vim/bundle/fugitive = [git]git://github.com/tpope/vim-fugitive.git
 vim/bundle/nosecompiler = [git]git://github.com/olethanh/Vim-nosecompiler.git
-vim/bundle/rainbow-parentheses = [git]git://github.com/kien/rainbow_parentheses.vim.git
 vim/bundle/AnsiEsc.vim = [git]git://github.com/vim-scripts/AnsiEsc.vim.git
 vim/bundle/powerline = [git]git://github.com/Lokaltog/vim-powerline.git
 vim/bundle/yankring = [git]git://github.com/vim-scripts/YankRing.vim.git
 vim/bundle/badwolf = [hg]https://bitbucket.org/sjl/badwolf/
 vim/bundle/tslime = [git]git://github.com/sjl/tslime.vim.git
+vim/bundle/smartinput = [git]git://github.com/kana/vim-smartinput.git
 
 keymando/Plugins/abbrev = [git]git://github.com/keymando/abbrev.git
--- a/.hgsubstate	Wed Mar 28 10:18:06 2012 -0400
+++ b/.hgsubstate	Fri Mar 30 11:08:33 2012 -0400
@@ -15,8 +15,8 @@
 b7889db57c90824ff5092da4fdde9e05689f24fa vim/bundle/nosecompiler
 99277d9eed97a59cacc1db8c1dece2bcfd96d877 vim/bundle/powerline
 1d60548ce9543c462a1fc36830c5e7ec33a57b78 vim/bundle/python-mode
-45e270d2001d07165d24cf8e6936fdcba5724cfb vim/bundle/rainbow-parentheses
 86228e5aaf622c6386ab4e98c3bca144ca333ba1 vim/bundle/slimv
+c01d81a697de5e28452f32762a9c8fbe3eac0496 vim/bundle/smartinput
 c6197a10ace82e0fe0c08e5cf5c017b7069a978e vim/bundle/sparkup
 6eec2c131213850ed65fd6da494dfd1a0d620a4e vim/bundle/strftimedammit
 5a38ce8b600e11941f695523363fe04e6478549a vim/bundle/supertab
--- a/dotjs/github.com.js	Wed Mar 28 10:18:06 2012 -0400
+++ b/dotjs/github.com.js	Fri Mar 30 11:08:33 2012 -0400
@@ -1,40 +1,44 @@
 $(function() {
-    $('.site').prepend('<button id="toggle-merges-button">Review</button>');
-    $('#toggle-merges-button').css('position', 'absolute').css('top', '10px').css('left', '10px');
+    if ($('body').hasClass('page-commits')) {
+
+        $('ul.pagehead-actions').prepend('<li><a class="minibutton btn-watch" href="#" id="toggle-merges-button"><span><span class="icon"></span><span class="text">Review</span></span></a></li>');
 
-    $('#toggle-merges-button').toggle(function() {
-        $('li.commit').each(function() {
-            var t = $(this).find('a.message').text().substring(0, 5);
-            if (t === 'Merge' || t === 'merge') {
-                $(this).hide();
-                return;
-            }
-            t = $(this).find('a.message').text().substring(0, 24);
-            if (t === 'Updated integration repo' || t === 'updated integration repo') {
-                $(this).hide();
-                return;
-            }
-            t = $(this).find('a.message').text().substring(0, 23);
-            if (t === 'Update integration repo' || t === 'update integration repo') {
-                $(this).hide();
-                return;
-            }
-            t = $(this).find('a.message').text().substring(0, 26);
-            if (t === 'Update unisubs-integration' || t === 'update unisubs-integration') {
-                $(this).hide();
-                return;
-            }
-            t = $(this).find('a.message').text().substring(0, 65);
-            if (t === 'Updated transiflex translations -- through update_translations.sh') {
-                $(this).hide();
-                return;
-            }
-            if ($(this).find('span.author-name').text() === 'sjl') {
-                $(this).hide();
-                return;
-            }
+        $('#toggle-merges-button').toggle(function() {
+            $('li.commit').each(function() {
+                var t = $(this).find('a.message').text().substring(0, 5);
+                if (t === 'Merge' || t === 'merge') {
+                    $(this).hide();
+                    return;
+                }
+                t = $(this).find('a.message').text().substring(0, 24);
+                if (t === 'Updated integration repo' || t === 'updated integration repo') {
+                    $(this).hide();
+                    return;
+                }
+                t = $(this).find('a.message').text().substring(0, 23);
+                if (t === 'Update integration repo' || t === 'update integration repo') {
+                    $(this).hide();
+                    return;
+                }
+                t = $(this).find('a.message').text().substring(0, 26);
+                if (t === 'Update unisubs-integration' || t === 'update unisubs-integration') {
+                    $(this).hide();
+                    return;
+                }
+                t = $(this).find('a.message').text().substring(0, 65);
+                if (t === 'Updated transiflex translations -- through update_translations.sh') {
+                    $(this).hide();
+                    return;
+                }
+                if ($(this).find('span.author-name').text() === 'sjl') {
+                    $(this).hide();
+                    return;
+                }
+            });
+            $('span.text', this).text('Stop reviewing');
+        }, function() {
+            $('li.commit').show();
+            $('span.text', this).text('Review');
         });
-    }, function() {
-        $('li.commit').show();
-    });
+    }
 });
--- a/dotjs/unisubs.sifterapp.com.js	Wed Mar 28 10:18:06 2012 -0400
+++ b/dotjs/unisubs.sifterapp.com.js	Fri Mar 30 11:08:33 2012 -0400
@@ -1,3 +1,98 @@
+/*
+ * jQuery Hotkeys Plugin
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Based upon the plugin by Tzury Bar Yochay:
+ * http://github.com/tzuryby/hotkeys
+ *
+ * Original idea by:
+ * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
+*/
+(function(jQuery){
+	jQuery.hotkeys = {
+		version: "0.8",
+
+		specialKeys: {
+			8: "backspace", 9: "tab", 13: "return", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause",
+			20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home",
+			37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del", 
+			96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7",
+			104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/", 
+			112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8", 
+			120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scroll", 191: "/", 224: "meta"
+		},
+	
+		shiftNums: {
+			"`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&", 
+			"8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ": ", "'": "\"", ",": "<", 
+			".": ">",  "/": "?",  "\\": "|"
+		}
+	};
+	function keyHandler( handleObj ) {
+		// Only care when a possible input has been specified
+		if ( typeof handleObj.data !== "string" ) {
+			return;
+		}
+		
+		var origHandler = handleObj.handler,
+			keys = handleObj.data.toLowerCase().split(" ");
+	
+		handleObj.handler = function( event ) {
+			// Don't fire in text-accepting inputs that we didn't directly bind to
+			if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
+				 event.target.type === "text") ) {
+				return;
+			}
+			
+			// Keypress represents characters, not special keys
+			var special = event.type !== "keypress" && jQuery.hotkeys.specialKeys[ event.which ],
+				character = String.fromCharCode( event.which ).toLowerCase(),
+				key, modif = "", possible = {};
+
+			// check combinations (alt|ctrl|shift+anything)
+			if ( event.altKey && special !== "alt" ) {
+				modif += "alt+";
+			}
+
+			if ( event.ctrlKey && special !== "ctrl" ) {
+				modif += "ctrl+";
+			}
+			
+			// TODO: Need to make sure this works consistently across platforms
+			if ( event.metaKey && !event.ctrlKey && special !== "meta" ) {
+				modif += "meta+";
+			}
+
+			if ( event.shiftKey && special !== "shift" ) {
+				modif += "shift+";
+			}
+
+			if ( special ) {
+				possible[ modif + special ] = true;
+
+			} else {
+				possible[ modif + character ] = true;
+				possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;
+
+				// "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
+				if ( modif === "shift+" ) {
+					possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;
+				}
+			}
+
+			for ( var i = 0, l = keys.length; i < l; i++ ) {
+				if ( possible[ keys[i] ] ) {
+					return origHandler.apply( this, arguments );
+				}
+			}
+		};
+	}
+	jQuery.each([ "keydown", "keyup", "keypress" ], function() {
+		jQuery.event.special[ this ] = { add: keyHandler };
+	});
+})($);
+
 $(function() {
     $('ul.state li.priority').each(function(idx, el) {
         $(el).closest('.issue').find('h2').append(
@@ -6,25 +101,38 @@
         $(el).remove();
     });
 
-    $('body').keydown(function(e) {
+    $tickets = $('tr.issue td.subject a');
+
+    if ($tickets.length) {
+        for (var i=0; i < 9; i++) {
+            var $t = $tickets.eq(i);
 
-        $tickets = $('tr.issue td.subject a');
+            $t.prepend('<span class="keyshortcut">' + (i + 1) + '</span>');
+            $t.css('position', 'relative');
+            $('span.keyshortcut', $t)
+                .css('position', 'absolute')
+                .css('color', '#D3DEE7')
+                .css('left', '-90px')
+                .css('font-weight', 'bold')
+                .css('top', '-1px')
+        }
 
-        cmds = {
-            '49': function() {
-                document.location = $tickets.eq(0).attr('href');
-            },
-            '50': function() {
-                document.location = $tickets.eq(1).attr('href');
-            },
-            '51': function() {
-                document.location = $tickets.eq(2).attr('href');
-            }
+        $d = $(document);
+
+        $d.bind('keydown', '1', function(e) { go(e); });
+        $d.bind('keydown', '2', function(e) { go(e); });
+        $d.bind('keydown', '3', function(e) { go(e); });
+        $d.bind('keydown', '4', function(e) { go(e); });
+        $d.bind('keydown', '5', function(e) { go(e); });
+        $d.bind('keydown', '6', function(e) { go(e); });
+        $d.bind('keydown', '7', function(e) { go(e); });
+        $d.bind('keydown', '8', function(e) { go(e); });
+        $d.bind('keydown', '9', function(e) { go(e); });
+
+        var go = function(e) {
+            var num = parseInt(e.data, 0) - 1;
+            document.location = $tickets.eq(num).attr('href');
         };
-
-        if (typeof cmds[e.keyCode] === 'function') {
-            cmds[e.keyCode]();
-        }
-    });
+    }
 });
 
--- a/keyremap4macbook/private.xml	Wed Mar 28 10:18:06 2012 -0400
+++ b/keyremap4macbook/private.xml	Fri Mar 30 11:08:33 2012 -0400
@@ -18,11 +18,23 @@
 
             <identifier>private.shifts_to_parens</identifier>
 
+            <!-- This is the basic mapping. -->
             <autogen>--KeyOverlaidModifier-- KeyCode::SHIFT_R, ModifierFlag::SHIFT_R | ModifierFlag::NONE, KeyCode::SHIFT_R, KeyCode::KEY_0, ModifierFlag::SHIFT_L</autogen>
-            <autogen>--KeyOverlaidModifier-- KeyCode::SHIFT_L, ModifierFlag::SHIFT_L | ModifierFlag::NONE,    KeyCode::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_R</autogen>
+            <autogen>--KeyOverlaidModifier-- KeyCode::SHIFT_L, ModifierFlag::SHIFT_L | ModifierFlag::NONE, KeyCode::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_R</autogen>
 
+            <!--
+                Remap the "rolls" of () and )( because it's too easy to hit one
+                before finishing the other, and there's no other reason to be
+                pressing both shift keys at once anyway
+            -->
             <autogen>--KeyToKey-- KeyCode::SHIFT_L, ModifierFlag::SHIFT_R, KeyCode::KEY_0, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_L</autogen>
             <autogen>--KeyToKey-- KeyCode::SHIFT_R, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_L, KeyCode::KEY_0, ModifierFlag::SHIFT_L</autogen>
+
+            <!--
+                Remap Rshift+Space to ') ', because when typing an end paren and
+                then a space I tend to hit space before I let go of rshift.
+            -->
+            <autogen>--KeyToKey-- KeyCode::SPACE, ModifierFlag::SHIFT_R, KeyCode::KEY_0, ModifierFlag::SHIFT_L, KeyCode::SPACE</autogen>
         </item>
     </list>
 
--- a/vim/.vimrc	Wed Mar 28 10:18:06 2012 -0400
+++ b/vim/.vimrc	Fri Mar 30 11:08:33 2012 -0400
@@ -494,9 +494,6 @@
 " cursor happens to be.
 nnoremap zO zCzO
 
-" Use ,z to "focus" the current fold.
-nnoremap <leader>z zMzvzz
-
 function! MyFoldText() " {{{
     let line = getline(v:foldstart)
 
@@ -679,6 +676,8 @@
 " }}}
 " HTML and HTMLDjango {{{
 
+let g:html_indent_tags = ['p', 'li']
+
 augroup ft_html
     au!
 
@@ -1102,31 +1101,6 @@
 let g:pymode_rope_always_show_complete_menu = 0
 
 " }}}
-" Rainbox Parentheses {{{
-
-nnoremap <leader>R :RainbowParenthesesToggle<cr>
-let g:rbpt_colorpairs = [
-    \ ['brown',       'RoyalBlue3'],
-    \ ['Darkblue',    'SeaGreen3'],
-    \ ['darkgray',    'DarkOrchid3'],
-    \ ['darkgreen',   'firebrick3'],
-    \ ['darkcyan',    'RoyalBlue3'],
-    \ ['darkred',     'SeaGreen3'],
-    \ ['darkmagenta', 'DarkOrchid3'],
-    \ ['brown',       'firebrick3'],
-    \ ['gray',        'RoyalBlue3'],
-    \ ['black',       'SeaGreen3'],
-    \ ['darkmagenta', 'DarkOrchid3'],
-    \ ['Darkblue',    'firebrick3'],
-    \ ['darkgreen',   'RoyalBlue3'],
-    \ ['darkcyan',    'SeaGreen3'],
-    \ ['darkred',     'DarkOrchid3'],
-    \ ['red',         'firebrick3'],
-    \ ]
-let g:rbpt_max = 16
-
-
-" }}}
 " Scratch {{{
 
 command! ScratchToggle call ScratchToggle()
--- a/vim/after/indent/html.vim	Wed Mar 28 10:18:06 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-let g:html_indent_tags .= '\|p'
-let g:html_indent_tags .= '\|li'
-
--- a/vim/after/syntax/python.vim	Wed Mar 28 10:18:06 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-RainbowParenthesesLoadSquare
-RainbowParenthesesLoadBraces
-RainbowParenthesesLoadRound
-
--- a/vim/bundle/django-custom/syntax/django.vim	Wed Mar 28 10:18:06 2012 -0400
+++ b/vim/bundle/django-custom/syntax/django.vim	Fri Mar 30 11:08:33 2012 -0400
@@ -94,5 +94,3 @@
 endif
 
 let b:current_syntax = "django"
-
-source $HOME/.vim/bundle/html5/syntax/html/html5.vim
--- a/vim/plugin/autoclose.vim	Wed Mar 28 10:18:06 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-" File: autoclose.vim
-" Author: Karl Guertin <grayrest@gr.ayre.st>
-" Version: 1.2
-" Last Modified: June 18, 2009
-" Description: AutoClose, closes what's opened.
-"
-"    This plugin closes opened parenthesis, braces, brackets, quotes as you
-"    type them. As of 1.1, if you type the open brace twice ({{), the closing
-"    brace will be pushed down to a new line.
-"
-"    You can enable or disable this plugin by typing \a (or <Leader>a if you
-"    changed your Leader char). You can define your own mapping and will need
-"    to do so if you have something else mapped to \a since this plugin won't
-"    clobber your mapping. Here's how to map \x:
-"
-"       nmap <Leader>x <Plug>ToggleAutoCloseMappings
-"
-"    You'll also probably want to know you can type <C-V> (<C-Q> if mswin is
-"    set) and the next character you type doesn't have mappings applied. This
-"    is useful when you want to insert only an opening paren or something.
-"
-"    NOTE: If you're using this on a terminal and your arrow keys are broken,
-"          be sure to :set ttimeout and :set ttimeoutlen=100
-"
-"    Version Changes: --------------------------------------------------{{{2
-"    1.2   -- Fixed some edge cases where double the closing characters are
-"             entered when exiting insert mode.
-"             Finally (!) reproduced the arrow keys problem other people were
-"             running into and fixed.
-"             Typing a closing character will now behave consistently (jump
-"             out) regardless of the plugin's internal state.
-"
-"             As a part of the close fix, I've opted to not try tracking the
-"             position of the closing characters through all the things that
-"             could be done with them, so arrowing/jumping around and not
-"             winding up back where you started will cause the input to not be
-"             repeatable.
-"             June 18, 2009
-"    1.1.2 -- Fixed a mapping typo and caught a double brace problem,
-"             September 20, 2007
-"    1.1.1 -- Missed a bug in 1.1, September 19, 2007
-"    1.1   -- When not inserting at the end, previous version would eat chars
-"             at end of line, added double open->newline, September 19, 2007
-"    1.0.1 -- Cruft from other parts of the mapping, knew I shouldn't have
-"             released the first as 1.0, April 3, 2007
-
-" Setup -----------------------------------------------------{{{2
-if exists('g:autoclose_loaded') || &cp
-    finish
-endif
-
-
-let g:autoclose_loaded = 1
-let s:cotstate = &completeopt
-
-if !exists('g:autoclose_on')
-    let g:autoclose_on = 1
-endif
-
-" (Toggle) Mappings -----------------------------{{{1
-"
-nmap <Plug>ToggleAutoCloseMappings :call <SID>ToggleAutoCloseMappings()<CR>
-if (!hasmapto( '<Plug>ToggleAutoCloseMappings', 'n' ))
-    nmap <unique> <Leader>a <Plug>ToggleAutoCloseMappings
-endif
-fun <SID>ToggleAutoCloseMappings() " --- {{{2
-    if g:autoclose_on
-        iunmap "
-        iunmap '
-        iunmap (
-        iunmap )
-        iunmap [
-        iunmap ]
-        iunmap {
-        iunmap }
-        iunmap <BS>
-        iunmap <C-h>
-        let g:autoclose_on = 0
-        echo "AutoClose Off"
-    else
-        inoremap <silent> " <C-R>=<SID>QuoteDelim('"')<CR>
-        inoremap <silent> ' <C-R>=match(getline('.')[col('.') - 2],'\w') == 0 && getline('.')[col('.')-1] != "'" ? "'" : <SID>QuoteDelim("'")<CR>
-        inoremap <silent> ( (<C-R>=<SID>CloseStackPush(')')<CR>
-        inoremap ) <C-R>=<SID>CloseStackPop(')')<CR>
-        inoremap <silent> [ [<C-R>=<SID>CloseStackPush(']')<CR>
-        inoremap <silent> ] <C-R>=<SID>CloseStackPop(']')<CR>
-        "inoremap <silent> { {<C-R>=<SID>CloseStackPush('}')<CR>
-        inoremap <silent> { <C-R>=<SID>OpenSpecial('{','}')<CR>
-        inoremap <silent> } <C-R>=<SID>CloseStackPop('}')<CR>
-        inoremap <silent> <BS> <C-R>=<SID>OpenCloseBackspace()<CR>
-        inoremap <silent> <C-h> <C-R>=<SID>OpenCloseBackspace()<CR>
-        "the following simply creates an ambiguous mapping so vim fully
-        "processes the escape sequence for terminal keys, see 'ttimeout' for a
-        "rough explanation, this just forces it to work
-        if &term[:4] == "xterm"
-            inoremap <silent> <C-[>OC <RIGHT>
-        endif
-        let g:autoclose_on = 1
-        if a:0 == 0
-            "this if is so this message doesn't show up at load
-            echo "AutoClose On"
-        endif
-    endif
-endf
-let s:closeStack = []
-
-" AutoClose Utilities -----------------------------------------{{{1
-function <SID>OpenSpecial(ochar,cchar) " ---{{{2
-    let line = getline('.')
-    let col = col('.') - 2
-    "echom string(col).':'.line[:(col)].'|'.line[(col+1):]
-    if a:ochar == line[(col)] && a:cchar == line[(col+1)] "&& strlen(line) - (col) == 2
-        "echom string(s:closeStack)
-        while len(s:closeStack) > 0
-            call remove(s:closeStack, 0)
-        endwhile
-        return "\<esc>a\<CR>;\<CR>".a:cchar."\<esc>\"_xk$\"_xa"
-    endif
-    return a:ochar.<SID>CloseStackPush(a:cchar)
-endfunction
-
-function <SID>CloseStackPush(char) " ---{{{2
-    "echom "push"
-    let line = getline('.')
-    let col = col('.')-2
-    if (col) < 0
-        call setline('.',a:char.line)
-    else
-        "echom string(col).':'.line[:(col)].'|'.line[(col+1):]
-        call setline('.',line[:(col)].a:char.line[(col+1):])
-    endif
-    call insert(s:closeStack, a:char)
-    "echom join(s:closeStack,'').' -- '.a:char
-    return ''
-endf
-
-function <SID>JumpOut(char) " ----------{{{2
-    let column = col('.') - 1
-    let line = getline('.')
-    let mcol = match(line[column :], a:char)
-    if a:char != '' &&  mcol >= 0
-        "Yeah, this is ugly but vim actually requires each to be special
-        "cased to avoid screen flashes/not doing the right thing.
-        echom len(line).' '.(column+mcol)
-        if line[column] == a:char
-            return "\<Right>"
-        elseif column+mcol == len(line)-1
-            return "\<C-O>A"
-        else
-            return "\<C-O>f".a:char."\<Right>"
-        endif
-    else
-        return a:char
-    endif
-endf
-function <SID>CloseStackPop(char) " ---{{{2
-    "echom "pop"
-    if(a:char == '')
-        pclose
-    endif
-    if len(s:closeStack) == 0
-        return <SID>JumpOut(a:char)
-    endif
-    let column = col('.') - 1
-    let line = getline('.')
-    let popped = ''
-    let lastpop = ''
-    "echom join(s:closeStack,'').' || '.lastpop
-    while len(s:closeStack) > 0 && ((lastpop == '' && popped == '') || lastpop != a:char)
-        let lastpop = remove(s:closeStack,0)
-        let popped .= lastpop
-        "echom join(s:closeStack,'').' || '.lastpop.' || '.popped
-    endwhile
-    "echom ' --> '.popped
-    if line[column : column+strlen(popped)-1] != popped
-        return <SID>JumpOut('')
-    endif
-    if column > 0
-        call setline('.',line[:column-1].line[(column+strlen(popped)):])
-    else
-        call setline('.','')
-    endif
-    return popped
-endf
-
-function <SID>QuoteDelim(char) " ---{{{2
-  let line = getline('.')
-  let col = col('.')
-  if line[col - 2] == "\\"
-    "Inserting a quoted quotation mark into the string
-    return a:char
-  elseif line[col - 1] == a:char
-    "Escaping out of the string
-    return "\<C-R>=".s:SID()."CloseStackPop(\"\\".a:char."\")\<CR>"
-  else
-    "Starting a string
-    return a:char."\<C-R>=".s:SID()."CloseStackPush(\"\\".a:char."\")\<CR>"
-  endif
-endf
-
-" The strings returned from QuoteDelim aren't in scope for <SID>, so I
-" have to fake it using this function (from the Vim help, but tweaked)
-function s:SID()
-    return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSID$')
-endfun
-
-function <SID>OpenCloseBackspace() " ---{{{2
-    "if pumvisible()
-    "    pclose
-    "    call <SID>StopOmni()
-    "    return "\<C-E>"
-    "else
-        let curline = getline('.')
-        let curpos = col('.')
-        let curletter = curline[curpos-1]
-        let prevletter = curline[curpos-2]
-        if (prevletter == '"' && curletter == '"') ||
-\          (prevletter == "'" && curletter == "'") ||
-\          (prevletter == "(" && curletter == ")") ||
-\          (prevletter == "{" && curletter == "}") ||
-\          (prevletter == "[" && curletter == "]")
-            if len(s:closeStack) > 0
-                call remove(s:closeStack,0)
-            endif
-            return "\<Delete>\<BS>"
-        else
-            return "\<BS>"
-        endif
-    "endif
-endf
-
-" Initialization ----------------------------------------{{{1
-if g:autoclose_on
-    let g:autoclose_on = 0
-    silent call <SID>ToggleAutoCloseMappings()
-endif
-" vim: set ft=vim ff=unix et sw=4 ts=4 :
-" vim600: set foldmethod=marker foldmarker={{{,}}} foldlevel=1 :