summaryrefslogtreecommitdiff
path: root/lua/bee/format.lua
blob: 4a5893211fdc579d388f6b7a995637561143dd85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
return {
    "conform.nvim",
    auto_enable = true,
    event = "FileType",
    keys = {
        { "<leader>lf", desc = "[F]ormat [F]ile" },
    },
    after = function(_)
        local conform = require("conform")
        conform.setup({
            format_on_save = {
                timeout_ms = 1000,
                lsp_format = "fallback",
                quiet = true,
            },
            formatters_by_ft = {
                lua = { "stylua" },
                nix = { "nixfmt" },
                c = { "clang_format" },
                cpp = { "clang_format" },
                cmake = { "cmake_format" },
                toml = { "tombi" },
                go = { "gofmt", "golint" },
                -- Use a sub-list to run only the first available formatter
                javascript = { { "prettierd", "prettier" } },
            },
        })

        vim.keymap.set({ "n", "v" }, "<leader>lf", function()
            conform.format({
                lsp_fallback = true,
                async = false,
                timeout_ms = 1000,
            })
        end, { desc = "[L]anguage [F]ormat" })
    end,
}