[mirror] Make your go dev experience better github.com/olexsmir/gopher.nvim
neovim golang
1---@toc_entry Commands 2---@tag gopher.nvim-commands 3---@text 4--- If don't want to automatically register plugins' commands, 5--- you can set `vim.g.gopher_register_commands` to `false`, before loading the plugin. 6 7if vim.g.gopher_register_commands == false then 8 return 9end 10 11---@param name string 12---@param fn fun(args: table) 13---@param nargs? number|"*"|"?" 14---@param range? boolean 15---@private 16local function cmd(name, fn, nargs, range) 17 vim.api.nvim_create_user_command(name, fn, { 18 nargs = nargs or 0, 19 range = range or false, 20 }) 21end 22 23cmd("GopherLog", function() 24 vim.cmd("tabnew " .. require("gopher._utils.log").get_outfile()) 25end) 26 27cmd("GoIfErr", function() 28 require("gopher").iferr() 29end) 30 31cmd("GoCmt", function() 32 require("gopher").comment() 33end) 34 35cmd("GoImpl", function(args) 36 require("gopher").impl(unpack(args.fargs)) 37end, "*") 38 39-- :GoInstall 40cmd("GoInstallDeps", function() 41 require("gopher").install_deps() 42end) 43 44cmd("GoInstallDepsSync", function() 45 require("gopher").install_deps { sync = true } 46end) 47 48-- :GoTag 49cmd("GoTagAdd", function(opts) 50 require("gopher").tags.add { 51 input = opts.fargs, 52 range = (opts.count ~= -1) and { 53 start = opts.line1, 54 end_ = opts.line2, 55 } or nil, 56 } 57end, "*", true) 58 59cmd("GoTagRm", function(opts) 60 require("gopher").tags.rm { 61 input = opts.fargs, 62 range = (opts.count ~= -1) and { 63 start = opts.line1, 64 end_ = opts.line2, 65 } or nil, 66 } 67end, "*", true) 68 69cmd("GoTagClear", function() 70 require("gopher").tags.clear() 71end) 72 73-- :GoTest 74cmd("GoTestAdd", function() 75 require("gopher").test.add() 76end) 77 78cmd("GoTestsAll", function() 79 require("gopher").test.all() 80end) 81 82cmd("GoTestsExp", function() 83 require("gopher").test.exported() 84end) 85 86-- :Go 87cmd("GoMod", function(opts) 88 require("gopher").mod(opts.fargs) 89end, "*") 90 91cmd("GoGet", function(opts) 92 vim.print(opts) 93 require("gopher").get(opts.fargs) 94end, "*") 95 96cmd("GoWork", function(opts) 97 require("gopher").get(opts.fargs) 98end, "*") 99 100cmd("GoGenerate", function(opts) 101 require("gopher").generate(opts.fargs or { "" }) 102end, "?")