X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/c4b633407dcd7e7b7b5c9a780edb3a8dc906eb7c..b0d6e2d58401e9d2b3264371059a8da0b73c01f9:/spec/indent/indent_spec.rb diff --git a/spec/indent/indent_spec.rb b/spec/indent/indent_spec.rb index 9fa034d..1026bd1 100644 --- a/spec/indent/indent_spec.rb +++ b/spec/indent/indent_spec.rb @@ -76,6 +76,14 @@ shared_examples_for "vim" do 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 + vim.feedkeys 'something_very_long_blaaaaaaaaa, "some_very_long_string_blaaaaaaaaaaaaaaaaaaaa"\gqq' + indent.should == 5 + end + end + describe "when after multiple parens of different types" do it "indents by one level" do vim.feedkeys 'if({\' @@ -102,6 +110,25 @@ shared_examples_for "vim" do end end + describe "when inside an unfinished string" do + it "does not indent" do + vim.feedkeys 'i"test:\' + vim.echo('synIDattr(synID(line("."), col("."), 0), "name")' + ).downcase.should include 'string' + vim.feedkeys 'a\' + proposed_indent.should == 0 + indent.should == 0 + end + + it "does not dedent" do + vim.feedkeys 'iif True:\"test:\' + vim.echo('synIDattr(synID(line("."), col("."), 0), "name")' + ).downcase.should include 'string' + proposed_indent.should == shiftwidth + indent.should == shiftwidth + end + end + describe "when using simple control structures" do it "indents shiftwidth spaces" do vim.feedkeys 'iwhile True:\pass' @@ -180,7 +207,7 @@ shared_examples_for "vim" do end describe "when current line is dedented compared to previous line" do - before { vim.feedkeys 'i\\if x:\return True\\' } + before { vim.feedkeys 'i\\if x:\y = True\\' } it "and current line has a valid indentation (Part 1)" do vim.feedkeys '0i\if y:' proposed_indent.should == -1 @@ -197,6 +224,14 @@ shared_examples_for "vim" do end end + describe "when current line is dedented compared to the last non-empty line" do + before { vim.feedkeys 'i\\if x:\y = True\\\' } + it "and current line has a valid indentation" do + vim.feedkeys '0i\if y:' + proposed_indent.should == -1 + end + end + describe "when an 'if' is followed by" do before { vim.feedkeys 'i\\if x:\' } it "an elif, it lines up with the 'if'" do