Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug fix with unmatched pair in string on previous line #71

Closed
wants to merge 5 commits into from

Conversation

purpleP
Copy link

@purpleP purpleP commented Mar 10, 2017

line with unmatched paren/bracket etc

reg = b'\\x1b\\[(\\d+;\\d+)m'
m = re.match(reg, start)

previously this would treat [ on a previous line as a bracket that would be used to align the text on the next line as if this bracket should have a matched bracket. And would result in something like this.

reg = b'\\x1b\\[(\\d+;\\d+)m'
                          m = re.match(reg, start)

By the way, I've looked at the code and it's kinda awfull. Like instead of just finding parens with iteration it uses recursion and jumps over the file instead of using buffer indexing. Maybe this can be changed into using python ast module and define some rules about matching. You know, python indenting in python, instead of vimscript, seems more natural to me.

@purpleP
Copy link
Author

purpleP commented Mar 12, 2017

Seems like I've fixed one bug, but introduced a lot of others. How to run tests?

@blueyed
Copy link
Member

blueyed commented Mar 12, 2017

make test.
But using rspec directly allows you to focus on some single test etc. Don't remember exactly.

@purpleP purpleP changed the title Bug fix with unmatches pair in string on previous line Bug fix with unmatched pair in string on previous line Mar 12, 2017
@blueyed
Copy link
Member

blueyed commented Mar 24, 2017

Thanks!
Can we have a test to prove this fix?

@purpleP
Copy link
Author

purpleP commented Mar 24, 2017

@blueyed Hm, I thought that tests are failing. I still don't understand how to run them.

I mean i run rspec from project root and all tests are failing.

I don't know how to write tests for ruby, but if you would at least give me clear the instructions on how to run them properly I should be able to figure out how to write tests.

@blueyed
Copy link
Member

blueyed commented Mar 24, 2017

Ah, the new commits were from you?!
I've thought that someone else stepped in.

I find the tests very bad myself..

Try bundle exec rspec, and then bundle exec rspec ./spec/indent/indent_spec.rb:298 to execute only some specific tests.

@purpleP
Copy link
Author

purpleP commented Mar 25, 2017

@blueyed I don't understand why, but while ci checks are passing on my machine the same code fails in every test.

@blueyed
Copy link
Member

blueyed commented Mar 25, 2017

@purpleP
Can you paste your tesst failures?

@blueyed
Copy link
Member

blueyed commented Mar 25, 2017

Like I said a while ago already, it would be probably good to use Vader for new tests, and move the existing ones there.

@purpleP
Copy link
Author

purpleP commented Mar 25, 2017

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Failures:

  1) vim when using width of 4 behaves like vim when using the indent plugin sets the indentexpr and indentkeys options
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  2) vim when using width of 4 behaves like vim when using the indent plugin sets autoindent and expandtab
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  3) vim when using width of 4 behaves like vim when entering the first line does not indent
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  4) vim when using width of 4 behaves like vim when entering the first line does not indent when using '=='
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  5) vim when using width of 4 behaves like vim when after a '(' that is at the end of its line indents by one level
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  6) vim when using width of 4 behaves like vim when after a '(' that is at the end of its line puts the closing parenthesis at the same level
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  7) vim when using width of 4 behaves like vim when after an '(' that is followed by something lines up on following lines
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  8) vim when using width of 4 behaves like vim when after an '(' that is followed by something lines up the closing parenthesis
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  9) vim when using width of 4 behaves like vim when after an '(' that is followed by something does not touch the closing parenthesis if it is already indented further
     Failure/Error: vim = Vimrunner.start

     Vimrunner::NoSuitableVimError:
       No suitable Vim executable could be found for this system.
     Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
     # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  10) vim when using width of 4 behaves like vim when after an '{' that is followed by a comment indent by one level
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  11) vim when using width of 4 behaves like vim when after an '{' that is followed by a comment lines up the closing parenthesis
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  12) vim when using width of 4 behaves like vim when using gq to reindent a '(' that is something and has a string without spaces at the end
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  13) vim when using width of 4 behaves like vim when after multiple parens of different types indents by one level
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  14) vim when using width of 4 behaves like vim when after multiple parens of different types lines up with the last paren
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  15) vim when using width of 4 behaves like vim when '#' is contained in a string that is followed by a colon indents by one level
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  16) vim when using width of 4 behaves like vim when '#' is not contained in a string and is followed by a colon does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  17) vim when using width of 4 behaves like vim when inside an unfinished string does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  18) vim when using width of 4 behaves like vim when inside an unfinished string does not dedent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  19) vim when using width of 4 behaves like vim when the previous line has a colon in a string does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  20) vim when using width of 4 behaves like vim when the previous line has a list slice does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  21) vim when using width of 4 behaves like vim when using simple control structures indents shiftwidth spaces
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  22) vim when using width of 4 behaves like vim when using a function definition indents shiftwidth spaces
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  23) vim when using width of 4 behaves like vim when using a class definition indents shiftwidth spaces
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  24) vim when using width of 4 behaves like vim when writing an 'else' block aligns to the preceeding 'for' block
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  25) vim when using width of 4 behaves like vim when writing an 'else' block aligns to the preceeding 'if' block
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  26) vim when using width of 4 behaves like vim when using parens and control statements avoids ambiguity by using extra indentation
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  27) vim when using width of 4 behaves like vim when using parens and control statements still aligns parens properly if not ambiguous
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  28) vim when using width of 4 behaves like vim when using parens and control statements still handles multiple parens correctly
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  29) vim when using width of 4 behaves like vim when a line breaks with a manual '\' indents shiftwidth spaces on normal line
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  30) vim when using width of 4 behaves like vim when a line breaks with a manual '\' indents 2x shiftwidth spaces for control structures
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  31) vim when using width of 4 behaves like vim when a line breaks with a manual '\' indents relative to line above
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  32) vim when using width of 4 behaves like vim when current line is dedented compared to previous line and current line has a valid indentation (Part 1)
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  33) vim when using width of 4 behaves like vim when current line is dedented compared to previous line and current line has a valid indentation (Part 2)
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  34) vim when using width of 4 behaves like vim when current line is dedented compared to previous line and current line has an invalid indentation
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  35) vim when using width of 4 behaves like vim when current line is dedented compared to the last non-empty line and current line has a valid indentation
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  36) vim when using width of 4 behaves like vim when an 'if' is followed by an elif, it lines up with the 'if'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  37) vim when using width of 4 behaves like vim when an 'if' is followed by an 'else', it lines up with the 'if'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  38) vim when using width of 4 behaves like vim when an 'if' contains a try-except an 'else' should be indented to the try
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  39) vim when using width of 4 behaves like vim when an 'if' contains a try-except an 'else' should keep the indent of the 'if'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  40) vim when using width of 4 behaves like vim when a 'for' is followed by an 'else', it lines up with the 'for'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  41) vim when using width of 4 behaves like vim when an 'else' is followed by a 'finally', it lines up with the 'else'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  42) vim when using width of 4 behaves like vim when a 'try' is followed by an 'except', it lines up with the 'try'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  43) vim when using width of 4 behaves like vim when a 'try' is followed by an 'else', it lines up with the 'try'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  44) vim when using width of 4 behaves like vim when a 'try' is followed by a 'finally', it lines up with the 'try'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  45) vim when using width of 4 behaves like vim when an 'except' is followed by an 'else', it lines up with the 'except'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  46) vim when using width of 4 behaves like vim when an 'except' is followed by another 'except', it lines up with the previous 'except'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  47) vim when using width of 4 behaves like vim when an 'except' is followed by a 'finally', it lines up with the 'except'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  48) vim when using width of 4 behaves like vim when an else is used inside of a nested if indents an else to the inner if
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  49) vim when using width of 4 behaves like vim when jedi-vim call signatures are used ignores the call signature after a colon
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  50) vim when using width of 4 behaves like vim when jedi-vim call signatures are used ignores the call signature after a function
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:475
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  51) vim when using width of 3 behaves like vim when using the indent plugin sets the indentexpr and indentkeys options
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  52) vim when using width of 3 behaves like vim when using the indent plugin sets autoindent and expandtab
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  53) vim when using width of 3 behaves like vim when entering the first line does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  54) vim when using width of 3 behaves like vim when entering the first line does not indent when using '=='
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  55) vim when using width of 3 behaves like vim when after a '(' that is at the end of its line indents by one level
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  56) vim when using width of 3 behaves like vim when after a '(' that is at the end of its line puts the closing parenthesis at the same level
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  57) vim when using width of 3 behaves like vim when after an '(' that is followed by something lines up on following lines
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  58) vim when using width of 3 behaves like vim when after an '(' that is followed by something lines up the closing parenthesis
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  59) vim when using width of 3 behaves like vim when after an '(' that is followed by something does not touch the closing parenthesis if it is already indented further
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  60) vim when using width of 3 behaves like vim when after an '{' that is followed by a comment indent by one level
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  61) vim when using width of 3 behaves like vim when after an '{' that is followed by a comment lines up the closing parenthesis
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  62) vim when using width of 3 behaves like vim when using gq to reindent a '(' that is something and has a string without spaces at the end
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  63) vim when using width of 3 behaves like vim when after multiple parens of different types indents by one level
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  64) vim when using width of 3 behaves like vim when after multiple parens of different types lines up with the last paren
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  65) vim when using width of 3 behaves like vim when '#' is contained in a string that is followed by a colon indents by one level
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  66) vim when using width of 3 behaves like vim when '#' is not contained in a string and is followed by a colon does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  67) vim when using width of 3 behaves like vim when inside an unfinished string does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  68) vim when using width of 3 behaves like vim when inside an unfinished string does not dedent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  69) vim when using width of 3 behaves like vim when the previous line has a colon in a string does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  70) vim when using width of 3 behaves like vim when the previous line has a list slice does not indent
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  71) vim when using width of 3 behaves like vim when using simple control structures indents shiftwidth spaces
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  72) vim when using width of 3 behaves like vim when using a function definition indents shiftwidth spaces
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  73) vim when using width of 3 behaves like vim when using a class definition indents shiftwidth spaces
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  74) vim when using width of 3 behaves like vim when writing an 'else' block aligns to the preceeding 'for' block
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  75) vim when using width of 3 behaves like vim when writing an 'else' block aligns to the preceeding 'if' block
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  76) vim when using width of 3 behaves like vim when using parens and control statements avoids ambiguity by using extra indentation
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  77) vim when using width of 3 behaves like vim when using parens and control statements still aligns parens properly if not ambiguous
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  78) vim when using width of 3 behaves like vim when using parens and control statements still handles multiple parens correctly
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  79) vim when using width of 3 behaves like vim when a line breaks with a manual '\' indents shiftwidth spaces on normal line
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  80) vim when using width of 3 behaves like vim when a line breaks with a manual '\' indents 2x shiftwidth spaces for control structures
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  81) vim when using width of 3 behaves like vim when a line breaks with a manual '\' indents relative to line above
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  82) vim when using width of 3 behaves like vim when current line is dedented compared to previous line and current line has a valid indentation (Part 1)
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  83) vim when using width of 3 behaves like vim when current line is dedented compared to previous line and current line has a valid indentation (Part 2)
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  84) vim when using width of 3 behaves like vim when current line is dedented compared to previous line and current line has an invalid indentation
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  85) vim when using width of 3 behaves like vim when current line is dedented compared to the last non-empty line and current line has a valid indentation
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  86) vim when using width of 3 behaves like vim when an 'if' is followed by an elif, it lines up with the 'if'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  87) vim when using width of 3 behaves like vim when an 'if' is followed by an 'else', it lines up with the 'if'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  88) vim when using width of 3 behaves like vim when an 'if' contains a try-except an 'else' should be indented to the try
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  89) vim when using width of 3 behaves like vim when an 'if' contains a try-except an 'else' should keep the indent of the 'if'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  90) vim when using width of 3 behaves like vim when a 'for' is followed by an 'else', it lines up with the 'for'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  91) vim when using width of 3 behaves like vim when an 'else' is followed by a 'finally', it lines up with the 'else'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  92) vim when using width of 3 behaves like vim when a 'try' is followed by an 'except', it lines up with the 'try'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  93) vim when using width of 3 behaves like vim when a 'try' is followed by an 'else', it lines up with the 'try'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  94) vim when using width of 3 behaves like vim when a 'try' is followed by a 'finally', it lines up with the 'try'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  95) vim when using width of 3 behaves like vim when an 'except' is followed by an 'else', it lines up with the 'except'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  96) vim when using width of 3 behaves like vim when an 'except' is followed by another 'except', it lines up with the previous 'except'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  97) vim when using width of 3 behaves like vim when an 'except' is followed by a 'finally', it lines up with the 'except'
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  98) vim when using width of 3 behaves like vim when an else is used inside of a nested if indents an else to the inner if
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  99) vim when using width of 3 behaves like vim when jedi-vim call signatures are used ignores the call signature after a colon
      Failure/Error: vim = Vimrunner.start

      Vimrunner::NoSuitableVimError:
        No suitable Vim executable could be found for this system.
      Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
      # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  100) vim when using width of 3 behaves like vim when jedi-vim call signatures are used ignores the call signature after a function
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "vim" called from ./spec/indent/indent_spec.rb:482
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  101) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after an '(' that is followed by an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  102) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after an '(' that is followed by an unfinished string with contents it indents the second line to the parenthesis
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  103) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after assigning an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  104) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after assigning an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  105) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after assigning a finished string it does indent the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  106) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after assigning a finished string and writing a new string, it does indent the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  107) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after a docstring it does indent the next line to the docstring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  108) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after a docstring with contents it does indent the next line to the docstring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  109) vim when not using python_pep8_indent_multiline_string behaves like multiline strings when breaking a string after opening parenthesis it does indent the next line as after an opening multistring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:490
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  110) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after an '(' that is followed by an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  111) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after an '(' that is followed by an unfinished string with contents it indents the second line to the parenthesis
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  112) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after assigning an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  113) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after assigning an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  114) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after assigning a finished string it does indent the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  115) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after assigning a finished string and writing a new string, it does indent the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  116) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after a docstring it does indent the next line to the docstring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  117) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after a docstring with contents it does indent the next line to the docstring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  118) vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when breaking a string after opening parenthesis it does indent the next line as after an opening multistring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:498
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  119) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after an '(' that is followed by an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  120) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after an '(' that is followed by an unfinished string with contents it indents the second line to the parenthesis
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  121) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after assigning an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  122) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after assigning an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  123) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after assigning a finished string it does indent the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  124) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after assigning a finished string and writing a new string, it does indent the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  125) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after a docstring it does indent the next line to the docstring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  126) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after a docstring with contents it does indent the next line to the docstring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  127) vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when breaking a string after opening parenthesis it does indent the next line as after an opening multistring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:506
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  128) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after an '(' that is followed by an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  129) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after an '(' that is followed by an unfinished string with contents it indents the second line to the parenthesis
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  130) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after assigning an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  131) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after assigning an unfinished string it indents the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  132) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after assigning a finished string it does indent the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  133) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after assigning a finished string and writing a new string, it does indent the next line
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  134) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after a docstring it does indent the next line to the docstring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  135) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after a docstring with contents it does indent the next line to the docstring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  136) vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when breaking a string after opening parenthesis it does indent the next line as after an opening multistring
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       Shared Example Group: "multiline strings" called from ./spec/indent/indent_spec.rb:514
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  137) vim for cython when using a cdef function definition indents shiftwidth spaces
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

  138) vim for cython when using a cpdef function definition indents shiftwidth spaces
       Failure/Error: vim = Vimrunner.start

       Vimrunner::NoSuitableVimError:
         No suitable Vim executable could be found for this system.
       # ./spec/spec_helper.rb:14:in `block (2 levels) in <top (required)>'

Finished in 5.06 seconds (files took 0.18634 seconds to load)
138 examples, 138 failures

Failed examples:

rspec './spec/indent/indent_spec.rb[1:1:1:1]' # vim when using width of 4 behaves like vim when using the indent plugin sets the indentexpr and indentkeys options
rspec './spec/indent/indent_spec.rb[1:1:1:2]' # vim when using width of 4 behaves like vim when using the indent plugin sets autoindent and expandtab
rspec './spec/indent/indent_spec.rb[1:1:2:1]' # vim when using width of 4 behaves like vim when entering the first line does not indent
rspec './spec/indent/indent_spec.rb[1:1:2:2]' # vim when using width of 4 behaves like vim when entering the first line does not indent when using '=='
rspec './spec/indent/indent_spec.rb[1:1:3:1]' # vim when using width of 4 behaves like vim when after a '(' that is at the end of its line indents by one level
rspec './spec/indent/indent_spec.rb[1:1:3:2]' # vim when using width of 4 behaves like vim when after a '(' that is at the end of its line puts the closing parenthesis at the same level
rspec './spec/indent/indent_spec.rb[1:1:4:1]' # vim when using width of 4 behaves like vim when after an '(' that is followed by something lines up on following lines
rspec './spec/indent/indent_spec.rb[1:1:4:2]' # vim when using width of 4 behaves like vim when after an '(' that is followed by something lines up the closing parenthesis
rspec './spec/indent/indent_spec.rb[1:1:4:3]' # vim when using width of 4 behaves like vim when after an '(' that is followed by something does not touch the closing parenthesis if it is already indented further
rspec './spec/indent/indent_spec.rb[1:1:5:1]' # vim when using width of 4 behaves like vim when after an '{' that is followed by a comment indent by one level
rspec './spec/indent/indent_spec.rb[1:1:5:2]' # vim when using width of 4 behaves like vim when after an '{' that is followed by a comment lines up the closing parenthesis
rspec './spec/indent/indent_spec.rb[1:1:6:1]' # vim when using width of 4 behaves like vim when using gq to reindent a '(' that is something and has a string without spaces at the end
rspec './spec/indent/indent_spec.rb[1:1:7:1]' # vim when using width of 4 behaves like vim when after multiple parens of different types indents by one level
rspec './spec/indent/indent_spec.rb[1:1:7:2]' # vim when using width of 4 behaves like vim when after multiple parens of different types lines up with the last paren
rspec './spec/indent/indent_spec.rb[1:1:8:1]' # vim when using width of 4 behaves like vim when '#' is contained in a string that is followed by a colon indents by one level
rspec './spec/indent/indent_spec.rb[1:1:9:1]' # vim when using width of 4 behaves like vim when '#' is not contained in a string and is followed by a colon does not indent
rspec './spec/indent/indent_spec.rb[1:1:10:1]' # vim when using width of 4 behaves like vim when inside an unfinished string does not indent
rspec './spec/indent/indent_spec.rb[1:1:10:2]' # vim when using width of 4 behaves like vim when inside an unfinished string does not dedent
rspec './spec/indent/indent_spec.rb[1:1:11:1]' # vim when using width of 4 behaves like vim when the previous line has a colon in a string does not indent
rspec './spec/indent/indent_spec.rb[1:1:12:1]' # vim when using width of 4 behaves like vim when the previous line has a list slice does not indent
rspec './spec/indent/indent_spec.rb[1:1:13:1]' # vim when using width of 4 behaves like vim when using simple control structures indents shiftwidth spaces
rspec './spec/indent/indent_spec.rb[1:1:14:1]' # vim when using width of 4 behaves like vim when using a function definition indents shiftwidth spaces
rspec './spec/indent/indent_spec.rb[1:1:15:1]' # vim when using width of 4 behaves like vim when using a class definition indents shiftwidth spaces
rspec './spec/indent/indent_spec.rb[1:1:16:1]' # vim when using width of 4 behaves like vim when writing an 'else' block aligns to the preceeding 'for' block
rspec './spec/indent/indent_spec.rb[1:1:16:2]' # vim when using width of 4 behaves like vim when writing an 'else' block aligns to the preceeding 'if' block
rspec './spec/indent/indent_spec.rb[1:1:17:1]' # vim when using width of 4 behaves like vim when using parens and control statements avoids ambiguity by using extra indentation
rspec './spec/indent/indent_spec.rb[1:1:17:2]' # vim when using width of 4 behaves like vim when using parens and control statements still aligns parens properly if not ambiguous
rspec './spec/indent/indent_spec.rb[1:1:17:3]' # vim when using width of 4 behaves like vim when using parens and control statements still handles multiple parens correctly
rspec './spec/indent/indent_spec.rb[1:1:18:1]' # vim when using width of 4 behaves like vim when a line breaks with a manual '\' indents shiftwidth spaces on normal line
rspec './spec/indent/indent_spec.rb[1:1:18:2]' # vim when using width of 4 behaves like vim when a line breaks with a manual '\' indents 2x shiftwidth spaces for control structures
rspec './spec/indent/indent_spec.rb[1:1:18:3]' # vim when using width of 4 behaves like vim when a line breaks with a manual '\' indents relative to line above
rspec './spec/indent/indent_spec.rb[1:1:19:1]' # vim when using width of 4 behaves like vim when current line is dedented compared to previous line and current line has a valid indentation (Part 1)
rspec './spec/indent/indent_spec.rb[1:1:19:2]' # vim when using width of 4 behaves like vim when current line is dedented compared to previous line and current line has a valid indentation (Part 2)
rspec './spec/indent/indent_spec.rb[1:1:19:3]' # vim when using width of 4 behaves like vim when current line is dedented compared to previous line and current line has an invalid indentation
rspec './spec/indent/indent_spec.rb[1:1:20:1]' # vim when using width of 4 behaves like vim when current line is dedented compared to the last non-empty line and current line has a valid indentation
rspec './spec/indent/indent_spec.rb[1:1:21:1]' # vim when using width of 4 behaves like vim when an 'if' is followed by an elif, it lines up with the 'if'
rspec './spec/indent/indent_spec.rb[1:1:21:2]' # vim when using width of 4 behaves like vim when an 'if' is followed by an 'else', it lines up with the 'if'
rspec './spec/indent/indent_spec.rb[1:1:22:1]' # vim when using width of 4 behaves like vim when an 'if' contains a try-except an 'else' should be indented to the try
rspec './spec/indent/indent_spec.rb[1:1:22:2]' # vim when using width of 4 behaves like vim when an 'if' contains a try-except an 'else' should keep the indent of the 'if'
rspec './spec/indent/indent_spec.rb[1:1:23:1]' # vim when using width of 4 behaves like vim when a 'for' is followed by an 'else', it lines up with the 'for'
rspec './spec/indent/indent_spec.rb[1:1:24:1]' # vim when using width of 4 behaves like vim when an 'else' is followed by a 'finally', it lines up with the 'else'
rspec './spec/indent/indent_spec.rb[1:1:25:1]' # vim when using width of 4 behaves like vim when a 'try' is followed by an 'except', it lines up with the 'try'
rspec './spec/indent/indent_spec.rb[1:1:25:2]' # vim when using width of 4 behaves like vim when a 'try' is followed by an 'else', it lines up with the 'try'
rspec './spec/indent/indent_spec.rb[1:1:25:3]' # vim when using width of 4 behaves like vim when a 'try' is followed by a 'finally', it lines up with the 'try'
rspec './spec/indent/indent_spec.rb[1:1:26:1]' # vim when using width of 4 behaves like vim when an 'except' is followed by an 'else', it lines up with the 'except'
rspec './spec/indent/indent_spec.rb[1:1:26:2]' # vim when using width of 4 behaves like vim when an 'except' is followed by another 'except', it lines up with the previous 'except'
rspec './spec/indent/indent_spec.rb[1:1:26:3]' # vim when using width of 4 behaves like vim when an 'except' is followed by a 'finally', it lines up with the 'except'
rspec './spec/indent/indent_spec.rb[1:1:27:1]' # vim when using width of 4 behaves like vim when an else is used inside of a nested if indents an else to the inner if
rspec './spec/indent/indent_spec.rb[1:1:28:1]' # vim when using width of 4 behaves like vim when jedi-vim call signatures are used ignores the call signature after a colon
rspec './spec/indent/indent_spec.rb[1:1:28:2]' # vim when using width of 4 behaves like vim when jedi-vim call signatures are used ignores the call signature after a function
rspec './spec/indent/indent_spec.rb[2:1:1:1]' # vim when using width of 3 behaves like vim when using the indent plugin sets the indentexpr and indentkeys options
rspec './spec/indent/indent_spec.rb[2:1:1:2]' # vim when using width of 3 behaves like vim when using the indent plugin sets autoindent and expandtab
rspec './spec/indent/indent_spec.rb[2:1:2:1]' # vim when using width of 3 behaves like vim when entering the first line does not indent
rspec './spec/indent/indent_spec.rb[2:1:2:2]' # vim when using width of 3 behaves like vim when entering the first line does not indent when using '=='
rspec './spec/indent/indent_spec.rb[2:1:3:1]' # vim when using width of 3 behaves like vim when after a '(' that is at the end of its line indents by one level
rspec './spec/indent/indent_spec.rb[2:1:3:2]' # vim when using width of 3 behaves like vim when after a '(' that is at the end of its line puts the closing parenthesis at the same level
rspec './spec/indent/indent_spec.rb[2:1:4:1]' # vim when using width of 3 behaves like vim when after an '(' that is followed by something lines up on following lines
rspec './spec/indent/indent_spec.rb[2:1:4:2]' # vim when using width of 3 behaves like vim when after an '(' that is followed by something lines up the closing parenthesis
rspec './spec/indent/indent_spec.rb[2:1:4:3]' # vim when using width of 3 behaves like vim when after an '(' that is followed by something does not touch the closing parenthesis if it is already indented further
rspec './spec/indent/indent_spec.rb[2:1:5:1]' # vim when using width of 3 behaves like vim when after an '{' that is followed by a comment indent by one level
rspec './spec/indent/indent_spec.rb[2:1:5:2]' # vim when using width of 3 behaves like vim when after an '{' that is followed by a comment lines up the closing parenthesis
rspec './spec/indent/indent_spec.rb[2:1:6:1]' # vim when using width of 3 behaves like vim when using gq to reindent a '(' that is something and has a string without spaces at the end
rspec './spec/indent/indent_spec.rb[2:1:7:1]' # vim when using width of 3 behaves like vim when after multiple parens of different types indents by one level
rspec './spec/indent/indent_spec.rb[2:1:7:2]' # vim when using width of 3 behaves like vim when after multiple parens of different types lines up with the last paren
rspec './spec/indent/indent_spec.rb[2:1:8:1]' # vim when using width of 3 behaves like vim when '#' is contained in a string that is followed by a colon indents by one level
rspec './spec/indent/indent_spec.rb[2:1:9:1]' # vim when using width of 3 behaves like vim when '#' is not contained in a string and is followed by a colon does not indent
rspec './spec/indent/indent_spec.rb[2:1:10:1]' # vim when using width of 3 behaves like vim when inside an unfinished string does not indent
rspec './spec/indent/indent_spec.rb[2:1:10:2]' # vim when using width of 3 behaves like vim when inside an unfinished string does not dedent
rspec './spec/indent/indent_spec.rb[2:1:11:1]' # vim when using width of 3 behaves like vim when the previous line has a colon in a string does not indent
rspec './spec/indent/indent_spec.rb[2:1:12:1]' # vim when using width of 3 behaves like vim when the previous line has a list slice does not indent
rspec './spec/indent/indent_spec.rb[2:1:13:1]' # vim when using width of 3 behaves like vim when using simple control structures indents shiftwidth spaces
rspec './spec/indent/indent_spec.rb[2:1:14:1]' # vim when using width of 3 behaves like vim when using a function definition indents shiftwidth spaces
rspec './spec/indent/indent_spec.rb[2:1:15:1]' # vim when using width of 3 behaves like vim when using a class definition indents shiftwidth spaces
rspec './spec/indent/indent_spec.rb[2:1:16:1]' # vim when using width of 3 behaves like vim when writing an 'else' block aligns to the preceeding 'for' block
rspec './spec/indent/indent_spec.rb[2:1:16:2]' # vim when using width of 3 behaves like vim when writing an 'else' block aligns to the preceeding 'if' block
rspec './spec/indent/indent_spec.rb[2:1:17:1]' # vim when using width of 3 behaves like vim when using parens and control statements avoids ambiguity by using extra indentation
rspec './spec/indent/indent_spec.rb[2:1:17:2]' # vim when using width of 3 behaves like vim when using parens and control statements still aligns parens properly if not ambiguous
rspec './spec/indent/indent_spec.rb[2:1:17:3]' # vim when using width of 3 behaves like vim when using parens and control statements still handles multiple parens correctly
rspec './spec/indent/indent_spec.rb[2:1:18:1]' # vim when using width of 3 behaves like vim when a line breaks with a manual '\' indents shiftwidth spaces on normal line
rspec './spec/indent/indent_spec.rb[2:1:18:2]' # vim when using width of 3 behaves like vim when a line breaks with a manual '\' indents 2x shiftwidth spaces for control structures
rspec './spec/indent/indent_spec.rb[2:1:18:3]' # vim when using width of 3 behaves like vim when a line breaks with a manual '\' indents relative to line above
rspec './spec/indent/indent_spec.rb[2:1:19:1]' # vim when using width of 3 behaves like vim when current line is dedented compared to previous line and current line has a valid indentation (Part 1)
rspec './spec/indent/indent_spec.rb[2:1:19:2]' # vim when using width of 3 behaves like vim when current line is dedented compared to previous line and current line has a valid indentation (Part 2)
rspec './spec/indent/indent_spec.rb[2:1:19:3]' # vim when using width of 3 behaves like vim when current line is dedented compared to previous line and current line has an invalid indentation
rspec './spec/indent/indent_spec.rb[2:1:20:1]' # vim when using width of 3 behaves like vim when current line is dedented compared to the last non-empty line and current line has a valid indentation
rspec './spec/indent/indent_spec.rb[2:1:21:1]' # vim when using width of 3 behaves like vim when an 'if' is followed by an elif, it lines up with the 'if'
rspec './spec/indent/indent_spec.rb[2:1:21:2]' # vim when using width of 3 behaves like vim when an 'if' is followed by an 'else', it lines up with the 'if'
rspec './spec/indent/indent_spec.rb[2:1:22:1]' # vim when using width of 3 behaves like vim when an 'if' contains a try-except an 'else' should be indented to the try
rspec './spec/indent/indent_spec.rb[2:1:22:2]' # vim when using width of 3 behaves like vim when an 'if' contains a try-except an 'else' should keep the indent of the 'if'
rspec './spec/indent/indent_spec.rb[2:1:23:1]' # vim when using width of 3 behaves like vim when a 'for' is followed by an 'else', it lines up with the 'for'
rspec './spec/indent/indent_spec.rb[2:1:24:1]' # vim when using width of 3 behaves like vim when an 'else' is followed by a 'finally', it lines up with the 'else'
rspec './spec/indent/indent_spec.rb[2:1:25:1]' # vim when using width of 3 behaves like vim when a 'try' is followed by an 'except', it lines up with the 'try'
rspec './spec/indent/indent_spec.rb[2:1:25:2]' # vim when using width of 3 behaves like vim when a 'try' is followed by an 'else', it lines up with the 'try'
rspec './spec/indent/indent_spec.rb[2:1:25:3]' # vim when using width of 3 behaves like vim when a 'try' is followed by a 'finally', it lines up with the 'try'
rspec './spec/indent/indent_spec.rb[2:1:26:1]' # vim when using width of 3 behaves like vim when an 'except' is followed by an 'else', it lines up with the 'except'
rspec './spec/indent/indent_spec.rb[2:1:26:2]' # vim when using width of 3 behaves like vim when an 'except' is followed by another 'except', it lines up with the previous 'except'
rspec './spec/indent/indent_spec.rb[2:1:26:3]' # vim when using width of 3 behaves like vim when an 'except' is followed by a 'finally', it lines up with the 'except'
rspec './spec/indent/indent_spec.rb[2:1:27:1]' # vim when using width of 3 behaves like vim when an else is used inside of a nested if indents an else to the inner if
rspec './spec/indent/indent_spec.rb[2:1:28:1]' # vim when using width of 3 behaves like vim when jedi-vim call signatures are used ignores the call signature after a colon
rspec './spec/indent/indent_spec.rb[2:1:28:2]' # vim when using width of 3 behaves like vim when jedi-vim call signatures are used ignores the call signature after a function
rspec './spec/indent/indent_spec.rb[3:1:1:1]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after an '(' that is followed by an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[3:1:1:2]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after an '(' that is followed by an unfinished string with contents it indents the second line to the parenthesis
rspec './spec/indent/indent_spec.rb[3:1:2:1]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after assigning an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[3:1:3:1]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after assigning an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[3:1:4:1]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after assigning a finished string it does indent the next line
rspec './spec/indent/indent_spec.rb[3:1:4:2]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after assigning a finished string and writing a new string, it does indent the next line
rspec './spec/indent/indent_spec.rb[3:1:5:1]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after a docstring it does indent the next line to the docstring
rspec './spec/indent/indent_spec.rb[3:1:6:1]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when after a docstring with contents it does indent the next line to the docstring
rspec './spec/indent/indent_spec.rb[3:1:7:1]' # vim when not using python_pep8_indent_multiline_string behaves like multiline strings when breaking a string after opening parenthesis it does indent the next line as after an opening multistring
rspec './spec/indent/indent_spec.rb[4:1:1:1]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after an '(' that is followed by an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[4:1:1:2]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after an '(' that is followed by an unfinished string with contents it indents the second line to the parenthesis
rspec './spec/indent/indent_spec.rb[4:1:2:1]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after assigning an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[4:1:3:1]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after assigning an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[4:1:4:1]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after assigning a finished string it does indent the next line
rspec './spec/indent/indent_spec.rb[4:1:4:2]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after assigning a finished string and writing a new string, it does indent the next line
rspec './spec/indent/indent_spec.rb[4:1:5:1]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after a docstring it does indent the next line to the docstring
rspec './spec/indent/indent_spec.rb[4:1:6:1]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when after a docstring with contents it does indent the next line to the docstring
rspec './spec/indent/indent_spec.rb[4:1:7:1]' # vim when using python_pep8_indent_multiline_first=0 behaves like multiline strings when breaking a string after opening parenthesis it does indent the next line as after an opening multistring
rspec './spec/indent/indent_spec.rb[5:1:1:1]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after an '(' that is followed by an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[5:1:1:2]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after an '(' that is followed by an unfinished string with contents it indents the second line to the parenthesis
rspec './spec/indent/indent_spec.rb[5:1:2:1]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after assigning an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[5:1:3:1]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after assigning an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[5:1:4:1]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after assigning a finished string it does indent the next line
rspec './spec/indent/indent_spec.rb[5:1:4:2]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after assigning a finished string and writing a new string, it does indent the next line
rspec './spec/indent/indent_spec.rb[5:1:5:1]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after a docstring it does indent the next line to the docstring
rspec './spec/indent/indent_spec.rb[5:1:6:1]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when after a docstring with contents it does indent the next line to the docstring
rspec './spec/indent/indent_spec.rb[5:1:7:1]' # vim when using python_pep8_indent_multiline_string=-1 behaves like multiline strings when breaking a string after opening parenthesis it does indent the next line as after an opening multistring
rspec './spec/indent/indent_spec.rb[6:1:1:1]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after an '(' that is followed by an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[6:1:1:2]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after an '(' that is followed by an unfinished string with contents it indents the second line to the parenthesis
rspec './spec/indent/indent_spec.rb[6:1:2:1]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after assigning an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[6:1:3:1]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after assigning an unfinished string it indents the next line
rspec './spec/indent/indent_spec.rb[6:1:4:1]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after assigning a finished string it does indent the next line
rspec './spec/indent/indent_spec.rb[6:1:4:2]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after assigning a finished string and writing a new string, it does indent the next line
rspec './spec/indent/indent_spec.rb[6:1:5:1]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after a docstring it does indent the next line to the docstring
rspec './spec/indent/indent_spec.rb[6:1:6:1]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when after a docstring with contents it does indent the next line to the docstring
rspec './spec/indent/indent_spec.rb[6:1:7:1]' # vim when using python_pep8_indent_multiline_string=-2 behaves like multiline strings when breaking a string after opening parenthesis it does indent the next line as after an opening multistring
rspec ./spec/indent/indent_spec.rb:525 # vim for cython when using a cdef function definition indents shiftwidth spaces
rspec ./spec/indent/indent_spec.rb:532 # vim for cython when using a cpdef function definition indents shiftwidth spaces


@purpleP
Copy link
Author

purpleP commented Mar 25, 2017

@blueyed I guess the main problem is the explained in the first lines. Bundle can't find vim, which I installed via nix package manager, so unless . ~/.nix-profile/etc/profile.d/nix.sh this is executed you wouldn't see it. If I would have time I'll see how modern vim test are written. I've heard that vim 8 added some support for tests.

@purpleP
Copy link
Author

purpleP commented Mar 25, 2017

And in case someone else would have time to write the test case it's basically looks like this

b" ["

and the next line would be indented as column of [ plus shiftwidth.

@blueyed
Copy link
Member

blueyed commented Jul 15, 2018

Could not reproduce this.
It looks like you are using a special syntax file, where pythonBytes gets used?

Is this still an issue for you?

I think adding a test/fix would be easy then, but need to know the details.

@purpleP
Copy link
Author

purpleP commented Jul 17, 2018

@blueyed Yes, I use custom syntax file where pythonBytes highlight group exists. Yes, it's still an issue.

@purpleP
Copy link
Author

purpleP commented Jul 17, 2018

I think I will experiment with using ast module or parso or maybe creating my own parser... If you think about it to correctly determine indent you only need parse one paragraph. If I remember correctly this library searches the whole file for matching quotes by the way, which also isn't very efficient. Anyway in 99% of cases parsing one paragraph is totally acceptable and would remove error-prone dependency on on syntax files.

@blueyed
Copy link
Member

blueyed commented Jul 17, 2018

custom syntax file

Your own? Is it available somewhere?

Otherwise see #99.

@purpleP
Copy link
Author

purpleP commented Jul 23, 2018

@blueyed Yes, it is available https://github.com/purpleP/python-syntax.git

blueyed added a commit to blueyed/vim-python-pep8-indent that referenced this pull request Jul 26, 2018
@blueyed blueyed closed this in #113 Jul 26, 2018
blueyed added a commit that referenced this pull request Jul 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants