X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/47ab0458c0c8f005777b92fccd4008d26bd0d0af..42bd7b164647f1ff3ba899276664d63b6a882f2e:/spec/indent/indent_spec.rb?ds=sidebyside diff --git a/spec/indent/indent_spec.rb b/spec/indent/indent_spec.rb index 1026bd1..cd37f1f 100644 --- a/spec/indent/indent_spec.rb +++ b/spec/indent/indent_spec.rb @@ -129,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' @@ -136,6 +198,20 @@ shared_examples_for "vim" do end end + describe "when using a function definition" do + it "indents shiftwidth spaces" do + vim.feedkeys 'idef long_function_name(\arg' + indent.should == shiftwidth * 2 + end + end + + describe "when using a class definition" do + it "indents shiftwidth spaces" do + vim.feedkeys 'iclass Foo(\' + indent.should == shiftwidth * 2 + end + end + describe "when writing an 'else' block" do it "aligns to the preceeding 'for' block" do vim.feedkeys 'ifor x in "abc":\pass\else:'