X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/9370cda99be0cfe529c40e5c6ce48ef01940a266..446bfd0cb17b5ea5b13161440a61d1a5f057c703:/spec/indent/indent_spec.rb diff --git a/spec/indent/indent_spec.rb b/spec/indent/indent_spec.rb index cd79e36..8ee78a6 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({\' @@ -121,6 +129,68 @@ shared_examples_for "vim" do end end + describe "when after an '(' that is followed by an unfinished string" do + before { vim.feedkeys 'itest("""' } + + it "it does not indent the next line" do + vim.feedkeys '\' + proposed_indent.should == 0 + indent.should == 0 + end + + it "with contents it does not indent the next line" do + vim.feedkeys 'string_contents\' + proposed_indent.should == 0 + indent.should == 0 + end + end + + describe "when after assigning an unfinished string" do + before { vim.feedkeys 'itest = """' } + + it "it does not indent the next line" do + vim.feedkeys '\' + proposed_indent.should == 0 + indent.should == 0 + end + end + + describe "when after assigning an unfinished string" do + before { vim.feedkeys 'i test = """' } + + it "it does not indent the next line" do + vim.feedkeys '\' + proposed_indent.should == 0 + indent.should == 0 + end + end + + describe "when after assigning a finished string" do + before { vim.feedkeys 'i test = ""' } + + it "it does indent the next line" do + vim.feedkeys '\' + proposed_indent.should == 4 + indent.should == 4 + end + + it "and writing a new string, it does indent the next line" do + vim.feedkeys '\""' + proposed_indent.should == 4 + indent.should == 4 + end + end + + describe "when after a docstring" do + before { vim.feedkeys 'i """' } + + it "it does indent the next line" do + vim.feedkeys '\' + proposed_indent.should == 4 + indent.should == 4 + end + end + describe "when using simple control structures" do it "indents shiftwidth spaces" do vim.feedkeys 'iwhile True:\pass' @@ -199,7 +269,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 @@ -216,6 +286,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