|
|
@ -30,20 +30,11 @@ if vim.lsp.buf.format == nil then
|
|
|
|
require('go.lsp') -- this set default value of format
|
|
|
|
require('go.lsp') -- this set default value of format
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local run = function(fmtargs, bufnr, cmd)
|
|
|
|
local M = {}
|
|
|
|
bufnr = bufnr or vim.api.nvim_get_current_buf()
|
|
|
|
M.lsp_format = function()
|
|
|
|
log(fmtargs, bufnr, cmd)
|
|
|
|
|
|
|
|
if vim.o.mod == true then
|
|
|
|
|
|
|
|
vim.cmd('noautocmd write')
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
if cmd == 'gopls' then
|
|
|
|
|
|
|
|
if not vim.api.nvim_buf_is_loaded(bufnr) then
|
|
|
|
|
|
|
|
vfn.bufload(bufnr)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
-- log gopls format
|
|
|
|
|
|
|
|
vim.lsp.buf.format({
|
|
|
|
vim.lsp.buf.format({
|
|
|
|
async = _GO_NVIM_CFG.lsp_fmt_async,
|
|
|
|
async = _GO_NVIM_CFG.lsp_fmt_async,
|
|
|
|
bufnr = bufnr,
|
|
|
|
bufnr = vim.api.nvim_get_current_buf(),
|
|
|
|
name = 'gopls',
|
|
|
|
name = 'gopls',
|
|
|
|
})
|
|
|
|
})
|
|
|
|
if not _GO_NVIM_CFG.lsp_fmt_async then
|
|
|
|
if not _GO_NVIM_CFG.lsp_fmt_async then
|
|
|
@ -55,6 +46,20 @@ local run = function(fmtargs, bufnr, cmd)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local run = function(fmtargs, bufnr, cmd)
|
|
|
|
|
|
|
|
bufnr = bufnr or vim.api.nvim_get_current_buf()
|
|
|
|
|
|
|
|
log(fmtargs, bufnr, cmd)
|
|
|
|
|
|
|
|
if vim.o.mod == true then
|
|
|
|
|
|
|
|
vim.cmd('noautocmd write')
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
if cmd == 'gopls' then
|
|
|
|
|
|
|
|
if not vim.api.nvim_buf_is_loaded(bufnr) then
|
|
|
|
|
|
|
|
vfn.bufload(bufnr)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
-- log gopls format
|
|
|
|
|
|
|
|
return M.lsp_format()
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local args = vim.deepcopy(fmtargs)
|
|
|
|
local args = vim.deepcopy(fmtargs)
|
|
|
|
table.insert(args, api.nvim_buf_get_name(bufnr))
|
|
|
|
table.insert(args, api.nvim_buf_get_name(bufnr))
|
|
|
|
log('formatting buffer... ' .. vim.inspect(args), vim.log.levels.DEBUG)
|
|
|
|
log('formatting buffer... ' .. vim.inspect(args), vim.log.levels.DEBUG)
|
|
|
@ -108,7 +113,6 @@ local run = function(fmtargs, bufnr, cmd)
|
|
|
|
vfn.chanclose(j, 'stdin')
|
|
|
|
vfn.chanclose(j, 'stdin')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local M = {}
|
|
|
|
|
|
|
|
M.gofmt = function(...)
|
|
|
|
M.gofmt = function(...)
|
|
|
|
local long_opts = {
|
|
|
|
local long_opts = {
|
|
|
|
all = 'a',
|
|
|
|
all = 'a',
|
|
|
@ -119,7 +123,7 @@ M.gofmt = function(...)
|
|
|
|
|
|
|
|
|
|
|
|
local getopt = require('go.alt_getopt')
|
|
|
|
local getopt = require('go.alt_getopt')
|
|
|
|
local optarg = getopt.get_opts(args, short_opts, long_opts)
|
|
|
|
local optarg = getopt.get_opts(args, short_opts, long_opts)
|
|
|
|
log(optarg)
|
|
|
|
log('formatting', optarg)
|
|
|
|
|
|
|
|
|
|
|
|
local all_buf = false
|
|
|
|
local all_buf = false
|
|
|
|
if optarg['a'] then
|
|
|
|
if optarg['a'] then
|
|
|
@ -156,18 +160,7 @@ end
|
|
|
|
|
|
|
|
|
|
|
|
M.org_imports = function()
|
|
|
|
M.org_imports = function()
|
|
|
|
require('go.lsp').codeaction('', 'source.organizeImports', function()
|
|
|
|
require('go.lsp').codeaction('', 'source.organizeImports', function()
|
|
|
|
vim.lsp.buf.format({
|
|
|
|
M.gofmt()
|
|
|
|
async = _GO_NVIM_CFG.lsp_fmt_async,
|
|
|
|
|
|
|
|
bufnr = vim.api.nvim_get_current_buf(),
|
|
|
|
|
|
|
|
name = 'gopls',
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
if not _GO_NVIM_CFG.lsp_fmt_async then
|
|
|
|
|
|
|
|
vim.defer_fn(function()
|
|
|
|
|
|
|
|
if vfn.getbufinfo('%')[1].changed == 1 then
|
|
|
|
|
|
|
|
vim.cmd('noautocmd write')
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end, write_delay)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end)
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|