]> git.madduck.net Git - etc/vim.git/blobdiff - spec/indent/indent_spec.rb

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:

Keep/handle (auto)indent with O (#119)
[etc/vim.git] / spec / indent / indent_spec.rb
index e60da6215e45e5e89c1e7cc59dccb4aa93dcbe0b..aa796df2316a02fd34cd6c412086e6bda2bd784d 100644 (file)
@@ -401,10 +401,22 @@ shared_examples_for "vim" do
   end
 
   describe "when an else is used inside of a nested if" do
-    before { vim.feedkeys 'iif foo:\<CR>\<TAB>if bar:\<CR>\<TAB>\<TAB>pass\<CR>' }
-    it "indents an else to the inner if" do
+    before { vim.feedkeys 'iif foo:\<CR>if bar:\<CR>pass\<CR>' }
+    it "indents the else to the inner if" do
       vim.feedkeys 'else:'
-      indent.should == shiftwidth * 2
+      indent.should == shiftwidth
+    end
+  end
+
+  describe "when an else is used outside of a nested if" do
+    before { vim.feedkeys 'iif True:\<CR>if True:\<CR>pass\<CR>\<Esc>0' }
+    it "indents the else to the outer if" do
+      indent.should == 0
+      proposed_indent.should == shiftwidth
+
+      vim.feedkeys 'ielse:'
+      indent.should == 0
+      proposed_indent.should == 0
     end
   end
 
@@ -673,3 +685,22 @@ describe "Compact multiline dict" do
     proposed_indent.should == 0
   end
 end
+
+describe "Using O" do
+  before { vim.feedkeys 'iif foo:\<CR>' }
+
+  it "respects autoindent" do
+    vim.feedkeys '1\<CR>\<CR>'
+    indent.should == shiftwidth
+    vim.feedkeys '\<Esc>ko'
+    indent.should == shiftwidth
+    vim.feedkeys '\<Esc>kO'
+    indent.should == shiftwidth
+    # Uses/keeps indent from line above
+    vim.feedkeys '\<Esc>i2\<Esc>O'
+    indent.should == shiftwidth
+    # Uses/keeps indent from line above
+    vim.feedkeys '\<Esc>j\<Esc>O'
+    indent.should == 0
+  end
+end