Files
.config/nvim/lua/plugins/ui.lua
2025-09-08 10:48:06 +02:00

92 lines
2.6 KiB
Lua

-- Use this file for any UI based plugins
-- Contains telescope, icons, lualine & whichkey
return {
{
"nvim-telescope/telescope.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" },
cmd = "Telescope",
init = function()
local builtin = require('telescope.builtin')
local wk = require('which-key')
wk.register({
['ff'] = { builtin.find_files, "Find File" },
['fb'] = { builtin.buffers, "Find Buffer" },
['fg'] = { builtin.live_grep, "Find with Grep" },
['fh'] = { builtin.help_tags, "Find Help" },
['fn'] = { ":Telescope file_browser path=%:p:h select_buffer=true<CR>", "File Browser" },
}, { prefix = "<leader>" })
end,
opts = function()
return {
defaults = {
vimgrep_arguments = {
"rg",
"-L",
"--color=never",
"--no-heading",
"--with-filename",
"--line-number",
"--column",
"--smart-case",
},
previewer = true,
file_previewer = require 'telescope.previewers'.vim_buffer_cat.new,
grep_previewer = require 'telescope.previewers'.vim_buffer_vimgrep.new,
qflist_previewer = require 'telescope.previewers'.vim_buffer_qflist.new,
},
extensions = {
file_browser = {
theme = "ivy",
hijack_netrw = true,
},
},
extensions_list = {
"file_browser",
},
}
end,
config = function(_, opts)
local telescope = require "telescope"
telescope.setup(opts)
-- load extensions
for _, ext in ipairs(opts.extensions_list) do
telescope.load_extension(ext)
end
end,
},
{
"nvim-telescope/telescope-file-browser.nvim",
dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" }
},
{
'nvim-tree/nvim-web-devicons',
},
{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
event = "VeryLazy",
opts = {
options = {
icons_enabled = true,
theme = 'auto',
component_separators = '|',
section_separators = { left = '', right = '' },
},
},
},
-- Only load whichkey after all the gui
{
"folke/which-key.nvim",
keys = { "<leader>", "<c-r>", "<c-w>", '"', "'", "`", "c", "v", "g" },
cmd = "WhichKey",
config = function(_, opts)
local wk = require('which-key')
wk.setup(opts)
wk.register({
['f'] = { name = "Find" },
}, { prefix = "<leader>" })
end,
},
}