add ability for setting custom tools options (#44)

* feat(gotests): add custom templates support

* feat(struct_tags): add support for custom `transform` option
This commit is contained in:
Smirnov Oleksandr 2023-08-17 19:13:56 +03:00 committed by GitHub
parent 2e89cea6f3
commit e0a3e70e48
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 4 deletions

View file

@ -1,6 +1,14 @@
---@type gopher.Config
local config = {}
---@alias gopher.ConfigGoTagTransform
---| "snakecase" "GopherUser" -> "gopher_user"
---| "camelcase" "GopherUser" -> "gopherUser"
---| "lispcase" "GopherUser" -> "gopher-user"
---| "pascalcase" "GopherUser" -> "GopherUser"
---| "titlecase" "GopherUser" -> "Gopher User"
---| "keep" keeps the original field name
---@class gopher.Config
local default_config = {
---@class gopher.ConfigCommand
@ -12,6 +20,19 @@ local default_config = {
iferr = "iferr",
dlv = "dlv",
},
---@class gopjer.ConfigGotests
gotests = {
-- gotests doesn't have template named "default" so this plugin uses "default" to set the default template
template = "default",
-- path to a directory containing custom test code templates
---@type string|nil
template_dir = nil,
},
---@class gopher.ConfigGoTag
gotag = {
---@type gopher.ConfigGoTagTransform
transform = "snakecase",
},
}
---@type gopher.Config

View file

@ -1,4 +1,4 @@
local c = require("gopher.config").commands
local c = require "gopher.config"
local ts_utils = require "gopher._utils.ts"
local r = require "gopher._utils.runner"
local u = require "gopher._utils"
@ -6,10 +6,20 @@ local gotests = {}
---@param args table
local function add_test(args)
if c.gotests.template_dir then
table.insert(args, "-template_dir")
table.insert(args, c.gotests.template_dir)
end
if c.gotests.template ~= "default" then
table.insert(args, "-template")
table.insert(args, c.gotests.template)
end
table.insert(args, "-w")
table.insert(args, vim.fn.expand "%")
return r.sync(c.gotests, {
return r.sync(c.commands.gotests, {
args = args,
on_exit = function(data, status)
if not status == 0 then

View file

@ -1,6 +1,6 @@
local ts_utils = require "gopher._utils.ts"
local r = require "gopher._utils.runner"
local c = require("gopher.config").commands
local c = require "gopher.config"
local struct_tags = {}
local function modify(...)
@ -12,6 +12,7 @@ local function modify(...)
-- stylua: ignore
local cmd_args = {
"-transform", c.gotag.transform,
"-format", "json",
"-file", fpath,
"-w"
@ -38,7 +39,7 @@ local function modify(...)
table.insert(cmd_args, "json")
end
local output = r.sync(c.gomodifytags, {
local output = r.sync(c.commands.gomodifytags, {
args = cmd_args,
on_exit = function(data, status)
if not status == 0 then