]> git.madduck.net Git - etc/vim.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

unindent 'else' after 'for' and 'try/except'
authorJohann Klähn <kljohann@gmail.com>
Fri, 3 Jan 2014 21:52:36 +0000 (22:52 +0100)
committerJohann Klähn <kljohann@gmail.com>
Sat, 4 Jan 2014 10:50:23 +0000 (11:50 +0100)
indent/python.vim
spec/indent/indent_spec.rb

index 6fb188903dd98a175755cc8c079890fc84564857..9b8e9b187bf96182e10097fcad61e59176520c2e 100644 (file)
@@ -19,7 +19,8 @@ setlocal indentkeys=!^F,o,O,<:>,0),0],0},=elif,=except
 
 let s:maxoff = 50
 let s:block_rules = {
 
 let s:maxoff = 50
 let s:block_rules = {
-  \ '^\s*\(elif\|else\)\>': ['if', 'elif'],
+  \ '^\s*elif\>': ['if', 'elif'],
+  \ '^\s*else\>': ['if', 'elif', 'for', 'try', 'except'],
   \ '^\s*except\>': ['try', 'except'],
   \ '^\s*finally\>': ['try', 'except', 'else']
   \ }
   \ '^\s*except\>': ['try', 'except'],
   \ '^\s*finally\>': ['try', 'except', 'else']
   \ }
index 4652ef9762ecb4302957ab480a959d6de61db78b..db7a49cea2a57fd3e20aa5555c634cf03d49bc2f 100644 (file)
@@ -100,6 +100,18 @@ shared_examples_for "vim" do
       end
   end
 
       end
   end
 
+  describe "when writing an 'else' block" do
+    it "aligns to the preceeding 'for' block" do
+      vim.feedkeys 'ifor x in "abc":\<CR>pass\<CR>else:'
+      indent.should == 0
+    end
+
+    it "aligns to the preceeding 'if' block" do
+      vim.feedkeys 'ifor x in "abc":\<CR>if True:\<CR>pass\<CR>else:'
+      indent.should == shiftwidth
+    end
+  end
+
   describe "when using parens and control statements" do
     it "avoids ambiguity by using extra indentation" do
       vim.feedkeys 'iif (111 and\<CR>'
   describe "when using parens and control statements" do
     it "avoids ambiguity by using extra indentation" do
       vim.feedkeys 'iif (111 and\<CR>'