1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-04 11:40:04 +08:00
SpaceVim/bundle/splitjoin.vim/spec/plugin/perl_spec.rb

173 lines
2.9 KiB
Ruby
Raw Normal View History

2024-06-27 18:10:36 +08:00
require 'spec_helper'
describe "perl" do
let(:filename) { 'test.pl' }
before :each do
vim.set(:expandtab)
vim.set(:shiftwidth, 2)
end
after :each do
vim.command('silent! unlet g:splitjoin_trailing_comma')
end
after :all do
# The perl filetype messes with iskeyword...
vim.command('set iskeyword-=:')
end
specify "suffix if-clauses" do
set_file_contents 'print "a = $a\n" if $debug;'
split
assert_file_contents <<~EOF
if ($debug) {
print "a = $a\\n";
}
EOF
join
assert_file_contents 'print "a = $a\n" if $debug;'
end
specify "postfix if-clauses" do
set_file_contents 'if ($debug) { print "a = $a\\n"; }'
split
assert_file_contents <<~EOF
if ($debug) {
print "a = $a\\n";
}
EOF
end
specify "and/or control flow" do
set_file_contents 'open PID, ">", $pidfile or die;'
split
assert_file_contents <<~EOF
unless (open PID, ">", $pidfile) {
die;
}
EOF
join
assert_file_contents 'die unless open PID, ">", $pidfile;'
end
specify "hashes" do
set_file_contents "my $info = {name => $name, age => $age};"
split
assert_file_contents <<~EOF
my $info = {
name => $name,
age => $age,
};
EOF
join
assert_file_contents "my $info = {name => $name, age => $age};"
end
specify "square-bracketed list" do
set_file_contents "my @var = ['one', 'two', 'three'];"
split
assert_file_contents <<~EOF
my @var = [
'one',
'two',
'three'
];
EOF
join
assert_file_contents "my @var = ['one', 'two', 'three'];"
end
specify "square-bracketed list, trailing comma" do
vim.command('let g:splitjoin_trailing_comma = 1')
set_file_contents "my @var = ['one', 'two', 'three'];"
split
assert_file_contents <<~EOF
my @var = [
'one',
'two',
'three',
];
EOF
join
assert_file_contents "my @var = ['one', 'two', 'three'];"
end
specify "round-bracketed list" do
set_file_contents "my @var = ('one', 'two', 'three');"
split
assert_file_contents <<~EOF
my @var = (
'one',
'two',
'three'
);
EOF
join
assert_file_contents "my @var = ('one', 'two', 'three');"
end
specify "round-bracketed list, trailing comma" do
vim.command('let g:splitjoin_trailing_comma = 1')
set_file_contents "my @var = ('one', 'two', 'three');"
split
assert_file_contents <<~EOF
my @var = (
'one',
'two',
'three',
);
EOF
join
assert_file_contents "my @var = ('one', 'two', 'three');"
end
specify "word lists" do
set_file_contents "my @var = qw(one two three);"
split
assert_file_contents <<~EOF
my @var = qw(
one
two
three
);
EOF
join
assert_file_contents "my @var = qw(one two three);"
end
end