Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/home/.vim/after/ftplugin/django_model_snippets.vim
diff options
context:
space:
mode:
Diffstat (limited to 'home/.vim/after/ftplugin/django_model_snippets.vim')
-rw-r--r--home/.vim/after/ftplugin/django_model_snippets.vim61
1 files changed, 61 insertions, 0 deletions
diff --git a/home/.vim/after/ftplugin/django_model_snippets.vim b/home/.vim/after/ftplugin/django_model_snippets.vim
new file mode 100644
index 0000000..cff1c0b
--- /dev/null
+++ b/home/.vim/after/ftplugin/django_model_snippets.vim
@@ -0,0 +1,61 @@
+if !exists('loaded_snippet') || &cp
+ finish
+endif
+
+function! Count(haystack, needle)
+ let counter = 0
+ let index = match(a:haystack, a:needle)
+ while index > -1
+ let counter = counter + 1
+ let index = match(a:haystack, a:needle, index+1)
+ endwhile
+ return counter
+endfunction
+
+function! DjangoArgList(count)
+ " This needs to be Python specific as print expects a
+ " tuple and an empty tuple looks like this (,) so we'll need to make a
+ " special case for it
+ let st = g:snip_start_tag
+ let et = g:snip_end_tag
+ if a:count == 0
+ return "()"
+ else
+ return '('.repeat(st.et.', ', a:count).')'
+ endif
+endfunction
+
+let st = g:snip_start_tag
+let et = g:snip_end_tag
+let cd = g:snip_elem_delim
+
+exec "Snippet mmodel class ".st.et."(models.Model):<CR>\"\"\"".st.et."\"\"\"<CR>".st.et." = ".st.et."<CR><CR>class Admin:<CR>pass<CR><CR>def __str__(self):<CR>return \"".st."s".et."\" % ".st."s:DjangoArgList(Count(@z, '%[^%]'))".et."<CR>".st.et
+exec "Snippet mauto models.AutoField(".st.et.")".st.et
+exec "Snippet mbool models.BooleanField()".st.et
+exec "Snippet mchar models.CharField(maxlength=".st."50".et.st.et.")".st.et
+exec "Snippet mcsi models.CommaSeparatedIntegerField(maxlength=".st."50".et.st.et.")".st.et
+exec "Snippet mdate models.DateField(".st.et.")".st.et
+exec "Snippet mdatet models.DateTimeField(".st.et.")".st.et
+exec "Snippet memail models.EmailField(".st.et.")".st.et
+exec "Snippet mfile models.FileField(upload_to=\"".st.et."\"".st.et.")".st.et
+exec "Snippet mfilep models.FilePathField(path=\"".st.et."\"".st.et.")".st.et
+exec "Snippet mfloat models.FloatField(max_digits=".st.et.", decimal_places=".st.et.")".st.et
+exec "Snippet mimage models.ImageField(".st.et.")".st.et
+exec "Snippet mint models.IntegerField(".st.et.")".st.et
+exec "Snippet mipadd models.IPAddressField(".st.et.")".st.et
+exec "Snippet mnull models.NullBooleanField()".st.et
+exec "Snippet mphone models.PhoneNumberField(".st.et.")".st.et
+exec "Snippet mpint models.PositiveIntegerField(".st.et.")".st.et
+exec "Snippet mspint models.PositiveSmallIntegerField(".st.et.")".st.et
+exec "Snippet mslug models.SlugField(".st.et.")".st.et
+exec "Snippet msint models.SmallIntegerField(".st.et.")".st.et
+exec "Snippet mtext models.TextField(".st.et.")".st.et
+exec "Snippet mtime models.TimeField(".st.et.")".st.et
+exec "Snippet murl models.URLField(verify_exists=".st."True".et.st.et.")".st.et
+exec "Snippet muss models.USStateField(".st.et.")".st.et
+exec "Snippet mxml models.XMLField(schema_path=\"".st.et."\"".st.et.")".st.et
+exec "Snippet mfor models.ForeignKey(".st.et.")".st.et
+exec "Snippet mm2o models.ForeignKey(".st.et.")".st.et
+exec "Snippet mm2m models.ManyToManyField(".st.et.")".st.et
+exec "Snippet mo2o models.OneToOneField(".st.et.")".st.et
+exec "Snippet mman models.Manager()".st.et