]> 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:

Make fix work even with of preceeding empty lines.
authorHassan Kibirige <has2k1@gmail.com>
Sat, 22 Mar 2014 21:55:20 +0000 (16:55 -0500)
committerHassan Kibirige <has2k1@gmail.com>
Sat, 22 Mar 2014 21:55:20 +0000 (16:55 -0500)
Previous commit was not robust enough to catch the
same issue if there were empty lines between the
current line the previous block.

indent/python.vim
spec/indent/indent_spec.rb

index 177b8ad1e9758f00f2f8b76af76a2b13b1f1285e..461e962adb88237248d845280e60aefa93f33611 100644 (file)
@@ -179,7 +179,7 @@ function! s:indent_like_previous_line(lnum)
     let text = getline(lnum)
     let start = s:find_start_of_multiline_statement(lnum)
     let base = indent(start)
     let text = getline(lnum)
     let start = s:find_start_of_multiline_statement(lnum)
     let base = indent(start)
-    let current = indent(lnum + 1)
+    let current = indent(a:lnum)
 
     " Jump to last character in previous line.
     call cursor(lnum, len(text))
 
     " Jump to last character in previous line.
     call cursor(lnum, len(text))
@@ -218,7 +218,7 @@ function! s:indent_like_previous_line(lnum)
 
     " If this line is dedented and the number of indent spaces is valid
     " (multiple of the indentation size), trust the user
 
     " If this line is dedented and the number of indent spaces is valid
     " (multiple of the indentation size), trust the user
-    let dedent_size = current - indent(a:lnum - 1)
+    let dedent_size = current - base
     if dedent_size < 0 && current % s:sw() == 0
         return -1
     endif
     if dedent_size < 0 && current % s:sw() == 0
         return -1
     endif
index 1eea365942d71f305d94d2f9d113d299ac39895d..e300cb0ba2fab3b1d6e36ea0a611cb3a98794ca1 100644 (file)
@@ -216,6 +216,14 @@ shared_examples_for "vim" do
      end
   end
 
      end
   end
 
+  describe "when current line is dedented compared to the last non-empty line" do
+     before { vim.feedkeys 'i\<TAB>\<TAB>if x:\<CR>y = True\<CR>\<ESC>\<ESC>' }
+     it "and current line has a valid indentation (Part 1)" do
+        vim.feedkeys '0i\<TAB>if y:'
+        proposed_indent.should == -1
+     end
+  end
+
   describe "when an 'if' is followed by" do
      before { vim.feedkeys 'i\<TAB>\<TAB>if x:\<CR>' }
      it "an elif, it lines up with the 'if'" do
   describe "when an 'if' is followed by" do
      before { vim.feedkeys 'i\<TAB>\<TAB>if x:\<CR>' }
      it "an elif, it lines up with the 'if'" do