X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/955f7c02983ec2dd3c40fd46d6ad5665f9dd1831..d6c602fcad59f58df00dc86e2609c9791a19ba71:/spec/spec_helper.rb diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 82b152c..8636f41 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,18 +1,19 @@ require 'vimrunner' require 'vimrunner/rspec' +# Explicitly enable usage of "should". +RSpec.configure do |config| + config.expect_with(:rspec) { |c| c.syntax = :should } +end + Vimrunner::RSpec.configure do |config| # Use a single Vim instance for the test suite. Set to false to use an # instance per test (slower, but can be easier to manage). - # FIXME: reuse_server = true seems to hang after a certain number of test cases - # - Travis CI hangs after 15 successful tests. - # - Locally it may hang also, with Vim and Xorg using 100% CPU. - # Therefore default to false in both cases. - config.reuse_server = ENV['CI'] ? false : false + # This requires using gvim, otherwise it hangs after a few tests. + config.reuse_server = ENV['VIMRUNNER_REUSE_SERVER'] == '1' ? true : false config.start_vim do - vim = Vimrunner.start - + vim = config.reuse_server ? Vimrunner.start_gvim : Vimrunner.start plugin_path = File.expand_path('../..', __FILE__) # add_plugin appends the path to the rtp... :( @@ -22,6 +23,31 @@ Vimrunner::RSpec.configure do |config| vim.command "runtime syntax/python.vim" vim.command "runtime indent/python.vim" + def shiftwidth + @shiftwidth ||= vim.echo("exists('*shiftwidth') ? shiftwidth() : &sw").to_i + end + def tabstop + @tabstop ||= vim.echo("&tabstop").to_i + end + def indent + vim.echo("indent('.')").to_i + end + def previous_indent + pline = vim.echo("line('.')").to_i - 1 + vim.echo("indent('#{pline}')").to_i + end + def proposed_indent + line = vim.echo("line('.')") + col = vim.echo("col('.')") + indent_value = vim.echo("GetPythonPEPIndent(#{line})").to_i + vim.command("call cursor(#{line}, #{col})") + return indent_value + end + def multiline_indent(prev, default) + i = vim.echo("get(g:, 'python_pep8_indent_multiline_string', 0)").to_i + return (i == -2 ? default : i), i < 0 ? (i == -1 ? prev : default) : i + end + vim end end