74 lines
1.6 KiB
Lua
74 lines
1.6 KiB
Lua
local go = {}
|
|
|
|
-- go.dbg_complete = function(arglead, cmdline, cursorpos)
|
|
go.dbg_complete = function(_, _, _)
|
|
local testopts = {
|
|
"--help",
|
|
"--test",
|
|
"--nearest",
|
|
"--file",
|
|
"--package",
|
|
"--attach",
|
|
"--stop",
|
|
"--restart",
|
|
"--breakpoint",
|
|
"--tag",
|
|
}
|
|
return testopts
|
|
end
|
|
|
|
go.tools_complete = function(_, _, _)
|
|
local gotools = require("go.install").tools
|
|
table.sort(gotools)
|
|
return gotools
|
|
end
|
|
|
|
go.impl_complete = function(arglead, cmdline, cursorpos)
|
|
return require("go.impl").complete(arglead, cmdline, cursorpos)
|
|
end
|
|
|
|
go.modify_tags_complete = function(_, _, _)
|
|
local opts = {
|
|
"-add-tags",
|
|
"-add-options",
|
|
"-remove-tags",
|
|
"-remove-options",
|
|
"-clear-tags",
|
|
"-clear-options",
|
|
}
|
|
return opts
|
|
end
|
|
|
|
-- how to deal complete https://github.com/vim-scripts/marvim/blob/c159856871aa18fa4f3249c6aa312c52f586d1ef/plugin/marvim.vim#L259
|
|
|
|
-- go.add_tags_complete = function(arglead, line, pos)
|
|
go.add_tags_complete = function(arglead, line, _)
|
|
-- print("lead: ",arglead, "L", line, "p" )
|
|
local transf = { "camelcase", "snakecase", "lispcase", "pascalcase", "titlecase", "keep" }
|
|
local options = {"-transform", "-add-options"}
|
|
local ret = {}
|
|
if #vim.split(line, "%s+") >= 2 then
|
|
if vim.startswith("-transform", arglead) then
|
|
return "-transform"
|
|
end
|
|
table.foreach(transf, function(_, tag)
|
|
if vim.startswith(tag, arglead) then
|
|
ret[#ret + 1] = tag
|
|
end
|
|
end)
|
|
if #ret > 0 then
|
|
return ret
|
|
end
|
|
return transf
|
|
end
|
|
|
|
local opts = {
|
|
"json",
|
|
"json.yml",
|
|
"-transform",
|
|
}
|
|
return opts
|
|
end
|
|
|
|
return go
|