aboutsummaryrefslogtreecommitdiff
path: root/lua/plugins/indent-blankline.lua
blob: cbbcf27069aa45abbe722cfced279beba4a35ab7 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
local M = {}

--- Setup and configure indent-blankline.nvim
-- This function initializes and configures the indent guides
-- @return boolean True if setup was successful, false otherwise
function M.setup()
  local ok, ibl = pcall(require, 'ibl')
  if not ok then
    return false
  end

  local highlight = {
    "RainbowRed",
    "RainbowYellow",
    "RainbowBlue",
    "RainbowOrange",
    "RainbowGreen",
    "RainbowViolet",
    "RainbowCyan",
  }

  local hooks = require("ibl.hooks")
  -- create the highlight groups in the highlight setup hook, so they are reset
  -- every time the colorscheme changes
  hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
    vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
    vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
    vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
    vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
    vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
    vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
    vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
  end)

  ibl.setup({
  indent = { highlight = highlight },
    exclude = {
      filetypes = {
        "", -- for all buffers without a file type
        "NvimTree",
        "Trouble",
        "TelescopePrompt",
        "TelescopeResults",
        "mason",
        "help",
        "dashboard",
        "packer",
        "neogitstatus",
        "Trouble",
        "text",
        "terminal",
        "lazy",
      },
      buftypes = {
        "terminal",
        "nofile",
        "quickfix",
        "prompt",
      },
    },
  })
  
  -- Toggle indent blankline with <leader>ti
  vim.keymap.set('n', '<leader>ti', '<cmd>IBLToggle<CR>', {
    noremap = true,
    silent = true,
    desc = 'Toggle indent guides'
  })
  
  return true
end

return M