---@type haskell-tools.tools.Config local tools = { codeLens = { autoRefresh = true }, hoogle = { mode = "auto" }, hover = { enable = function() local has_jit = pcall(require, "jit") return has_jit end, border = { { "╭", "FloatBorder" }, { "─", "FloatBorder" }, { "╮", "FloatBorder" }, { "│", "FloatBorder" }, { "╯", "FloatBorder" }, { "─", "FloatBorder" }, { "╰", "FloatBorder" }, { "│", "FloatBorder" }, }, stylize_markdown = false, auto_focus = false, }, definition = { hoogle_signature_fallback = false }, repl = { -- TODO: it ---@type haskell-tools.repl.Handler | (fun():haskell-tools.repl.Handler) `'builtin'`: Use the simple builtin repl. `'toggleterm'`: Use akinsho/toggleterm.nvim. handler = "builtin", prefer = function() return vim.fn.executable("stack") == 1 and "stack" or "cabal" end, builtin = { create_repl_window = function(view) return view.create_repl_split({ size = vim.o.lines / 3 }) end, }, auto_focus = nil, }, tags = { enable = function() return vim.fn.executable("fast-tags") == 1 end, package_events = { "BufWritePost" }, }, log = { logfile = vim.fs.joinpath(vim.fn.stdpath("log"), "haskell-tools.log"), level = vim.log.levels.WARN, }, open_url = function(url) require("haskell-tools.os").open_browser(url) end, } return tools