f2193e4dee39

vim: update snipmate
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Wed, 27 Oct 2010 12:36:15 -0400
parents 126dedb1845d
children e5f8b8723bb9
branches/tags (none)
files vim/bundle/snipmate/README.markdown vim/bundle/snipmate/after/plugin/snipMate.vim vim/bundle/snipmate/autoload/snipMate.vim vim/bundle/snipmate/doc/snipMate.txt vim/bundle/snipmate/plugin-info.txt vim/bundle/snipmate/plugin/snipMate.vim vim/bundle/snipmate/syntax/snippet.vim vim/snippets/django.snippets

Changes

--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/snipmate/README.markdown	Wed Oct 27 12:36:15 2010 -0400
@@ -0,0 +1,5 @@
+Quickly install with:
+
+    git clone git://github.com/msanders/snipmate.vim.git
+	cd snipmate.vim
+	cp -R * ~/.vim
--- a/vim/bundle/snipmate/after/plugin/snipMate.vim	Wed Oct 27 12:24:44 2010 -0400
+++ b/vim/bundle/snipmate/after/plugin/snipMate.vim	Wed Oct 27 12:36:15 2010 -0400
@@ -5,6 +5,11 @@
 endif
 let s:did_snips_mappings = 1
 
+" This is put here in the 'after' directory in order for snipMate to override
+" other plugin mappings (e.g., supertab).
+"
+" You can safely adjust these mappings to your preferences (as explained in
+" :help snipMate-remap).
 ino <silent> <tab> <c-r>=TriggerSnippet()<cr>
 snor <silent> <tab> <esc>i<right><c-r>=TriggerSnippet()<cr>
 ino <silent> <s-tab> <c-r>=BackwardsSnippet()<cr>
--- a/vim/bundle/snipmate/autoload/snipMate.vim	Wed Oct 27 12:24:44 2010 -0400
+++ b/vim/bundle/snipmate/autoload/snipMate.vim	Wed Oct 27 12:36:15 2010 -0400
@@ -76,14 +76,16 @@
 fun s:ProcessSnippet(snip)
 	let snippet = a:snip
 	" Evaluate eval (`...`) expressions.
+	" Backquotes prefixed with a backslash "\" are ignored.
 	" Using a loop here instead of a regex fixes a bug with nested "\=".
 	if stridx(snippet, '`') != -1
-		while match(snippet, '`.\{-}`') != -1
-			let snippet = substitute(snippet, '`.\{-}`',
-						\ substitute(eval(matchstr(snippet, '`\zs.\{-}\ze`')),
-						\ "\n\\%$", '', ''), '')
+		while match(snippet, '\(^\|[^\\]\)`.\{-}[^\\]`') != -1
+			let snippet = substitute(snippet, '\(^\|[^\\]\)\zs`.\{-}[^\\]`\ze',
+		                \ substitute(eval(matchstr(snippet, '\(^\|[^\\]\)`\zs.\{-}[^\\]\ze`')),
+		                \ "\n\\%$", '', ''), '')
 		endw
 		let snippet = substitute(snippet, "\r", "\n", 'g')
+		let snippet = substitute(snippet, '\\`', '`', 'g')
 	endif
 
 	" Place all text after a colon in a tab stop after the tab stop
--- a/vim/bundle/snipmate/doc/snipMate.txt	Wed Oct 27 12:24:44 2010 -0400
+++ b/vim/bundle/snipmate/doc/snipMate.txt	Wed Oct 27 12:36:15 2010 -0400
@@ -1,7 +1,7 @@
 *snipMate.txt*  Plugin for using TextMate-style snippets in Vim.
 
 snipMate                                       *snippet* *snippets* *snipMate*
-Last Change: July 13, 2009
+Last Change: December 27, 2009
 
 |snipMate-description|   Description
 |snipMate-syntax|        Snippet syntax
@@ -10,6 +10,7 @@
 |snipMate-features|      Features
 |snipMate-disadvantages| Disadvantages to TextMate
 |snipMate-contact|       Contact
+|snipMate-license|       License
 
 For Vim version 7.0 or later.
 This plugin only works if 'compatible' is not set.
@@ -198,10 +199,20 @@
 multiple matches, it should look like this:
 'snippets/<filetype>/<trigger>/<name>.snippet' (see |multi_snip|).
 
-                                                            *ResetSnippets()*
-The ResetSnippets() function removes all snippets from memory. This is useful
-to put at the top of a snippet setup file for if you would like to |:source|
-it multiple times.
+ResetAllSnippets()                                       *ResetAllSnippets()*
+ResetAllSnippets() removes all snippets from memory. This is useful to put at
+the top of a snippet setup file for if you would like to |:source| it multiple
+times.
+
+ResetSnippets({filetype})                                   *ResetSnippets()*
+ResetSnippets() removes all snippets from memory for the given filetype.
+
+ReloadAllSnippets()                                     *ReloadAllSnippets()*
+ReloadAllSnippets() reloads all snippets for all filetypes. This is useful for
+testing and debugging.
+
+ReloadSnippets({filetype})                                 *ReloadSnippets()*
+ReloadSnippets() reloads all snippets for the given filetype.
 
                                              *list-snippets* *i_CTRL-R_<Tab>*
 If you would like to see what snippets are available, simply type <c-r><tab>
@@ -282,5 +293,30 @@
 I greatly appreciate any suggestions or improvements offered for the script.
 
 ==============================================================================
+LICENSE                                                     *snipMate-license*
+
+snipMate is released under the MIT license:
+
+Copyright 2009-2010 Michael Sanders. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+The software is provided "as is", without warranty of any kind, express or
+implied, including but not limited to the warranties of merchantability,
+fitness for a particular purpose and noninfringement. In no event shall the
+authors or copyright holders be liable for any claim, damages or other
+liability, whether in an action of contract, tort or otherwise, arising from,
+out of or in connection with the software or the use or other dealings in the
+software.
+
+==============================================================================
 
 vim:tw=78:ts=8:ft=help:norl:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/snipmate/plugin-info.txt	Wed Oct 27 12:36:15 2010 -0400
@@ -0,0 +1,8 @@
+{
+  "name" : "snipmate",
+  "version" : "dev",
+  "author" : "Michael Sanders <msanders42@gmail.com>",
+  "repository" : {"type": "git", "url": "git://github.com/msanders/snipmate.vim.git"},
+  "dependencies" : {},
+  "description" : "snipMate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim."
+}
--- a/vim/bundle/snipmate/plugin/snipMate.vim	Wed Oct 27 12:24:44 2010 -0400
+++ b/vim/bundle/snipmate/plugin/snipMate.vim	Wed Oct 27 12:36:15 2010 -0400
@@ -1,7 +1,6 @@
 " File:          snipMate.vim
 " Author:        Michael Sanders
-" Last Updated:  July 13, 2009
-" Version:       0.83
+" Version:       0.84
 " Description:   snipMate.vim implements some of TextMate's snippets features in
 "                Vim. A snippet is a piece of often-typed text that you can
 "                insert into your document using a trigger word followed by a "<tab>".
@@ -92,10 +91,35 @@
 	endfor
 endf
 
-fun! ResetSnippets()
+" Reset snippets for filetype.
+fun! ResetSnippets(ft)
+	let ft = a:ft == '' ? '_' : a:ft
+	for dict in [s:snippets, s:multi_snips, g:did_ft]
+		if has_key(dict, ft)
+			unlet dict[ft]
+		endif
+	endfor
+endf
+
+" Reset snippets for all filetypes.
+fun! ResetAllSnippets()
 	let s:snippets = {} | let s:multi_snips = {} | let g:did_ft = {}
 endf
 
+" Reload snippets for filetype.
+fun! ReloadSnippets(ft)
+	let ft = a:ft == '' ? '_' : a:ft
+	call ResetSnippets(ft)
+	call GetSnippets(g:snippets_dir, ft)
+endf
+
+" Reload snippets for all filetypes.
+fun! ReloadAllSnippets()
+	for ft in keys(g:did_ft)
+		call ReloadSnippets(ft)
+	endfor
+endf
+
 let g:did_ft = {}
 fun! GetSnippets(dir, filetypes)
 	for ft in split(a:filetypes, '\.')
@@ -148,7 +172,7 @@
 		" the snippet.
 		if snippet != ''
 			let col = col('.') - len(trigger)
-			sil exe 's/\V'.escape(trigger, '/.').'\%#//'
+			sil exe 's/\V'.escape(trigger, '/\.').'\%#//'
 			return snipMate#expandSnip(snippet, col)
 		endif
 	endfor
--- a/vim/bundle/snipmate/syntax/snippet.vim	Wed Oct 27 12:24:44 2010 -0400
+++ b/vim/bundle/snipmate/syntax/snippet.vim	Wed Oct 27 12:36:15 2010 -0400
@@ -3,7 +3,7 @@
 syn match snipComment '^#.*'
 syn match placeHolder '\${\d\+\(:.\{-}\)\=}' contains=snipCommand
 syn match tabStop '\$\d\+'
-syn match snipCommand '`.\{-}`'
+syn match snipCommand '[^\\]`.\{-}`'
 syn match snippet '^snippet.*' transparent contains=multiSnipText,snipKeyword
 syn match multiSnipText '\S\+ \zs.*' contained
 syn match snipKeyword '^snippet'me=s+8 contained
--- a/vim/snippets/django.snippets	Wed Oct 27 12:24:44 2010 -0400
+++ b/vim/snippets/django.snippets	Wed Oct 27 12:36:15 2010 -0400
@@ -69,6 +69,12 @@
 		"""${2:docstring}"""
 		${3}
 
+snippet manager
+	class $1:{ModelName}Manager(models.Manager):
+		def get_query_set(self):
+			return super($1Manager, self).get_query_set()
+		${3}
+
 snippet model
 	class ${1:ModelName}(models.Model):
 		"""${2:docstring}"""