]> git.rmz.io Git - dotfiles.git/blob - nvim/lua/plugins/ui.lua
nvim/colorscheme: default to onenord
[dotfiles.git] / nvim / lua / plugins / ui.lua
1 ---@type LazyPluginSpec
2 return {
3 {
4 "nvim-notify",
5 },
6 {
7 "bufferline.nvim",
8 ---@type BufferlineConfig
9 opts = {
10 options = {
11 always_show_bufferline = false,
12 },
13 },
14 },
15 {
16 "noice.nvim",
17 enabled = false,
18 ---@type NoiceConfig
19 opts = {
20 presets = {
21 command_palette = false, -- don't position the cmdline and popupmenu together
22 lsp_doc_border = true,
23 long_message_to_split = true,
24 },
25 cmdline = {
26 view = "cmdline",
27 },
28 routes = {
29 { -- send file written messages to mini
30 filter = {
31 event = "msg_show",
32 kind = "",
33 find = "%[w%]",
34 },
35 opts = { skip = true },
36 },
37 },
38 },
39 config = function(_, opts)
40 -- ensure [w] is written to msg_show so we can match it
41 vim.opt.shortmess:append("w")
42 vim.opt.shortmess:remove("W")
43
44 require("noice").setup(opts)
45 end,
46 },
47 {
48 "lualine.nvim",
49 --TODO: Things that were in vim but are missing
50 -- - git line add/mod/del ar next to branch name rather on right
51 -- - one status line per splits
52 -- - maybe a single one is OK too?
53 -- - I think I want a line stating wihch file is in the split though
54 -- - unix/dos eof markers
55 -- - really I only want to know if it's not unix
56 -- - filetype in text form. It's quite important to glance this quickly
57 },
58 {
59 "indent-blankline.nvim",
60 },
61 {
62 "mini.indentscope",
63 opts = {
64 draw = {
65 animation = require("mini.indentscope").gen_animation.linear({ duration = 10 }),
66 },
67 },
68 },
69 {
70 "alpha-nvim",
71 opts = function()
72 local dashboard = require("alpha.themes.dashboard")
73 local logo = [[
74 ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z
75 ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z
76 ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z
77 ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z
78 ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║
79 ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
80 ]]
81
82 dashboard.section.header.val = vim.split(logo, "\n")
83 dashboard.section.buttons.val = {
84 dashboard.button("f", " " .. " Find file", ":Telescope find_files <CR>"),
85 dashboard.button("n", " " .. " New file", ":ene <BAR> startinsert <CR>"),
86 dashboard.button("r", " " .. " Recent files", ":Telescope oldfiles <CR>"),
87 dashboard.button("c", " " .. " Config", ":e $MYVIMRC <CR>"),
88 dashboard.button("s", " " .. " Restore Session", [[:lua require("persistence").load() <cr>]]),
89 dashboard.button("l", "󰒲 " .. " Lazy", ":Lazy<CR>"),
90 dashboard.button("q", " " .. " Close", ":bdelete<CR>"),
91 }
92 for _, button in ipairs(dashboard.section.buttons.val) do
93 button.opts.hl = "AlphaButtons"
94 button.opts.hl_shortcut = "AlphaShortcut"
95 end
96 dashboard.section.footer.opts.hl = "Type"
97 dashboard.section.header.opts.hl = "AlphaHeader"
98 dashboard.section.buttons.opts.hl = "AlphaButtons"
99 dashboard.opts.layout[1].val = 8
100 return dashboard
101 end,
102 },
103 {
104 "nvim-navic",
105 },
106 {
107 "nvim-web-devicons",
108 },
109 {
110 "nui.nvim",
111 },
112 }