add efm only mode for testing when floating term is off

pull/163/head
ray-x 2 years ago
parent fcc473b1ec
commit ab8a075aa4

@ -605,6 +605,8 @@ require('go').setup({
verbose_tests = true, -- set to add verbose flag to tests
run_in_floaterm = false, -- set to true to run in float window. :GoTermClose closes the floatterm
-- float term recommand if you use richgo/ginkgo with terminal color
test_efm = false, -- errorfomat for quickfix, default mix mode, set to true will be efm only
})
```

@ -65,6 +65,7 @@ _GO_NVIM_CFG = {
test_runner = "go", -- one of {`go`, `richgo`, `dlv`, `ginkgo`}
verbose_tests = true, -- set to add verbose flag to tests
run_in_floaterm = false, -- set to true to run in float window.
test_efm = false, -- errorfomat for quickfix, default mix mode, set to true will be efm only
username = "",
useremail = "",

@ -2,6 +2,7 @@
local M = {}
local util = require("go.utils")
local log = util.log
local trace = util.trace
local getopt = require("go.alt_getopt")
local function compile_efm()
@ -274,10 +275,21 @@ function M.make(...)
vim.cmd([[echo v:shell_error]])
elseif #lines > 0 then
trace(lines)
vim.fn.setqflist({}, " ", {
title = cmd,
lines = lines,
})
local opts = {}
if _GO_NVIM_CFG.test_efm == true then
efm = require("go.gotest").efm()
opts = {
title = cmd,
lines = lines,
efm = efm,
}
else
opts = {
title = cmd,
lines = lines,
}
end
vim.fn.setqflist({}, " ", opts)
end
if tonumber(data) ~= 0 then

@ -119,7 +119,7 @@ M.get_nodes = function(query, lang, defaults, bufnr)
return results
end
M.get_all_nodes = function(query, lang, defaults, bufnr, pos_row, pos_col)
M.get_all_nodes = function(query, lang, defaults, bufnr, pos_row, pos_col, custom)
bufnr = bufnr or 0
-- todo a huge number
pos_row = pos_row or 30000
@ -175,15 +175,15 @@ M.get_all_nodes = function(query, lang, defaults, bufnr, pos_row, pos_col)
)
--
-- may not handle complex node
if op == "name" then
if op == "name" and custom then
-- ulog("node name " .. name)
name = get_node_text(node, bufnr) or ""
declaration_node = node
sRow, sCol, eRow, eCol = ts_utils.get_vim_range({ ts_utils.get_node_range(node) }, bufnr)
elseif op == "declaration" or op == "clause" then
declaration_node = node
sRow, sCol, eRow, eCol = ts_utils.get_vim_range({ ts_utils.get_node_range(node) }, bufnr)
end
sRow, sCol, eRow, eCol = ts_utils.get_vim_range({ ts_utils.get_node_range(node) }, bufnr)
end)
if declaration_node ~= nil then
-- ulog(name .. " " .. op)
@ -211,7 +211,7 @@ M.nodes_in_buf = function(query, default, bufnr, row, col)
if row == nil or col == nil then
row, col = unpack(vim.api.nvim_win_get_cursor(0))
end
local nodes = M.get_all_nodes(query, ft, default, bufnr, row, col)
local nodes = M.get_all_nodes(query, ft, default, bufnr, row, col, true)
if nodes == nil then
vim.notify("Unable to find any nodes.", vim.lsp.log_levels.DEBUG)
ulog("Unable to find any nodes. place your cursor on a go symbol and try again")

Loading…
Cancel
Save