aboutsummaryrefslogtreecommitdiffstats
path: root/lua/conform/formatters/format-queries.lua
blob: 42b4efa16c6187585a262300e42f806e821fdd2f (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
---@return nil|string
local function get_format_script()
  return vim.api.nvim_get_runtime_file("scripts/format-queries.lua", false)[1]
end

---@type conform.FileFormatterConfig
return {
  meta = {
    url = "https://github.com/nvim-treesitter/nvim-treesitter/blob/main/CONTRIBUTING.md#formatting",
    description = "Tree-sitter query formatter.",
  },
  condition = function()
    local ok = pcall(vim.treesitter.language.inspect, "query")
    return ok and get_format_script() ~= nil
  end,
  command = "nvim",
  args = function()
    local script = get_format_script()
    assert(script)
    -- Manually set the runtimepath to put nvim-treesitter first. The format-queries script relies
    -- on the nvim-treesitter parser; the one bundled with Neovim may be outdated.
    local rtp = vim.fn.fnamemodify(script, ":h:h")
    return { "-c", "set rtp^=" .. rtp, "-l", script, "$FILENAME" }
  end,
  stdin = false,
}