summaryrefslogtreecommitdiff
path: root/fnl/plugins/ui
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2023-01-15 22:47:30 +0100
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2023-01-15 22:47:30 +0100
commit10b175f252104458d7478d8a2822818850cfdf92 (patch)
treeee926d33bee6b4acfe45fce0dd8aa9e94f03f06a /fnl/plugins/ui
parent9d4f654187869f96e27ab54a88708aba5959f1ba (diff)
Refactor file structure
Diffstat (limited to 'fnl/plugins/ui')
-rw-r--r--fnl/plugins/ui/alpha.fnl47
-rw-r--r--fnl/plugins/ui/bqf.fnl3
-rw-r--r--fnl/plugins/ui/lualine.fnl87
-rw-r--r--fnl/plugins/ui/minibar.fnl30
4 files changed, 167 insertions, 0 deletions
diff --git a/fnl/plugins/ui/alpha.fnl b/fnl/plugins/ui/alpha.fnl
new file mode 100644
index 0000000..87c45e0
--- /dev/null
+++ b/fnl/plugins/ui/alpha.fnl
@@ -0,0 +1,47 @@
+;; A customizable greeter.
+
+(local ascii-art [" ##############..... ############## "
+ " ##############......############## "
+ " ##########..........########## "
+ " ##########........########## "
+ " ##########.......########## "
+ " ##########.....##########.. "
+ " ##########....##########..... "
+ " ..##########..##########......... "
+ " ....##########.#########............. "
+ " ..################JJJ............ "
+ " ################............. "
+ " ##############.JJJ.JJJJJJJJJJ "
+ " ############...JJ...JJ..JJ JJ "
+ " ##########....JJ...JJ..JJ JJ "
+ " ########......JJJ..JJJ JJJ JJJ "
+ " ###### ......... "
+ " ..... "
+ " . "])
+
+(fn setup []
+ (let [alpha (require :alpha)]
+ (let [dashboard (require :alpha.themes.dashboard)]
+ (set dashboard.section.header.val ascii-art)
+ (set dashboard.section.buttons.val
+ [(dashboard.button :e " New file" ":ene <BAR> startinsert <CR>")
+ (dashboard.button :f " Find file"
+ ":Telescope find_files theme=dropdown<CR>")
+ (dashboard.button :t " Find text"
+ ":Telescope live_grep theme=dropdown<CR>")
+ (dashboard.button :p " Find project"
+ ":Telescope projects theme=dropdown<CR>")
+ (dashboard.button :r " Recently used files"
+ ":Telescope oldfiles theme=dropdown<CR>")
+ (dashboard.button :c " Configuration"
+ ":e ~/.config/nvim/init.lua <CR>")
+ (dashboard.button :q " Quit Neovim" ":qa<CR>")])
+ (set dashboard.section.header.opts.hl :AlphaHeader)
+ (set dashboard.section.buttons.opts.hl :AlphaButtons)
+ (set dashboard.opts.opts.noautocmd true)
+ (alpha.setup dashboard.opts))))
+
+{1 :goolord/alpha-nvim
+ :event :VimEnter
+ :config (fn []
+ (setup))}
diff --git a/fnl/plugins/ui/bqf.fnl b/fnl/plugins/ui/bqf.fnl
new file mode 100644
index 0000000..e2b0791
--- /dev/null
+++ b/fnl/plugins/ui/bqf.fnl
@@ -0,0 +1,3 @@
+;; Make Neovim's quickfix window better.
+
+{1 :kevinhwang91/nvim-bqf :event :BufReadPost :config true}
diff --git a/fnl/plugins/ui/lualine.fnl b/fnl/plugins/ui/lualine.fnl
new file mode 100644
index 0000000..7373704
--- /dev/null
+++ b/fnl/plugins/ui/lualine.fnl
@@ -0,0 +1,87 @@
+;; Statusbar.
+
+(local disable [:neogitstatus
+ :netrw
+ :lir
+ :lazy
+ :alpha
+ :Outline
+ :NeogitStatus
+ :NeogitCommitMessage])
+
+(local ignore [:help :packer :spectre_panel :TelescopePrompt])
+
+(fn active-clients []
+ (let [clients (vim.lsp.buf_get_clients)
+ client_names []]
+ (each [_ client (pairs clients)]
+ (if (not= client.name :null-ls)
+ (table.insert client_names client.name)))
+ (if (> (length client_names) 0)
+ (table.concat client_names ", ")
+ "")))
+
+(fn hide-in-width []
+ (> (vim.fn.winwidth 0) 80))
+
+(local diagnostics {1 :diagnostics
+ :sources [:nvim_diagnostic]
+ :sections [:error :warn]
+ :symbols {:error " " :warn " "}
+ :colored false
+ :disabled_buftypes [:nvim-tree]
+ :padding 0
+ :update_in_insert false
+ :always_visible true})
+
+(local diff {1 :diff
+ :colored false
+ :disabled_buftypes [:nvim-tree]
+ :cond hide-in-width})
+
+(local branch {1 "b:gitsigns_head"
+ :icon " "
+ :disabled_buftypes [:nvim-tree]
+ :cond hide-in-width})
+
+(local filetype {1 :filetype
+ :icon_only true
+ :disabled_buftypes [:nvim-tree]
+ :colored false
+ :cond hide_in_width})
+
+(local language-server {1 active-clients
+ :disabled_buftypes [:nvim-tree]
+ :cond hide_in_width})
+
+(local lsp-progress
+ {1 :lsp_progress
+ :display_components [[:title :percentage :message]]
+ :timer {:progress_enddelay 500 :lsp_client_name_enddelay 500}})
+
+(local opts {:options {:icons_enabled true
+ :theme :auto
+ :component_separators ""
+ :section_separators {:left "" :right ""}
+ :disabled_filetypes disable
+ :ignore_focus ignore
+ :always_divide_middle true
+ :globalstatus true}
+ :sections {:lualine_a [:mode]
+ :lualine_b [branch diff]
+ :lualine_c {}
+ :lualine_x [lsp_progress language-server diagnostics]
+ :lualine_y [filetype]
+ :lualine_z [:location :progress]}
+ :inactive_sections {:lualine_a [:mode]
+ :lualine_b {}
+ :lualine_c {}
+ :lualine_x {}
+ :lualine_y {}
+ :lualine_z [:location :progress]}
+ :extensions []})
+
+{1 :nvim-lualine/lualine.nvim
+ :event :BufReadPost
+ : opts
+ :dependencies [:kyazdani42/nvim-web-devicons :arkav/lualine-lsp-progress]}
diff --git a/fnl/plugins/ui/minibar.fnl b/fnl/plugins/ui/minibar.fnl
new file mode 100644
index 0000000..0dff6d6
--- /dev/null
+++ b/fnl/plugins/ui/minibar.fnl
@@ -0,0 +1,30 @@
+;; Show the filename in the top left corner.
+
+{1 :aktersnurra/minibar.nvim
+ :event :BufReadPre
+ :opts {:ignore-filetypes [:help
+ :harpoon
+ :startify
+ :dashboard
+ :lir
+ :alpha
+ :packer
+ :neogitstatus
+ :Trouble
+ :org
+ :lazy
+ :netrw
+ :Outline
+ :NeogitStatus
+ :NeogitCommitMessage
+ :NeogitNotification
+ :NeogitCommitView
+ :spectre_panel
+ ""]
+ :events [:CursorMoved
+ :TermOpen
+ :DirChanged
+ :BufWinEnter
+ :BufFilePost
+ :InsertEnter
+ :BufWritePost]}}