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

Improve handling of lookup in previous lines
[etc/vim.git] / spec / indent / indent_spec.rb
index cd37f1f2fd0c688ae81af3b48e3ee2cde372059b..1999d27057fd1c1744ad8598602d026ced6e3f92 100644 (file)
@@ -76,6 +76,21 @@ shared_examples_for "vim" do
     end
   end
 
+  describe "when after an '{' that is followed by a comment" do
+    before { vim.feedkeys 'imydict = {  # comment\<CR>' }
+
+    it "indent by one level" do
+      indent.should == shiftwidth
+      vim.feedkeys '1: 1,\<CR>'
+      indent.should == shiftwidth
+    end
+
+    it "lines up the closing parenthesis" do
+      vim.feedkeys '}'
+      indent.should == 0
+    end
+  end
+
   describe "when using gq to reindent a '(' that is" do
     before { vim.feedkeys 'itest(' }
     it "something and has a string without spaces at the end" do
@@ -129,6 +144,15 @@ shared_examples_for "vim" do
     end
   end
 
+  describe "when the previous line has a colon in a string" do
+    before { vim.feedkeys 'itest(":".join(["1","2"]))\<CR>' }
+    it "does not indent" do
+      vim.feedkeys 'if True:'
+      indent.should == 0
+      proposed_indent.should == 0
+    end
+  end
+
   describe "when after an '(' that is followed by an unfinished string" do
     before { vim.feedkeys 'itest("""' }
 
@@ -374,6 +398,20 @@ shared_examples_for "vim" do
      end
   end
 
+  describe "when jedi-vim call signatures are used" do
+    before { vim.command 'syn match jediFunction "JEDI_CALL_SIGNATURE" keepend extend' }
+
+    it "ignores the call signature after a colon" do
+      vim.feedkeys 'iif True:  JEDI_CALL_SIGNATURE\<CR>'
+      indent.should == shiftwidth
+    end
+
+    it "ignores the call signature after a function" do
+      vim.feedkeys 'idef f(  JEDI_CALL_SIGNATURE\<CR>'
+      indent.should == shiftwidth * 2
+    end
+  end
+
   def shiftwidth
     @shiftwidth ||= vim.echo("exists('*shiftwidth') ? shiftwidth() : &sw").to_i
   end