Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
463 lines
8.8 KiB
Ruby
463 lines
8.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe "go" do
|
|
let(:filename) { 'test.go' }
|
|
|
|
before :each do
|
|
vim.set(:expandtab)
|
|
vim.set(:shiftwidth, 2)
|
|
end
|
|
|
|
specify "imports" do
|
|
set_file_contents <<~EOF
|
|
import "fmt"
|
|
EOF
|
|
|
|
vim.search('import')
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
import (
|
|
"fmt"
|
|
)
|
|
EOF
|
|
|
|
vim.search('import')
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
import "fmt"
|
|
EOF
|
|
end
|
|
|
|
specify "imports with names" do
|
|
set_file_contents <<~EOF
|
|
import _ "fmt"
|
|
EOF
|
|
|
|
vim.search('import')
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
import (
|
|
_ "fmt"
|
|
)
|
|
EOF
|
|
|
|
vim.search('import')
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
import _ "fmt"
|
|
EOF
|
|
end
|
|
|
|
describe "structs" do
|
|
specify "instantiation" do
|
|
set_file_contents <<~EOF
|
|
StructType{one: 1, two: "asdf", three: []int{1, 2, 3}}
|
|
EOF
|
|
|
|
vim.search 'one:'
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
StructType{
|
|
one: 1,
|
|
two: "asdf",
|
|
three: []int{1, 2, 3},
|
|
}
|
|
EOF
|
|
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
StructType{one: 1, two: "asdf", three: []int{1, 2, 3}}
|
|
EOF
|
|
end
|
|
|
|
specify "instantiation without padding" do
|
|
set_file_contents <<~EOF
|
|
StructType{one: 1, two: "asdf", three: []int{1, 2, 3}}
|
|
EOF
|
|
vim.command('let b:splitjoin_curly_brace_padding = 0')
|
|
|
|
vim.search 'one:'
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
StructType{
|
|
one: 1,
|
|
two: "asdf",
|
|
three: []int{1, 2, 3},
|
|
}
|
|
EOF
|
|
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
StructType{one: 1, two: "asdf", three: []int{1, 2, 3}}
|
|
EOF
|
|
end
|
|
|
|
specify "definition" do
|
|
set_file_contents <<~EOF
|
|
type str struct{ A, B int }
|
|
EOF
|
|
|
|
vim.search 'A'
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
type str struct {
|
|
A, B int
|
|
}
|
|
EOF
|
|
|
|
vim.search 'struct'
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
type str struct{ A, B int }
|
|
EOF
|
|
end
|
|
|
|
specify "empty definition" do
|
|
set_file_contents <<~EOF
|
|
type empty struct{}
|
|
EOF
|
|
|
|
vim.search '{'
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
type empty struct {
|
|
|
|
}
|
|
EOF
|
|
|
|
vim.search 'struct'
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
type empty struct{}
|
|
EOF
|
|
|
|
vim.search 'type'
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
type (
|
|
empty struct{}
|
|
)
|
|
EOF
|
|
end
|
|
end
|
|
|
|
describe "funcs" do
|
|
def assert_split_join(initial, split_expected, join_expected)
|
|
set_file_contents initial
|
|
vim.search 'Func(\zs\k'
|
|
|
|
split
|
|
|
|
assert_file_contents split_expected
|
|
|
|
join
|
|
|
|
assert_file_contents join_expected
|
|
end
|
|
|
|
it "handles function definitions" do
|
|
initial = <<~EOF
|
|
func Func(a, b int, c time.Time, d func(int) error, e func(int, int) (int, error), f ...time.Time) {
|
|
}
|
|
EOF
|
|
split = <<~EOF
|
|
func Func(
|
|
a, b int,
|
|
c time.Time,
|
|
d func(int) error,
|
|
e func(int, int) (int, error),
|
|
f ...time.Time,
|
|
) {
|
|
}
|
|
EOF
|
|
joined = <<~EOF
|
|
func Func(a, b int, c time.Time, d func(int) error, e func(int, int) (int, error), f ...time.Time) {
|
|
}
|
|
EOF
|
|
assert_split_join(initial, split, joined)
|
|
end
|
|
|
|
it "handles function definitions with return types" do
|
|
initial = <<~EOF
|
|
func Func(a, b int, c time.Time, d func(int) error, e func(int, int) (int, error), f ...time.Time) (r string, err error) {
|
|
}
|
|
EOF
|
|
split = <<~EOF
|
|
func Func(
|
|
a, b int,
|
|
c time.Time,
|
|
d func(int) error,
|
|
e func(int, int) (int, error),
|
|
f ...time.Time,
|
|
) (r string, err error) {
|
|
}
|
|
EOF
|
|
joined = <<~EOF
|
|
func Func(a, b int, c time.Time, d func(int) error, e func(int, int) (int, error), f ...time.Time) (r string, err error) {
|
|
}
|
|
EOF
|
|
assert_split_join(initial, split, joined)
|
|
end
|
|
|
|
it "handles method definitions" do
|
|
initial = <<~EOF
|
|
func (r Receiver) Func(a, b int, c time.Time, d func(int) error, e func(int, int) (int, error), f ...time.Time) {
|
|
}
|
|
EOF
|
|
split = <<~EOF
|
|
func (r Receiver) Func(
|
|
a, b int,
|
|
c time.Time,
|
|
d func(int) error,
|
|
e func(int, int) (int, error),
|
|
f ...time.Time,
|
|
) {
|
|
}
|
|
EOF
|
|
joined = <<~EOF
|
|
func (r Receiver) Func(a, b int, c time.Time, d func(int) error, e func(int, int) (int, error), f ...time.Time) {
|
|
}
|
|
EOF
|
|
assert_split_join(initial, split, joined)
|
|
end
|
|
|
|
it "handles method definitions with return types" do
|
|
initial = <<~EOF
|
|
func (r Receiver) Func(a, b int, c time.Time, d func(int) error, e func(int, int) (int, error), f ...time.Time) (r string, err error) {
|
|
}
|
|
EOF
|
|
split = <<~EOF
|
|
func (r Receiver) Func(
|
|
a, b int,
|
|
c time.Time,
|
|
d func(int) error,
|
|
e func(int, int) (int, error),
|
|
f ...time.Time,
|
|
) (r string, err error) {
|
|
}
|
|
EOF
|
|
joined = <<~EOF
|
|
func (r Receiver) Func(a, b int, c time.Time, d func(int) error, e func(int, int) (int, error), f ...time.Time) (r string, err error) {
|
|
}
|
|
EOF
|
|
assert_split_join(initial, split, joined)
|
|
end
|
|
end
|
|
|
|
specify "func calls" do
|
|
set_file_contents <<~EOF
|
|
err := Func(a, b, c, d)
|
|
EOF
|
|
|
|
vim.search 'a,'
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
err := Func(
|
|
a,
|
|
b,
|
|
c,
|
|
d,
|
|
)
|
|
EOF
|
|
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
err := Func(a, b, c, d)
|
|
EOF
|
|
end
|
|
|
|
specify "func definition bodies" do
|
|
set_file_contents <<~EOF
|
|
func foo(x, y int) bool { return x+y == 5 }
|
|
EOF
|
|
|
|
vim.search 'return'
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
func foo(x, y int) bool {
|
|
return x+y == 5
|
|
}
|
|
EOF
|
|
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
func foo(x, y int) bool { return x+y == 5 }
|
|
EOF
|
|
end
|
|
|
|
describe "variable declarations" do
|
|
specify "one per line" do
|
|
set_file_contents <<~EOF
|
|
type ChanDir int
|
|
|
|
func Func() {
|
|
var foo string
|
|
const bar string
|
|
}
|
|
EOF
|
|
|
|
vim.search('var')
|
|
split
|
|
vim.search('const')
|
|
split
|
|
vim.search('type')
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
type (
|
|
ChanDir int
|
|
)
|
|
|
|
func Func() {
|
|
var (
|
|
foo string
|
|
)
|
|
const (
|
|
bar string
|
|
)
|
|
}
|
|
EOF
|
|
|
|
vim.search('var')
|
|
join
|
|
vim.search('const')
|
|
join
|
|
vim.search('type')
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
type ChanDir int
|
|
|
|
func Func() {
|
|
var foo string
|
|
const bar string
|
|
}
|
|
EOF
|
|
end
|
|
|
|
specify "comma-separated without type" do
|
|
set_file_contents <<~EOF
|
|
const (
|
|
const4 = "4"
|
|
const5 = "5",
|
|
)
|
|
EOF
|
|
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
const const4, const5 = "4", "5"
|
|
EOF
|
|
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
const (
|
|
const4 = "4"
|
|
const5 = "5"
|
|
)
|
|
EOF
|
|
end
|
|
|
|
specify "comma-separated with type, without values" do
|
|
set_file_contents <<~EOF
|
|
const (
|
|
const4 string
|
|
const5 string
|
|
)
|
|
EOF
|
|
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
const const4, const5 string
|
|
EOF
|
|
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
const (
|
|
const4 string
|
|
const5 string
|
|
)
|
|
EOF
|
|
end
|
|
|
|
specify "different types don't get joined" do
|
|
set_file_contents <<~EOF
|
|
const (
|
|
const4 string
|
|
const5 int
|
|
)
|
|
EOF
|
|
|
|
join
|
|
|
|
# Triggers the built-in gJ
|
|
assert_file_contents <<~EOF
|
|
const ( const4 string
|
|
const5 int
|
|
)
|
|
EOF
|
|
end
|
|
|
|
specify "join single line as a special case" do
|
|
set_file_contents <<~EOF
|
|
const (
|
|
const4, const5 = "4", "5"
|
|
)
|
|
EOF
|
|
|
|
join
|
|
|
|
assert_file_contents <<~EOF
|
|
const const4, const5 = "4", "5"
|
|
EOF
|
|
end
|
|
|
|
specify "doesn't split multiline declarations" do
|
|
set_file_contents <<~EOF
|
|
var first = map[string]any{
|
|
"k": "v",
|
|
}
|
|
EOF
|
|
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
var first = map[string]any{
|
|
"k": "v",
|
|
}
|
|
EOF
|
|
|
|
vim.normal 'f{'
|
|
join
|
|
vim.search('var first')
|
|
split
|
|
|
|
assert_file_contents <<~EOF
|
|
var (
|
|
first = map[string]any{ "k": "v", }
|
|
)
|
|
EOF
|
|
end
|
|
end
|
|
end
|