63 lines
1.5 KiB
Ruby
63 lines
1.5 KiB
Ruby
require 'vimrunner'
|
|
require 'vimrunner/rspec'
|
|
|
|
RSpec.configure do |config|
|
|
# reset globals to default values before each test
|
|
config.before(:each) do
|
|
vim.command 'let g:ruby_indent_access_modifier_style = "normal"'
|
|
vim.command 'let g:ruby_indent_block_style = "do"'
|
|
vim.command 'let g:ruby_indent_assignment_style = "hanging"'
|
|
vim.command 'let g:ruby_indent_hanging_elements = 1'
|
|
end
|
|
end
|
|
|
|
Vimrunner::RSpec.configure do |config|
|
|
config.reuse_server = true
|
|
|
|
config.start_vim do
|
|
vim = Vimrunner.start_gvim
|
|
vim.prepend_runtimepath(File.expand_path('../..', __FILE__))
|
|
vim.add_plugin(File.expand_path('../vim', __FILE__), 'plugin/syntax_test.vim')
|
|
vim.set 'expandtab'
|
|
vim.set 'shiftwidth', 2
|
|
vim
|
|
end
|
|
|
|
def assert_correct_indenting(extension='rb', string)
|
|
filename = "test.#{extension}"
|
|
|
|
IO.write filename, string
|
|
|
|
vim.edit filename
|
|
vim.normal 'gg=G'
|
|
vim.write
|
|
|
|
expect(IO.read(filename)).to eq string
|
|
end
|
|
|
|
def assert_correct_indent_in_insert(extension='rb', content, input, result)
|
|
filename = "test.#{extension}"
|
|
|
|
IO.write filename, content
|
|
|
|
vim.edit filename
|
|
vim.normal 'Go'
|
|
vim.feedkeys input
|
|
vim.write
|
|
|
|
expect(IO.read(filename)).to eq result
|
|
end
|
|
|
|
def assert_correct_highlighting(extension='rb', string, patterns, group)
|
|
filename = "test.#{extension}"
|
|
|
|
IO.write filename, string
|
|
|
|
vim.edit filename
|
|
|
|
Array(patterns).each do |pattern|
|
|
# TODO: add a custom matcher
|
|
expect(vim.echo("TestSyntax('#{pattern}', '#{group}')")).to eq '1'
|
|
end
|
|
end
|
|
end
|