From 86fc163e549d78136855ac2b45e91ffb2f43affc Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Sun, 8 Jan 2023 02:49:49 +0100 Subject: Refactor config loading --- fnl/config/alpha.fnl | 83 ++++++------ fnl/config/autocmd.fnl | 10 +- fnl/config/autopairs.fnl | 35 +++--- fnl/config/better-escape.fnl | 11 +- fnl/config/bqf.fnl | 3 +- fnl/config/cmd.fnl | 7 ++ fnl/config/cmp.fnl | 110 +++++++++------- fnl/config/colorizer.fnl | 4 - fnl/config/colorscheme.fnl | 15 ++- fnl/config/comment.fnl | 35 +++--- fnl/config/diffview.fnl | 6 - fnl/config/flit.fnl | 11 +- fnl/config/gitsigns.fnl | 89 +++++++------ fnl/config/harpoon.fnl | 32 ++--- fnl/config/lazy.fnl | 37 ++++-- fnl/config/leap.fnl | 13 +- fnl/config/lir.fnl | 88 +++++++------ fnl/config/lsp/lspconfig.fnl | 56 +++++---- fnl/config/lsp/mason.fnl | 14 ++- fnl/config/lsp/null-ls.fnl | 70 ++++++----- fnl/config/lualine.fnl | 144 ++++++++++----------- fnl/config/minibar.fnl | 58 ++++----- fnl/config/neogit.fnl | 4 - fnl/config/orgmode.fnl | 43 +++---- fnl/config/persistence.fnl | 5 +- fnl/config/project.fnl | 7 +- fnl/config/spectre.fnl | 119 +++++++++--------- fnl/config/stay-in-place.fnl | 4 - fnl/config/surround.fnl | 6 - fnl/config/telescope.fnl | 171 +++++++++++++------------ fnl/config/toggleterm.fnl | 15 +-- fnl/config/treesitter.fnl | 58 ++++----- fnl/config/trim.fnl | 5 +- fnl/config/trouble.fnl | 157 ++++++++++++----------- fnl/config/vim-slash.fnl | 6 +- fnl/config/which-key.fnl | 291 +++++++++++++++++++++---------------------- fnl/config/window-picker.fnl | 29 +++-- fnl/config/zen.fnl | 5 +- 38 files changed, 957 insertions(+), 899 deletions(-) delete mode 100644 fnl/config/colorizer.fnl delete mode 100644 fnl/config/diffview.fnl delete mode 100644 fnl/config/neogit.fnl delete mode 100644 fnl/config/stay-in-place.fnl delete mode 100644 fnl/config/surround.fnl (limited to 'fnl/config') diff --git a/fnl/config/alpha.fnl b/fnl/config/alpha.fnl index e25e6ab..87c45e0 100644 --- a/fnl/config/alpha.fnl +++ b/fnl/config/alpha.fnl @@ -1,42 +1,47 @@ ;; A customizable greeter. -(module config.alpha {autoload {util config.util}}) -(def- ascii-art [" ##############..... ############## " - " ##############......############## " - " ##########..........########## " - " ##########........########## " - " ##########.......########## " - " ##########.....##########.. " - " ##########....##########..... " - " ..##########..##########......... " - " ....##########.#########............. " - " ..################JJJ............ " - " ################............. " - " ##############.JJJ.JJJJJJJJJJ " - " ############...JJ...JJ..JJ JJ " - " ##########....JJ...JJ..JJ JJ " - " ########......JJJ..JJJ JJJ JJJ " - " ###### ......... " - " ..... " - " . "]) +(local ascii-art [" ##############..... ############## " + " ##############......############## " + " ##########..........########## " + " ##########........########## " + " ##########.......########## " + " ##########.....##########.. " + " ##########....##########..... " + " ..##########..##########......... " + " ....##########.#########............. " + " ..################JJJ............ " + " ################............. " + " ##############.JJJ.JJJJJJJJJJ " + " ############...JJ...JJ..JJ JJ " + " ##########....JJ...JJ..JJ JJ " + " ########......JJJ..JJJ JJJ JJJ " + " ###### ......... " + " ..... " + " . "]) -(let [alpha (util.prequire :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 startinsert ") - (dashboard.button :f " Find file" - ":Telescope find_files theme=dropdown") - (dashboard.button :t " Find text" - ":Telescope live_grep theme=dropdown") - (dashboard.button :p " Find project" - ":Telescope projects theme=dropdown") - (dashboard.button :r " Recently used files" - ":Telescope oldfiles theme=dropdown") - (dashboard.button :c " Configuration" - ":e ~/.config/nvim/init.lua ") - (dashboard.button :q " Quit Neovim" ":qa")]) - (set dashboard.section.header.opts.hl :AlphaHeader) - (set dashboard.section.buttons.opts.hl :AlphaButtons) - (set dashboard.opts.opts.noautocmd true) - (alpha.setup dashboard.opts))) +(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 startinsert ") + (dashboard.button :f " Find file" + ":Telescope find_files theme=dropdown") + (dashboard.button :t " Find text" + ":Telescope live_grep theme=dropdown") + (dashboard.button :p " Find project" + ":Telescope projects theme=dropdown") + (dashboard.button :r " Recently used files" + ":Telescope oldfiles theme=dropdown") + (dashboard.button :c " Configuration" + ":e ~/.config/nvim/init.lua ") + (dashboard.button :q " Quit Neovim" ":qa")]) + (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/config/autocmd.fnl b/fnl/config/autocmd.fnl index c12020f..e58803b 100644 --- a/fnl/config/autocmd.fnl +++ b/fnl/config/autocmd.fnl @@ -7,7 +7,7 @@ (defn create-autocmd [event opts] (nvim.create_autocmd event opts)) (create-autocmd :FileType - {:pattern [:qf :help :man :lspinfo] + {:pattern [:qf :help :man :lspinfo :spectre_panel] :command "nnoremap q :close"}) (create-autocmd :TextYankPost @@ -46,3 +46,11 @@ (env.init nvim.g.aniseed#env))}) (create-autocmd :FocusGained {:command :checktime}) + +(create-autocmd :TermOpen + {:pattern "term://*toggleterm#*" + :callback (fn [] + (vim.keymap.set :t : "wincmd h" {}) + (vim.keymap.set :t : "wincmd j" {}) + (vim.keymap.set :t : "wincmd k" {}) + (vim.keymap.set :t : "wincmd l" {}))}) diff --git a/fnl/config/autopairs.fnl b/fnl/config/autopairs.fnl index d7865b5..076b120 100644 --- a/fnl/config/autopairs.fnl +++ b/fnl/config/autopairs.fnl @@ -1,21 +1,20 @@ ;; Autopairs for brackets and quote symbols. -(module config.autopairs {autoload {util config.util}}) -(def- opts {:check_ts true - :ts_config {:lua [:string :source] - :javascript [:string :template_string] - :java false} - :disable_filetype [:TelescopePrompt :spectre_panel] - :fast_warp {:map : - :chars ["{" "[" "(" "\"" "'"] - :pattern (string.gsub "[%'%\"%)%>%]%)%}%,]" "%s+" "") - :check_comma true - :highlight :PmenuSel - :highlight_grey :LineNr - :offset 0 - :end_key "$" - :keys :qwertyuiopzxcvbnmasdfghjkl - :highlight :PmenuSel - :highlight_grey :LineNr}}) +(local opts {:check_ts true + :ts_config {:lua [:string :source] + :javascript [:string :template_string] + :java false} + :disable_filetype [:TelescopePrompt :spectre_panel] + :fast_warp {:map : + :chars ["{" "[" "(" "\"" "'"] + :pattern (string.gsub "[%'%\"%)%>%]%)%}%,]" "%s+" "") + :check_comma true + :highlight :PmenuSel + :highlight_grey :LineNr + :offset 0 + :end_key "$" + :keys :qwertyuiopzxcvbnmasdfghjkl + :highlight :PmenuSel + :highlight_grey :LineNr}}) -(util.setup :nvim-autopairs opts) +{1 :windwp/nvim-autopairs :event :InsertEnter :config opts} diff --git a/fnl/config/better-escape.fnl b/fnl/config/better-escape.fnl index 659d22f..f262784 100644 --- a/fnl/config/better-escape.fnl +++ b/fnl/config/better-escape.fnl @@ -1,9 +1,8 @@ ;; Better escape without nasty delay. -(module config.better-escape {autoload {util config.util}}) -(def- opts {:mapping [:kk :jj] - :timeout vim.o.timeoutlen - :clear_empty_lines false - :keys :}) +(local opts {:mapping [:kk :jj] + :timeout vim.o.timeoutlen + :clear_empty_lines false + :keys :}) -(util.setup :better_escape opts) +{1 :max397574/better-escape.nvim :event :BufReadPost :config opts} diff --git a/fnl/config/bqf.fnl b/fnl/config/bqf.fnl index 59a1aad..e2b0791 100644 --- a/fnl/config/bqf.fnl +++ b/fnl/config/bqf.fnl @@ -1,4 +1,3 @@ ;; Make Neovim's quickfix window better. -(module config.bqf {autoload {util config.util}}) -(util.setup :bqf {}) +{1 :kevinhwang91/nvim-bqf :event :BufReadPost :config true} diff --git a/fnl/config/cmd.fnl b/fnl/config/cmd.fnl index e548839..735bbc4 100644 --- a/fnl/config/cmd.fnl +++ b/fnl/config/cmd.fnl @@ -84,3 +84,10 @@ (let [persistence (util.prequire :persistence)] (persistence.stop))) {:nargs 0}) + +(nvim.create_user_command :FindFiles + (lambda [] + (util.telescope-builtin :find_files + {:theme :get_dropdown + :previewer false})) + {:nargs 0}) diff --git a/fnl/config/cmp.fnl b/fnl/config/cmp.fnl index d1cedec..a062d92 100644 --- a/fnl/config/cmp.fnl +++ b/fnl/config/cmp.fnl @@ -1,49 +1,65 @@ ;; Configuration for completion plugin. -(module config.cmp {autoload {nvim aniseed.nvim util config.util}}) -(let [cmp (util.prequire :cmp) - lspkind (util.prequire :lspkind) - luasnip (util.prequire :luasnip) - luasnip-vscode (require :luasnip.loaders.from_vscode)] - (luasnip-vscode.lazy_load) - (lspkind.init) - (cmp.setup {:snippet {:expand (fn [args] - (luasnip.lsp_expand args.body))} - :completion {:completopt "menu,menuone,noinsert"} - :mapping (cmp.mapping.preset.insert {: (cmp.mapping.select_prev_item) - : (cmp.mapping.select_next_item) - : (cmp.mapping (cmp.mapping.scroll_docs -1) - [:i :c]) - : (cmp.mapping (cmp.mapping.scroll_docs 1) - [:i :c]) - : (cmp.mapping (cmp.mapping.complete) - [:i - :c]) - : (cmp.mapping {:i (cmp.mapping.abort) - :c (cmp.mapping.close)}) - : (cmp.mapping.confirm {:select true}) - : (cmp.mapping.confirm {:select true})}) - :sources [{:name :nvim_lsp} - {:name :nvim_lua} - {:name :luasnip} - {:name :spell} - {:name :orgmode} - {:name :buffer :keyword_length 4} - {:name :path :keyword_length 6}] - :formatting {:format (lspkind.cmp_format {:with_text true - :menu {:buffer "" - :nvim_lsp "" - :nvim_lua "" - :path "" - :luasnip ""}})} - :window {:documentation {:border ["╭" - "─" - "╮" - "│" - "╯" - "─" - "╰" - "│"]}} - :confirm_opts {:behavior cmp.ConfirmBehavior.Replace - :select false} - :experimental {:ghost_text false :native_menu false}})) +(fn setup [] + (let [cmp (require :cmp) + lspkind (require :lspkind) + luasnip (require :luasnip) + luasnip-vscode (require :luasnip.loaders.from_vscode)] + (luasnip-vscode.lazy_load) + (lspkind.init) + (cmp.setup {:snippet {:expand (fn [args] + (luasnip.lsp_expand args.body))} + :completion {:completopt "menu,menuone,noinsert"} + :mapping (cmp.mapping.preset.insert {: (cmp.mapping.select_prev_item) + : (cmp.mapping.select_next_item) + : (cmp.mapping (cmp.mapping.scroll_docs -1) + [:i + :c]) + : (cmp.mapping (cmp.mapping.scroll_docs 1) + [:i + :c]) + : (cmp.mapping (cmp.mapping.complete) + [:i + :c]) + : (cmp.mapping {:i (cmp.mapping.abort) + :c (cmp.mapping.close)}) + : (cmp.mapping.confirm {:select true}) + : (cmp.mapping.confirm {:select true})}) + :sources [{:name :nvim_lsp} + {:name :nvim_lua} + {:name :luasnip} + {:name :spell} + {:name :orgmode} + {:name :buffer :keyword_length 4} + {:name :path :keyword_length 6}] + :formatting {:format (lspkind.cmp_format {:with_text true + :menu {:buffer "" + :nvim_lsp "" + :nvim_lua "" + :path "" + :luasnip ""}})} + :window {:documentation {:border ["╭" + "─" + "╮" + "│" + "╯" + "─" + "╰" + "│"]}} + :confirm_opts {:behavior cmp.ConfirmBehavior.Replace + :select false} + :experimental {:ghost_text false :native_menu false}}))) + +{1 :hrsh7th/nvim-cmp + :dependencies [:hrsh7th/cmp-buffer + :onsails/lspkind-nvim + :hrsh7th/cmp-nvim-lsp + :hrsh7th/cmp-cmdline + :L3MON4D3/LuaSnip + :rafamadriz/friendly-snippets + :hrsh7th/cmp-path + :saadparwaiz1/cmp_luasnip + :f3fora/cmp-spell] + :event :InsertEnter + :config (fn [] + (setup))} diff --git a/fnl/config/colorizer.fnl b/fnl/config/colorizer.fnl deleted file mode 100644 index ff7fbab..0000000 --- a/fnl/config/colorizer.fnl +++ /dev/null @@ -1,4 +0,0 @@ -;; Enables colorization of color codes in source files. -(module config.colorizer {autoload {util config.util}}) - -(util.setup :colorizer {}) diff --git a/fnl/config/colorscheme.fnl b/fnl/config/colorscheme.fnl index 8c27ca4..83175c2 100644 --- a/fnl/config/colorscheme.fnl +++ b/fnl/config/colorscheme.fnl @@ -1,9 +1,16 @@ ;; Load neovim colorscheme. -(module config.colorscheme {autoload {util config.util}}) (local colorscheme :no-clown-fiesta) -(def- opts {:styles {:type {:bold true}}}) +(local opts {:styles {:type {:bold true}}}) -(util.setup :no-clown-fiesta opts) -(vim.cmd (.. "colorscheme " colorscheme)) +(fn setup [] + (let [plugin (require colorscheme)] + (plugin.setup opts) + (vim.cmd (.. "colorscheme " colorscheme)))) + +{1 :aktersnurra/no-clown-fiesta.nvim + :lazy false + :priority 1000 + :config (fn [] + (setup))} diff --git a/fnl/config/comment.fnl b/fnl/config/comment.fnl index 6879df6..29b7871 100644 --- a/fnl/config/comment.fnl +++ b/fnl/config/comment.fnl @@ -1,21 +1,20 @@ ;; Language aware commenting. -(module config.comment {autoload {util config.util}}) -(def- opts {:toggler {;; Line-comment toggle keymap - :line :mcc - ;; Block-comment toggle keymap - :block :mbc} - ;; LHS of operator-pending mappings in NORMAL and VISUAL mode - :opleader {;; Line-comment keymap - :line :mc - ;; Block-comment keymap - :block :mb} - ;; LHS of extra mappings - :extra {;; Add comment on the line above - :above :mcO - ;; Add comment on the line below - :below :mco - ;; Add comment at the end of line - :eol :mcA}}) +(local opts {:toggler {;; Line-comment toggle keymap + :line :mcc + ;; Block-comment toggle keymap + :block :mbc} + ;; LHS of operator-pending mappings in NORMAL and VISUAL mode + :opleader {;; Line-comment keymap + :line :mc + ;; Block-comment keymap + :block :mb} + ;; LHS of extra mappings + :extra {;; Add comment on the line above + :above :mcO + ;; Add comment on the line below + :below :mco + ;; Add comment at the end of line + :eol :mcA}}) -(util.setup :Comment opts) +{1 :numToStr/Comment.nvim :event :BufReadPost :config opts} diff --git a/fnl/config/diffview.fnl b/fnl/config/diffview.fnl deleted file mode 100644 index 3772d32..0000000 --- a/fnl/config/diffview.fnl +++ /dev/null @@ -1,6 +0,0 @@ -;; Trim whitespaces on save. -(module config.diffview {autoload {util config.util}}) - -(def- opts {}) - -(util.setup :diffview opts) diff --git a/fnl/config/flit.fnl b/fnl/config/flit.fnl index d80a0d9..536c505 100644 --- a/fnl/config/flit.fnl +++ b/fnl/config/flit.fnl @@ -1,9 +1,8 @@ ;; fFtT motions on roids. -(module config.flit {autoload {util config.util nvim aniseed.nvim}}) -(def- opts {:keys {:f :f :F :F :t :t :T :T} - :labeled_modes :v - :multiline true - :opts {}}) +(local opts {:keys {:f :f :F :F :t :t :T :T} + :labeled_modes :v + :multiline true + :opts {}}) -(util.setup :flit opts) +{1 :ggandor/flit.nvim :event :BufReadPost :config opts} diff --git a/fnl/config/gitsigns.fnl b/fnl/config/gitsigns.fnl index 663e3e0..7b7ed95 100644 --- a/fnl/config/gitsigns.fnl +++ b/fnl/config/gitsigns.fnl @@ -1,49 +1,48 @@ ;; Add git signs to source files. -(module config.gitsigns {autoload {util config.util}}) -(def- signs {:add {:hl :GitSignsAdd - :text "|" - :numhl :GitSignsAddNr - :linehl :GitSignsAddLn} - :change {:hl :GitSignsChange - :text "|" - :numhl :GitSignsChangeNr - :linehl :GitSignsChangeLn} - :delete {:hl :GitSignsDelete - :text "_" - :numhl :GitSignsDeleteNr - :linehl :GitSignsDeleteLn} - :topdelete {:hl :GitSignsDelete - :text "‾" - :numhl :GitSignsDeleteNr - :linehl :GitSignsDeleteLn} - :changedelete {:hl :GitSignsChange - :text "~" - :numhl :GitSignsChangeNr - :linehl :GitSignsChangeLn}}) +(local signs {:add {:hl :GitSignsAdd + :text "|" + :numhl :GitSignsAddNr + :linehl :GitSignsAddLn} + :change {:hl :GitSignsChange + :text "|" + :numhl :GitSignsChangeNr + :linehl :GitSignsChangeLn} + :delete {:hl :GitSignsDelete + :text "_" + :numhl :GitSignsDeleteNr + :linehl :GitSignsDeleteLn} + :topdelete {:hl :GitSignsDelete + :text "‾" + :numhl :GitSignsDeleteNr + :linehl :GitSignsDeleteLn} + :changedelete {:hl :GitSignsChange + :text "~" + :numhl :GitSignsChangeNr + :linehl :GitSignsChangeLn}}) -(def- opts {: signs - :signcolumn true - :numhl false - :linehl false - :word_diff false - :watch_gitdir {:interval 1000 :follow_files true} - :attach_to_untracked true - :current_line_blame false - :current_line_blame_opts {:virt_text true - :virt_text_pos :eol - :delay 1000 - :ignore_whitespace false} - :current_line_blame_formatter_opts {:relative_time false} - :sign_priority 6 - :update_debounce 100 - :status_formatter nil - :max_file_length 40000 - :preview_config {:border :single - :style :minimal - :relative :cursor - :row 0 - :col 1} - :yadm {:enable false}}) +(local opts {: signs + :signcolumn true + :numhl false + :linehl false + :word_diff false + :watch_gitdir {:interval 1000 :follow_files true} + :attach_to_untracked true + :current_line_blame false + :current_line_blame_opts {:virt_text true + :virt_text_pos :eol + :delay 1000 + :ignore_whitespace false} + :current_line_blame_formatter_opts {:relative_time false} + :sign_priority 6 + :update_debounce 100 + :status_formatter nil + :max_file_length 40000 + :preview_config {:border :single + :style :minimal + :relative :cursor + :row 0 + :col 1} + :yadm {:enable false}}) -(util.setup :gitsigns opts) +{1 :lewis6991/gitsigns.nvim :event :BufReadPost :config opts} diff --git a/fnl/config/harpoon.fnl b/fnl/config/harpoon.fnl index 9f9d2f2..9bdd81f 100644 --- a/fnl/config/harpoon.fnl +++ b/fnl/config/harpoon.fnl @@ -1,19 +1,19 @@ ;; Harpoon files for navigation. -(module config.harpoon {autoload {util config.util nvim aniseed.nvim}}) -(def- opts {}) +(fn setup [] + (vim.keymap.set :n : + (fn [] + (util.telescope-ext :harpoon :marks + {:theme :get_dropdown + :previewer false + :initial_mode :normal + :prompt_title :Harpoon})) + {}) + (vim.keymap.set :n : + "Telescope buffers theme=dropdown previewer=false initial_mode=normal" + {})) -(util.setup :harpoon opts) - -(vim.keymap.set :n : - (fn [] - (util.telescope-ext :harpoon :marks - {:theme :get_dropdown - :previewer false - :initial_mode :normal - :prompt_title :Harpoon})) - {}) - -(nvim.set_keymap :n : - "Telescope buffers theme=dropdown previewer=false initial_mode=normal" - {}) +{1 :ThePrimeagen/harpoon + :event :BufReadPost + :config (fn [] + (setup))} diff --git a/fnl/config/lazy.fnl b/fnl/config/lazy.fnl index 09b0243..faa53c2 100644 --- a/fnl/config/lazy.fnl +++ b/fnl/config/lazy.fnl @@ -1,14 +1,27 @@ ;; Lazy opts. -(module config.lazy {autoload {util config.util}}) -(def- opts {:defaults {:lazy true :version "*"} - :install {:colorscheme [:no-clown-fiesta]} - :checker {:enabled true} - :performance {:rtp {:disabled_plugins [:gzip - :matchit - :matchparen - :netrwPlugin - :tarPlugin - :tohtml - :tutor - :zipPlugin]}}}) +{:install {:colorscheme [:no-clown-fiesta]} + :performance {:rtp {:disabled_plugins [:gzip + :matchit + :matchparen + :netrwPlugin + :tarPlugin + :tohtml + :tutor + :zipPlugin]}} + :ui {:icons {:cmd " " + :config " " + :event " " + :ft " " + :init " " + :import " " + :keys " " + :lazy "鈴 " + :loaded "● " + :not_loaded "○ " + :plugin " " + :runtime " " + :source " " + :start " " + :task " " + :list ["● " " " " " "‒ "]}}} diff --git a/fnl/config/leap.fnl b/fnl/config/leap.fnl index 868f9eb..2a03da1 100644 --- a/fnl/config/leap.fnl +++ b/fnl/config/leap.fnl @@ -1,8 +1,11 @@ ;; Leap through text. -(module config.leap {autoload {util config.util nvim aniseed.nvim}}) -(def- opts {}) +(fn setup [] + (let [leap (require :leap)] + (leap.setup {}) + (leap.set_default_keymaps))) -(let [leap (util.prequire :leap)] - (leap.setup opts) - (leap.set_default_keymaps)) +{1 :ggandor/leap.nvim + :event :BufReadPost + :config (fn [] + (setup))} diff --git a/fnl/config/lir.fnl b/fnl/config/lir.fnl index 45fb052..22b15cf 100644 --- a/fnl/config/lir.fnl +++ b/fnl/config/lir.fnl @@ -1,44 +1,50 @@ ;; Simple file manager. -(module config.lir {autoload {util config.util nvim aniseed.nvim}}) -(defn- opts [actions mark-actions clipboard-actions] - {:show_hidden_files false - :devicons_enable true - :mappings {:l actions.edit - : actions.split - :v actions.vsplit - : actions.tabedit - :h actions.up - :q actions.quit - :A actions.mkdir - :a actions.newfile - :r actions.rename - "@" actions.cd - :Y actions.yank_path - :i actions.toggle_show_hidden - :d actions.delete - :J (fn [] - (mark-actions.toggle_mark) - (vim.cmd "normal! j")) - :c clipboard-actions.copy - :x clipboard-actions.cut - :p clipboard-actions.paste} - :float {:winblend 0 - :curdir_window {:enable false :highlight_dirname true} - :win_opts (fn [] - (let [width (math.floor (* vim.o.columns 0.7)) - height (math.floor (* vim.o.lines 0.7))] - {:border :rounded : width : height}))} - :hide_cursor false - :on_init (fn [] - (nvim.buf_set_keymap 0 :x :J - ":lua require(\"lir.mark.actions\").toggle_mark(\"v\")" - {:noremap true :silent true}))}) +(fn opts [actions mark-actions clipboard-actions] + {:show_hidden_files false + :devicons_enable true + :mappings {:l actions.edit + : actions.split + :v actions.vsplit + : actions.tabedit + :h actions.up + :q actions.quit + :A actions.mkdir + :a actions.newfile + :r actions.rename + "@" actions.cd + :Y actions.yank_path + :i actions.toggle_show_hidden + :d actions.delete + :J (fn [] + (mark-actions.toggle_mark) + (vim.cmd "normal! j")) + :c clipboard-actions.copy + :x clipboard-actions.cut + :p clipboard-actions.paste} + :float {:winblend 0 + :curdir_window {:enable false :highlight_dirname true} + :win_opts (fn [] + (let [width (math.floor (* vim.o.columns 0.7)) + height (math.floor (* vim.o.lines 0.7))] + {:border :rounded : width : height}))} + :hide_cursor false + :on_init (fn [] + (nvim.buf_set_keymap 0 :x :J + ":lua require(\"lir.mark.actions\").toggle_mark(\"v\")" + {:noremap true :silent true}))}) -(let [lir (util.prequire :lir)] - (let [actions (require :lir.actions) - mark-actions (require :lir.mark.actions) - clipboard-actions (require :lir.clipboard.actions)] - (lir.setup (opts actions mark-actions clipboard-actions)) - (nvim.set_keymap :n "-" ":lua require'lir.float'.toggle()" - {:noremap true :silent true}))) +(fn setup [] + (let [lir (require :lir)] + (let [actions (require :lir.actions) + mark-actions (require :lir.mark.actions) + clipboard-actions (require :lir.clipboard.actions)] + (lir.setup (opts actions mark-actions clipboard-actions)) + (nvim.set_keymap :n "-" ":lua require'lir.float'.toggle()" + {:noremap true :silent true})))) + +{1 :tamago324/lir.nvim + :keys "-" + :config (fn [] + (setup)) + :dependencies [:kyazdani42/nvim-web-devicons]} diff --git a/fnl/config/lsp/lspconfig.fnl b/fnl/config/lsp/lspconfig.fnl index b7143ab..74faa26 100644 --- a/fnl/config/lsp/lspconfig.fnl +++ b/fnl/config/lsp/lspconfig.fnl @@ -1,30 +1,40 @@ ;; Setup of lsps. -(module config.lsp.lspconfig - {autoload {nvim aniseed.nvim - util config.util - keymaps config.lsp.keymaps}}) -(defn- on-attach [] - (nvim.create_autocmd :LspAttach - {:callback (fn [args] - (let [bufnr (. args :buf)] - (keymaps.on-attach bufnr)))})) +(fn on-attach [] + (vim.api.nvim_create_autocmd :LspAttach + {:callback (fn [args] + (let [keymaps (require :config.lsp.keymaps) + bufnr (. args :buf)] + (keymaps.on-attach bufnr)))})) -(defn- capabilities [] - (let [cmp-lsp (util.prequire :cmp_nvim_lsp)] +(fn capabilities [] + (let [cmp-lsp (require :cmp_nvim_lsp)] (cmp-lsp.default_capabilities (vim.lsp.protocol.make_client_capabilities)))) -(defn- mason-opts [servers] +(fn mason-opts [servers] {:ensure_installed (vim.tbl_keys servers) :automatic_installation true}) -(let [lspconfig (util.prequire :lspconfig) - mason-lspconfig (util.prequire :mason-lspconfig) - servers (require :config.lsp.servers)] - (on-attach) - (mason-lspconfig.setup (mason-opts servers)) - (mason-lspconfig.setup_handlers [(fn [server-name] - (let [server-config (. lspconfig - server-name) - opts (or (. servers server-name) {})] - (tset opts :capabilities (capabilities)) - (server-config.setup opts)))])) +(fn setup [] + (require :config.lsp.diagnostics) + (let [lspconfig (require :lspconfig) + mason-lspconfig (require :mason-lspconfig) + servers (require :config.lsp.servers)] + (on-attach) + (mason-lspconfig.setup (mason-opts servers)) + (mason-lspconfig.setup_handlers [(fn [server-name] + (let [server-config (. lspconfig + server-name) + opts (or (. servers server-name) + {})] + (tset opts :capabilities + (capabilities)) + (server-config.setup opts)))]))) + +{1 :neovim/nvim-lspconfig + :event :BufReadPre + :dependencies [:mason.nvim + :williamboman/mason-lspconfig.nvim + :b0o/SchemaStore.nvim + :hrsh7th/cmp-nvim-lsp] + :config (fn [] + (setup))} diff --git a/fnl/config/lsp/mason.fnl b/fnl/config/lsp/mason.fnl index adc60a4..fd40102 100644 --- a/fnl/config/lsp/mason.fnl +++ b/fnl/config/lsp/mason.fnl @@ -1,9 +1,11 @@ ;; Mason manages external tooling, e.g. lsp, formatters, and linters. -(module config.lsp.mason {autoload {util config.util}}) -(def- opts {:ui {:icons {:package_installed "✓" - :package_pending "➜" - :package_uninstalled "✗"}} - :max_concurrent_installers 10}) +(local opts {:ui {:icons {:package_installed " " + :package_pending " " + :package_uninstalled " "}} + :max_concurrent_installers 10}) -(util.setup :mason opts) +{1 :williamboman/mason.nvim + :cmd :Mason + :keys [{1 :m 2 :Mason :desc :Mason}] + :config opts} diff --git a/fnl/config/lsp/null-ls.fnl b/fnl/config/lsp/null-ls.fnl index fd3a61d..2d03b0d 100644 --- a/fnl/config/lsp/null-ls.fnl +++ b/fnl/config/lsp/null-ls.fnl @@ -1,35 +1,41 @@ ;; Adds LSP diagnostics and formatting. -(module config.lsp.null-ls {autoload {util config.util}}) -(def- mason-opts {:ensure_installed nil - :automatic_installation true - :automatic_setup false}) +(local mason-opts {:ensure_installed nil + :automatic_installation true + :automatic_setup false}) -(let [null-ls (util.prequire :null-ls) - mason-null-ls (util.prequire :mason-null-ls)] - (let [formatting null-ls.builtins.formatting - diagnostics null-ls.builtins.diagnostics] - (null-ls.setup {:debug false - :sources [diagnostics.codespell - diagnostics.cpplint - diagnostics.gitlint - diagnostics.hadolint - diagnostics.jsonlint - diagnostics.misspell - diagnostics.ruff - diagnostics.selene - diagnostics.shellcheck - diagnostics.sqlfluff - diagnostics.write_good - diagnostics.yamllint - formatting.fnlfmt - formatting.markdownlint - formatting.prettierd - formatting.ruff - formatting.rustfmt - formatting.shellharden - formatting.shfmt - formatting.sqlfluff - formatting.stylua - formatting.terraform_fmt]})) - (mason-null-ls.setup mason-opts)) +(fn setup [] + (let [null-ls (require :null-ls) + mason-null-ls (require :mason-null-ls)] + (let [formatting null-ls.builtins.formatting + diagnostics null-ls.builtins.diagnostics] + (null-ls.setup {:debug false + :sources [diagnostics.codespell + diagnostics.cpplint + diagnostics.gitlint + diagnostics.hadolint + diagnostics.jsonlint + diagnostics.misspell + diagnostics.ruff + diagnostics.selene + diagnostics.shellcheck + diagnostics.sqlfluff + diagnostics.write_good + diagnostics.yamllint + formatting.fnlfmt + formatting.markdownlint + formatting.prettierd + formatting.ruff + formatting.rustfmt + formatting.shellharden + formatting.shfmt + formatting.sqlfluff + formatting.stylua + formatting.terraform_fmt]})) + (mason-null-ls.setup mason-opts))) + +{1 :jose-elias-alvarez/null-ls.nvim + :dependencies [:mason.nvim :jayp0521/mason-null-ls.nvim] + :event :BufReadPre + :config (fn [] + (setup))} diff --git a/fnl/config/lualine.fnl b/fnl/config/lualine.fnl index b9a790f..34f735c 100644 --- a/fnl/config/lualine.fnl +++ b/fnl/config/lualine.fnl @@ -1,83 +1,87 @@ ;; Statusbar. -(module config.lualine {autoload {util config.util}}) -(def- disable [:neogitstatus - :netrw - :lir - :lazy - :alpha - :Outline - :NeogitStatus - :NeogitCommitMessage]) +(local disable [:neogitstatus + :netrw + :lir + :lazy + :alpha + :Outline + :NeogitStatus + :NeogitCommitMessage]) -(def- ignore [:help :packer :spectre_panel :TelescopePrompt]) +(local ignore [:help :packer :spectre_panel :TelescopePrompt]) -(defn- 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 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 ", ") + ""))) -(defn- hide-in-width [] (> (vim.fn.winwidth 0) 80)) +(fn hide-in-width [] + (> (vim.fn.winwidth 0) 80)) -(def- 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 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}) -(def- diff {1 :diff - :colored false - :disabled_buftypes [:nvim-tree] - :cond hide-in-width}) +(local diff {1 :diff + :colored false + :disabled_buftypes [:nvim-tree] + :cond hide-in-width}) -(def- branch {1 "b:gitsigns_head" - :icon " " - :disabled_buftypes [:nvim-tree] - :cond hide-in-width}) +(local branch {1 "b:gitsigns_head" + :icon " " + :disabled_buftypes [:nvim-tree] + :cond hide-in-width}) -(def- filetype {1 :filetype - :icon_only true - :disabled_buftypes [:nvim-tree] - :colored false - :cond hide_in_width}) +(local filetype {1 :filetype + :icon_only true + :disabled_buftypes [:nvim-tree] + :colored false + :cond hide_in_width}) -(def- language-server {1 active-clients - :disabled_buftypes [:nvim-tree] - :cond hide_in_width}) +(local language-server {1 active-clients + :disabled_buftypes [:nvim-tree] + :cond hide_in_width}) -(def- lsp-progress {1 :lsp_progress - :display_components [[:title :percentage :message]] - :timer {:progress_enddelay 500 - :lsp_client_name_enddelay 500}}) +(local lsp-progress + {1 :lsp_progress + :display_components [[:title :percentage :message]] + :timer {:progress_enddelay 500 :lsp_client_name_enddelay 500}}) -(def- 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 []}) +(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 []}) -(util.setup :lualine opts) +{1 :nvim-lualine/lualine.nvim + :event :VeryLazy + :config opts + :dependencies [:kyazdani42/nvim-web-devicons :arkav/lualine-lsp-progress]} diff --git a/fnl/config/minibar.fnl b/fnl/config/minibar.fnl index 145577f..9e49c7f 100644 --- a/fnl/config/minibar.fnl +++ b/fnl/config/minibar.fnl @@ -1,30 +1,32 @@ -(module config.minibar {autoload {util config.util}}) +;; Show the filename in the top left corner. -(def- 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]}) +(local 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]}) -(util.setup :minibar opts) + {1 :aktersnurra/minibar.nvim + :event :BufReadPre + :config opts} diff --git a/fnl/config/neogit.fnl b/fnl/config/neogit.fnl deleted file mode 100644 index 2d9f515..0000000 --- a/fnl/config/neogit.fnl +++ /dev/null @@ -1,4 +0,0 @@ -;; UI for git. -(module config.neogit {autoload {util config.util}}) - -(util.setup :neogit {}) diff --git a/fnl/config/orgmode.fnl b/fnl/config/orgmode.fnl index bc73bb7..99e55be 100644 --- a/fnl/config/orgmode.fnl +++ b/fnl/config/orgmode.fnl @@ -1,29 +1,24 @@ ;; Orgmode for nvim. -(module config.orgmode {autoload {nvim aniseed.nvim util config.util}}) -(nvim.ex.set :conceallevel=2) -(nvim.ex.set :concealcursor=nc) +(local templates + {:t {:description :Task :template "* TODO %?\n %u\n DEADLINE: %T\n"} + :m {:description :Meeting :template "* Meeting %?"} + :n {:description :Note :template "* NOTE %? :NOTE:\n %u\n"}}) -(def- templates - {:t {:description :Task :template "* TODO %?\n %u\n DEADLINE: %T\n"} - :m {:description :Meeting :template "* Meeting %?"} - :n {:description :Note :template "* NOTE %? :NOTE:\n %u\n"}}) +(local opts {:org_agenda_files ["~/.local/share/org/**/*"] + :org_hide_emphasis_markers true + :org_agenda_start_on_weekday false + :org_default_notes_file "~/.local/share/org/refile.org" + :org_agenda_templates templates}) -(defn- create-title [task] - (string.format "%s (%s)" task.category task.humanized_duration)) +(fn setup [] + (let [orgmode (require :orgmode)] + (tset vim.opt :conceallevel 2) + (tset vim.opt :concealcursor :nc) + (orgmode.setup_ts_grammar) + (orgmode.setup opts))) -(defn- create-subtitle [task] - (string.format "%s %s %s" (string.rep "*" task.level) task.todo - task.title)) - -(defn- get-date [task] (string.format "%s: %s" task.type (task.time:to_string))) - -(def- opts {:org_agenda_files ["~/.local/share/org/**/*"] - :org_hide_emphasis_markers true - :org_agenda_start_on_weekday false - :org_default_notes_file "~/.local/share/org/refile.org" - :org_agenda_templates templates}) - -(let [orgmode (util.prequire :orgmode)] - (orgmode.setup_ts_grammar) - (orgmode.setup opts)) +{1 :nvim-orgmode/orgmode + :event :BufReadPost + :config (fn [] + (setup))} diff --git a/fnl/config/persistence.fnl b/fnl/config/persistence.fnl index ad93131..e1368f1 100644 --- a/fnl/config/persistence.fnl +++ b/fnl/config/persistence.fnl @@ -1,6 +1,5 @@ ;; Session manager. -(module config.persistence {autoload {util config.util}}) -(def- opts {:options [:buffers :curdir :tabpages :winsize :help]}) +(local opts {:options [:buffers :curdir :tabpages :winsize :help]}) -(util.setup :persistence opts) +{1 :folke/persistence.nvim :event :VeryLazy :config opts} diff --git a/fnl/config/project.fnl b/fnl/config/project.fnl index 1617ca5..eceef84 100644 --- a/fnl/config/project.fnl +++ b/fnl/config/project.fnl @@ -1,7 +1,6 @@ ;; Provides project management. -(module config.project {autoload {util config.util}}) -(def- opts {:active true +(local opts {:active true :on_config_done nil :manual_mode false :detection_methods [:patterns] @@ -11,4 +10,6 @@ :ignore_lsp {} :datapath (vim.fn.stdpath :data)}) -(util.setup :project_nvim opts) + {1 :ahmedkhalf/project.nvim + :event :BufReadPre + :config opts} diff --git a/fnl/config/spectre.fnl b/fnl/config/spectre.fnl index f0afa52..c662935 100644 --- a/fnl/config/spectre.fnl +++ b/fnl/config/spectre.fnl @@ -1,63 +1,62 @@ ;; Find and replace. -(module config.spectre {autoload {util config.util}}) -(def- opts {:color_devicons true - :highlight {:ui :String :search :DiffChange :replace :DiffDelete} - :mapping {:toggle_line {:map :t - :cmd "lua require('spectre').toggle_line()" - :desc "toggle current item"} - :enter_file {:map : - :cmd "lua require('spectre.actions').select_entry()" - :desc "goto current file"} - :send_to_qf {:map :Q - :cmd "lua require('spectre.actions').send_to_qf()" - :desc "send all item to quickfix"} - :replace_cmd {:map :c - :cmd "lua require('spectre.actions').replace_cmd()" - :desc "input replace vim command"} - :show_option_menu {:map :o - :cmd "lua require('spectre').show_options()" - :desc "show option"} - :run_replace {:map :R - :cmd "lua require('spectre.actions').run_replace()" - :desc "replace all"} - :change_view_mode {:map :m - :cmd "lua require('spectre').change_view()" - :desc "change result view mode"} - :toggle_ignore_case {:map :I - :cmd "lua require('spectre').change_options('ignore-case')" - :desc "toggle ignore case"} - :toggle_ignore_hidden {:map :H - :cmd "lua require('spectre').change_options('hidden')" - :desc "toggle search hidden"}} - :find_engine {:rg {:cmd :rg - :args [:--color=never - :--no-heading - :--with-filename - :--line-number - :--column] - :options {:ignore-case {:value :--ignore-case - :icon "[I]" - :desc "ignore case"} - :hidden {:value :--hidden - :desc "hidden file" - :icon "[H]"}}} - :ag {:cmd :ag - :args [:--vimgrep :-s] - :options {:ignore-case {:value :-i - :icon "[I]" - :desc "ignore case"} - :hidden {:value :--hidden - :desc "hidden file" - :icon "[H]"}}}} - :replace_engine {:sed {:cmd :sed :args nil} - :options {:ignore-case {:value :--ignore-case - :icon "[I]" - :desc "ignore case"}}} - :default {:find {:cmd :rg :options [:ignore-case]} - :replace {:cmd :sed}} - :replace_vim_cmd :cdo - :is_open_target_win true - :is_insert_mode false}) +(local opts {:color_devicons true + :highlight {:ui :String :search :DiffChange :replace :DiffDelete} + :mapping {:toggle_line {:map :t + :cmd "lua require('spectre').toggle_line()" + :desc "toggle current item"} + :enter_file {:map : + :cmd "lua require('spectre.actions').select_entry()" + :desc "goto current file"} + :send_to_qf {:map :Q + :cmd "lua require('spectre.actions').send_to_qf()" + :desc "send all item to quickfix"} + :replace_cmd {:map :c + :cmd "lua require('spectre.actions').replace_cmd()" + :desc "input replace vim command"} + :show_option_menu {:map :o + :cmd "lua require('spectre').show_options()" + :desc "show option"} + :run_replace {:map :R + :cmd "lua require('spectre.actions').run_replace()" + :desc "replace all"} + :change_view_mode {:map :m + :cmd "lua require('spectre').change_view()" + :desc "change result view mode"} + :toggle_ignore_case {:map :I + :cmd "lua require('spectre').change_options('ignore-case')" + :desc "toggle ignore case"} + :toggle_ignore_hidden {:map :H + :cmd "lua require('spectre').change_options('hidden')" + :desc "toggle search hidden"}} + :find_engine {:rg {:cmd :rg + :args [:--color=never + :--no-heading + :--with-filename + :--line-number + :--column] + :options {:ignore-case {:value :--ignore-case + :icon "[I]" + :desc "ignore case"} + :hidden {:value :--hidden + :desc "hidden file" + :icon "[H]"}}} + :ag {:cmd :ag + :args [:--vimgrep :-s] + :options {:ignore-case {:value :-i + :icon "[I]" + :desc "ignore case"} + :hidden {:value :--hidden + :desc "hidden file" + :icon "[H]"}}}} + :replace_engine {:sed {:cmd :sed :args nil} + :options {:ignore-case {:value :--ignore-case + :icon "[I]" + :desc "ignore case"}}} + :default {:find {:cmd :rg :options [:ignore-case]} + :replace {:cmd :sed}} + :replace_vim_cmd :cdo + :is_open_target_win true + :is_insert_mode false}) -(util.setup :spectre opts) +{1 :windwp/nvim-spectre :event :BufReadPost :config opts} diff --git a/fnl/config/stay-in-place.fnl b/fnl/config/stay-in-place.fnl deleted file mode 100644 index be3ccd3..0000000 --- a/fnl/config/stay-in-place.fnl +++ /dev/null @@ -1,4 +0,0 @@ -;; Prevent the cursor from moving when using shift and filter actions. -(module config.stay-in-place {autoload {util config.util}}) - -(util.setup :stay-in-place {}) diff --git a/fnl/config/surround.fnl b/fnl/config/surround.fnl deleted file mode 100644 index 2406ecd..0000000 --- a/fnl/config/surround.fnl +++ /dev/null @@ -1,6 +0,0 @@ -;; Surround selections. -(module config.surround {autoload {util config.util}}) - -(def- opts {}) - -(util.setup :nvim-surround opts) diff --git a/fnl/config/telescope.fnl b/fnl/config/telescope.fnl index ac3c33c..ce4fb9c 100644 --- a/fnl/config/telescope.fnl +++ b/fnl/config/telescope.fnl @@ -1,82 +1,95 @@ ;; Telescope a highly extendable fuzzy finder over lists. -(module config.telescope {autoload {util config.util nvim aniseed.nvim}}) -(def- opts {:noremap true :silent true}) +(local opts {:noremap true :silent true}) -(let [telescope (util.prequire :telescope)] - (let [actions (require :telescope.actions)] - (telescope.setup {:defaults {:prompt_prefix "  " - :selection_caret "> " - :path_display [:smart] - :color_devicons false - :vimgrep_arguments [:rg - :--color=never - :--no-heading - :--with-filename - :--line-number - :--column - :--smart-case - :--hidden] - :mappings {:i {: actions.cycle_history_next - : actions.cycle_history_prev - : actions.move_selection_next - : actions.move_selection_previous - : actions.close - : actions.move_selection_next - : actions.move_selection_previous - : actions.select_default - : actions.select_horizontal - : actions.select_vertical - : actions.select_tab - : actions.preview_scrolling_up - : actions.preview_scrolling_down - : actions.results_scrolling_up - : actions.results_scrolling_down - : (+ actions.toggle_selection - actions.move_selection_worse) - : (+ actions.toggle_selection - actions.move_selection_better) - : (+ actions.send_to_qflist - actions.open_qflist) - : (+ actions.send_selected_to_qflist - actions.open_qflist) - : actions.complete_tag - : actions.which_key} - :n {: actions.close - : actions.select_default - : actions.select_horizontal - : actions.select_vertical - : actions.select_tab - : (+ actions.toggle_selection - actions.move_selection_worse) - : (+ actions.toggle_selection - actions.move_selection_better) - : (+ actions.send_to_qflist - actions.open_qflist) - : (+ actions.send_selected_to_qflist - actions.open_qflist) - :j actions.move_selection_next - :k actions.move_selection_previous - :H actions.move_to_top - :M actions.move_to_middle - :L actions.move_to_bottom - : actions.move_selection_next - : actions.move_selection_previous - :gg actions.move_to_top - :G actions.move_to_bottom - :q actions.close - : actions.preview_scrolling_up - : actions.preview_scrolling_down - : actions.results_scrolling_up - : actions.results_scrolling_down - :dd actions.delete_buffer - :? actions.which_key}}} - :extensions {:fzf {:fuzzy true - :override_generic_sorter true - :override_file_sorter true - :case_mode :smart_case}}}) - (telescope.load_extension :fzf) - (telescope.load_extension :frecency) - (telescope.load_extension :orgmode) - (telescope.load_extension :projects) - (telescope.load_extension :harpoon))) +(fn setup [] + (let [telescope (util.prequire :telescope)] + (let [actions (require :telescope.actions)] + (telescope.setup {:defaults {:prompt_prefix "  " + :selection_caret "> " + :path_display [:smart] + :color_devicons false + :vimgrep_arguments [:rg + :--color=never + :--no-heading + :--with-filename + :--line-number + :--column + :--smart-case + :--hidden] + :mappings {:i {: actions.cycle_history_next + : actions.cycle_history_prev + : actions.move_selection_next + : actions.move_selection_previous + : actions.close + : actions.move_selection_next + : actions.move_selection_previous + : actions.select_default + : actions.select_horizontal + : actions.select_vertical + : actions.select_tab + : actions.preview_scrolling_up + : actions.preview_scrolling_down + : actions.results_scrolling_up + : actions.results_scrolling_down + : (+ actions.toggle_selection + actions.move_selection_worse) + : (+ actions.toggle_selection + actions.move_selection_better) + : (+ actions.send_to_qflist + actions.open_qflist) + : (+ actions.send_selected_to_qflist + actions.open_qflist) + : actions.complete_tag + : actions.which_key} + :n {: actions.close + : actions.select_default + : actions.select_horizontal + : actions.select_vertical + : actions.select_tab + : (+ actions.toggle_selection + actions.move_selection_worse) + : (+ actions.toggle_selection + actions.move_selection_better) + : (+ actions.send_to_qflist + actions.open_qflist) + : (+ actions.send_selected_to_qflist + actions.open_qflist) + :j actions.move_selection_next + :k actions.move_selection_previous + :H actions.move_to_top + :M actions.move_to_middle + :L actions.move_to_bottom + : actions.move_selection_next + : actions.move_selection_previous + :gg actions.move_to_top + :G actions.move_to_bottom + :q actions.close + : actions.preview_scrolling_up + : actions.preview_scrolling_down + : actions.results_scrolling_up + : actions.results_scrolling_down + :dd actions.delete_buffer + :? actions.which_key}}} + :extensions {:fzf {:fuzzy true + :override_generic_sorter true + :override_file_sorter true + :case_mode :smart_case}}}) + (telescope.load_extension :fzf) + (telescope.load_extension :frecency) + (telescope.load_extension :orgmode) + (telescope.load_extension :projects) + (telescope.load_extension :harpoon)))) + +{1 :nvim-telescope/telescope.nvim + :cmd :Telescope + :dependencies [:nvim-lua/popup.nvim + :nvim-telescope/telescope-frecency.nvim + :tami5/sqlite.lua + :ahmedkhalf/project.nvim + :nvim-lua/plenary.nvim + :nvim-telescope/telescope-fzf-native.nvim + :nvim-telescope/telescope-frecency.nvim + :joaomsa/telescope-orgmode.nvim] + :config (fn [] + (setup))} diff --git a/fnl/config/toggleterm.fnl b/fnl/config/toggleterm.fnl index dd561f3..3c8aa39 100644 --- a/fnl/config/toggleterm.fnl +++ b/fnl/config/toggleterm.fnl @@ -1,16 +1,5 @@ ;; Terminal inside nvim. -(module config.toggleterm - {autoload {util config.util nvim aniseed.nvim autocmd config.autocmd}}) -(def- opts {:size 16 :shade_terminals false}) +(local opts {:size 16 :shade_terminals false}) -(defn- set-terminal-keymaps [] - (nvim.set_keymap :t : "wincmd h" {}) - (nvim.set_keymap :t : "wincmd j" {}) - (nvim.set_keymap :t : "wincmd k" {}) - (nvim.set_keymap :t : "wincmd l" {})) - -(util.setup :toggleterm opts) -(autocmd.create-autocmd :TermOpen - {:pattern "term://*toggleterm#*" - :callback set-terminal-keymaps}) +{1 :akinsho/toggleterm.nvim :cmd :ToggleTerm :config opts} diff --git a/fnl/config/treesitter.fnl b/fnl/config/treesitter.fnl index e61e2c0..a8918d2 100644 --- a/fnl/config/treesitter.fnl +++ b/fnl/config/treesitter.fnl @@ -1,32 +1,34 @@ ;; Treesitter is a tool for building syntax trees for source files. ;; In the neovim context it helps with better coloring. -(module config.treesitter {autoload {util config.util}}) -(def- opts {:ensure_installed [:c - :rust - :lua - :hcl - :org - :haskell - :python - :fennel - :make - :go - :ocaml - :erlang - :vim - :yaml - :html - :toml - :dockerfile - :markdown - :latex] - :sync_install false - :ignore_install [""] - :autopairs {:enable true} - :highlight {:enable true :disable [:org]} - :context_commentstring {:enable true :enable_autocmd false} - :indent {:enable true :disable [:yaml :python :css]} - :playground {:enable true}}) +(local opts {:ensure_installed [:c + :rust + :lua + :hcl + :org + :haskell + :python + :fennel + :make + :go + :ocaml + :erlang + :vim + :yaml + :html + :toml + :dockerfile + :markdown + :latex] + :sync_install false + :ignore_install [""] + :autopairs {:enable true} + :highlight {:enable true :disable [:org]} + :context_commentstring {:enable true :enable_autocmd false} + :indent {:enable true :disable [:yaml :python :css]} + :playground {:enable true}}) -(util.setup :nvim-treesitter.configs opts) +{1 :nvim-treesitter/nvim-treesitter + :build ":TSUpdate" + :event :BufReadPre + :config opts} diff --git a/fnl/config/trim.fnl b/fnl/config/trim.fnl index 8a2ec43..e21b715 100644 --- a/fnl/config/trim.fnl +++ b/fnl/config/trim.fnl @@ -1,6 +1,5 @@ ;; Trim whitespaces on save. -(module config.trim {autoload {util config.util}}) -(def- opts {:disable [:python]}) +(local opts {:disable [:python]}) -(util.setup :trim opts) +{1 :cappyzawa/trim.nvim :event :BufFilePre :config opts} diff --git a/fnl/config/trouble.fnl b/fnl/config/trouble.fnl index b45fecd..988f2ed 100644 --- a/fnl/config/trouble.fnl +++ b/fnl/config/trouble.fnl @@ -1,82 +1,81 @@ ;; Pretty diagnostics. -(module config.trouble {autoload {util config.util}}) -(def- opts {:position :bottom - ;; position of the list can be: bottom, top, left, right - :height 10 - ;; height of the trouble list when position is top or bottom - :width 50 - ;; width of the list when position is left or right - :icons true - ;; use devicons for filenames - :mode :workspace_diagnostics - ;; "workspace_diagnostics", "document_diagnostics", "quickfix", "lsp_references", "loclist" - :fold_open "" - ;; icon used for open folds - :fold_closed "" - ;; icon used for closed folds - :group true - ;; group results by file - :padding true - ;; add an extra new line on top of the list - :action_keys {;; key mappings for actions in the trouble list - ;; map to {} to remove a mapping for example: - ;; close {} - :close :q - ;; close the list - :cancel : - ;; cancel the preview and get back to your last window / buffer / cursor - :refresh :r - ;; manually refresh - :jump [: :] - ;; jump to the diagnostic or open / close folds - :open_split [:] - ;; open buffer in new split - :open_vsplit [:] - ;; open buffer in new vsplit - :open_tab [:] - ;; open buffer in new tab - :jump_close [:o] - ;; jump to the diagnostic and close the list - :toggle_mode :m - ;; toggle between "workspace" and "document" diagnostics mode - :toggle_preview :P - ;; toggle auto_preview - :hover :K - ;; opens a small popup with the full multiline message - :preview :p - ;; preview the diagnostic location - :close_folds [:zM :zm] - ;; close all folds - :open_folds [:zR :zr] - ;; open all folds - :toggle_fold [:zA :za] - ;; toggle fold of current file - :previous :k - ;; previous item - :next :j - ;; next item - } - :indent_lines true - ;; add an indent guide below the fold icons - :auto_open false - ;; automatically open the list when you have diagnostics - :auto_close false - ;; automatically close the list when you have no diagnostics - :auto_preview true - ;; automatically preview the location of the diagnostic. to close preview and go back to last window - :auto_fold false - ;; automatically fold a file trouble list at creation - :auto_jump [:lsp_definitions] - ;; for the given modes, automatically jump if there is only a single result - :signs {;; icons / text used for a diagnostic - :error "" - :warning "" - :hint "" - :information "" - :other "﫠"} - :use_diagnostic_signs false - ;; enabling this will use the signs defined in your lsp client - }) +(local opts {:position :bottom + ;; position of the list can be: bottom, top, left, right + :height 10 + ;; height of the trouble list when position is top or bottom + :width 50 + ;; width of the list when position is left or right + :icons true + ;; use devicons for filenames + :mode :workspace_diagnostics + ;; "workspace_diagnostics", "document_diagnostics", "quickfix", "lsp_references", "loclist" + :fold_open "" + ;; icon used for open folds + :fold_closed "" + ;; icon used for closed folds + :group true + ;; group results by file + :padding true + ;; add an extra new line on top of the list + :action_keys {;; key mappings for actions in the trouble list + ;; map to {} to remove a mapping for example: + ;; close {} + :close :q + ;; close the list + :cancel : + ;; cancel the preview and get back to your last window / buffer / cursor + :refresh :r + ;; manually refresh + :jump [: :] + ;; jump to the diagnostic or open / close folds + :open_split [:] + ;; open buffer in new split + :open_vsplit [:] + ;; open buffer in new vsplit + :open_tab [:] + ;; open buffer in new tab + :jump_close [:o] + ;; jump to the diagnostic and close the list + :toggle_mode :m + ;; toggle between "workspace" and "document" diagnostics mode + :toggle_preview :P + ;; toggle auto_preview + :hover :K + ;; opens a small popup with the full multiline message + :preview :p + ;; preview the diagnostic location + :close_folds [:zM :zm] + ;; close all folds + :open_folds [:zR :zr] + ;; open all folds + :toggle_fold [:zA :za] + ;; toggle fold of current file + :previous :k + ;; previous item + :next :j + ;; next item + } + :indent_lines true + ;; add an indent guide below the fold icons + :auto_open false + ;; automatically open the list when you have diagnostics + :auto_close false + ;; automatically close the list when you have no diagnostics + :auto_preview true + ;; automatically preview the location of the diagnostic. to close preview and go back to last window + :auto_fold false + ;; automatically fold a file trouble list at creation + :auto_jump [:lsp_definitions] + ;; for the given modes, automatically jump if there is only a single result + :signs {;; icons / text used for a diagnostic + :error "" + :warning "" + :hint "" + :information "" + :other "﫠"} + :use_diagnostic_signs false + ;; enabling this will use the signs defined in your lsp client + }) -(util.setup :trouble opts) +{1 :folke/trouble.nvim :cmd :TroubleToggle :config opts} diff --git a/fnl/config/vim-slash.fnl b/fnl/config/vim-slash.fnl index 726ed8f..6f50ae4 100644 --- a/fnl/config/vim-slash.fnl +++ b/fnl/config/vim-slash.fnl @@ -1,4 +1,6 @@ ;; Provides a set of mappings for enhancing in-buffer search experience. -(module config.vim-slash) -(vim.cmd "noremap (slash-after) zz") +{1 :junegunn/vim-slash + :event :BufReadPost + :config (fn [] + (vim.cmd "noremap (slash-after) zz"))} diff --git a/fnl/config/which-key.fnl b/fnl/config/which-key.fnl index 405fb1c..588869d 100644 --- a/fnl/config/which-key.fnl +++ b/fnl/config/which-key.fnl @@ -1,7 +1,6 @@ ;; Which-key provides a pop-up menu for some key mappings. -(module config.which-key {autoload {util config.util}}) -(def- setup {:plugins {:marks true +(local opts {:plugins {:marks true :registers true :spelling {:enabled true :suggestions 20} :presets {:operators false @@ -25,147 +24,147 @@ :disable {:filetypes [:netrw]} :triggers_blacklist {:i [:j :k] :v [:j :k]}}) -(def- mopts {:mode :n - :prefix :m - :buffer nil - :silent true - :noremap true - :nowait true}) - -(def- mmappings {:a [:HarpoonAdd :Harpoon] - :d [:DiffviewFileHistory :DiffviewFileHistory] - :f [(fn [] - (util.telescope-builtin :find_files - {:theme :get_dropdown - :previewer false})) - "Find files"] - :g ["Telescope live_grep theme=dropdown" "Find text"] - :n [:Neogit :Neogit] - :p [:SaveSession "Save Session"] - :q ["Gitsigns diffthis HEAD" "Gitsigns diff"] - :r [:HarpoonUI "Harpoon UI"] - :s [:HarpoonPrev "Harpoon Prev"] - :t [:HarpoonNext "Harpoon Next"] - :v ["lua vim.lsp.buf.rename()" :Rename] - :x ["DiffviewOpen -uno" :DiffviewOpen] - :z [:DiffviewClose :DiffviewClose]}) - -(def- nopts {:mode :n - :prefix : - :buffer nil - :silent true - :noremap true - :nowait true}) - -(def- find - {:name :find - :C ["Telescope commands theme=dropdown" :Commands] - :H ["Telescope highlights" :Highlights] - :R ["Telescope registers theme=dropdown" :Registers] - :S ["Telescope grep_string theme=dropdown" "Find String"] - :b ["Telescope git_branches theme=dropdown" "Checkout branch"] - :c ["Telescope colorscheme theme=dropdown" :Colorscheme] - :f [(fn [] - (util.telescope-builtin :find_files - {:theme :get_dropdown :previewer false})) - "Find files"] - :h ["Telescope help_tags theme=dropdown" :Help] - :k ["Telescope keymaps theme=dropdown" :Keymaps] - :l ["Telescope resume theme=dropdown" "Last Search"] - :p ["Telescope projects theme=dropdown" "Find project"] - :r ["Telescope oldfiles theme=dropdown" "Recent File"] - :s [:SearchSession "Find Session"] - :t ["Telescope live_grep theme=dropdown" "Find text"]}) - -(def- diagnostics {:name :diagnostics - :t [:TroubleToggle :Trouble] - :g ["Telescope diagnostics theme=dropdown" - "Telescope diagnostics"]}) - -(def- git {:name :git - :R ["lua require 'gitsigns'.reset_buffer()" "Reset Buffer"] - :b ["Telescope git_branches theme=dropdown" - "Checkout branch"] - :c ["Telescope git_commits theme=dropdown" - "Checkout commit"] - :d ["Gitsigns diffthis HEAD" :Diff] - :j ["lua require 'gitsigns'.next_hunk()" "Next Hunk"] - :k ["lua require 'gitsigns'.prev_hunk()" "Prev Hunk"] - :l ["lua require 'gitsigns'.blame_line()" :Blame] - :o ["Telescope git_status theme=dropdown" - "Open changed file"] - :p ["lua require 'gitsigns'.preview_hunk()" "Preview Hunk"] - :r ["lua require 'gitsigns'.reset_hunk()" "Reset Hunk"] - :s ["lua require 'gitsigns'.stage_hunk()" "Stage Hunk"] - :u ["lua require 'gitsigns'.undo_stage_hunk()" - "Undo Stage Hunk"]}) - -(def- lsp - {:name :lsp - :S ["Telescope lsp_dynamic_workspace_symbols" - "Workspace Symbols"] - :a ["lua vim.lsp.buf.code_action()" "Code Action"] - :f ["lua vim.lsp.buf.format { async = true }" :Format] - :i [:LspInfo :Info] - :l ["lua vim.lsp.codelens.run()" "CodeLens Action"] - :r ["lua vim.lsp.buf.rename()" :Rename] - :s ["Telescope lsp_document_symbols" "Document Symbols"]}) - -(def- replace {:name :replace - :m [:ReplaceInBuf "Replace in Buffer"] - :n [:Replace :Replace] - :e [:ReplaceWord "Replace Word"]}) - -(def- session {:name :session - :m [:RestoreSession "Restore session"] - :n [:RestoreLastSession "Restore last session"] - :e [:IgnoreSession "Ignore current session"]}) - -(def- treesitter - {:name :Treesitter :p [:TSPlaygroundToggle :Playground]}) - -(def- nmappings {:a ["Telescope lsp_document_symbols theme=dropdown" - "Document Symbols"] - :T treesitter - : [:BufDel "Close Buffer"] - :j diagnostics - :f find - :g git - :h [:ColorizerToggle :Colorizer] - :l lsp - :m [:Mason :Mason] - :n [:SymbolsOutline "Symbols outline"] - :r replace - :s session - :t [:ToggleTerm :Terminal] - :u [:UndotreeToggle :Undotree] - :y ["Lazy home" :Home] - :z [:ZenMode "Zen Mode"]}) - -(def- vopts {:mode :v - :prefix : - :buffer nil - :silent true - :noremap true - :nowait true}) - -(def- vmappings {:n [:CommentVisual :Comment]}) - -(def- gopts {:mode :n - :prefix :g - :buffer nil - :silent true - :noremap true - :nowait true}) - -(def- gmappings {:a [:OrgAgendaPrompt "Open agenda prompt"] - :c [:OrgCapturePrompt "Open capture prompt"] - :m ["Telescope orgmode search_headings theme=dropdown" - "Search headings"]}) - -(let [which-key (util.prequire :which-key)] - (which-key.setup setup) - (which-key.register mmappings mopts) - (which-key.register nmappings nopts) - (which-key.register vmappings vopts) - (which-key.register gmappings gopts)) +(local mopts {:mode :n + :prefix :m + :buffer nil + :silent true + :noremap true + :nowait true}) + +(local mmappings {:a [:HarpoonAdd :Harpoon] + :d [:DiffviewFileHistory :DiffviewFileHistory] + :f [:FindFiles "Find files"] + :g ["Telescope live_grep theme=dropdown" + "Find text"] + :n [:Neogit :Neogit] + :p [:SaveSession "Save Session"] + :q ["Gitsigns diffthis HEAD" "Gitsigns diff"] + :r [:HarpoonUI "Harpoon UI"] + :s [:HarpoonPrev "Harpoon Prev"] + :t [:HarpoonNext "Harpoon Next"] + :v ["lua vim.lsp.buf.rename()" :Rename] + :x ["DiffviewOpen -uno" :DiffviewOpen] + :z [:DiffviewClose :DiffviewClose]}) + +(local nopts {:mode :n + :prefix : + :buffer nil + :silent true + :noremap true + :nowait true}) + +(local find + {:name :find + :C ["Telescope commands theme=dropdown" :Commands] + :H ["Telescope highlights" :Highlights] + :R ["Telescope registers theme=dropdown" :Registers] + :S ["Telescope grep_string theme=dropdown" "Find String"] + :b ["Telescope git_branches theme=dropdown" "Checkout branch"] + :c ["Telescope colorscheme theme=dropdown" :Colorscheme] + :f [:FindFiles "Find files"] + :h ["Telescope help_tags theme=dropdown" :Help] + :k ["Telescope keymaps theme=dropdown" :Keymaps] + :l ["Telescope resume theme=dropdown" "Last Search"] + :p ["Telescope projects theme=dropdown" "Find project"] + :r ["Telescope oldfiles theme=dropdown" "Recent File"] + :s [:SearchSession "Find Session"] + :t ["Telescope live_grep theme=dropdown" "Find text"]}) + +(local diagnostics {:name :diagnostics + :t [:TroubleToggle :Trouble] + :g ["Telescope diagnostics theme=dropdown" + "Telescope diagnostics"]}) + +(local git {:name :git + :R ["lua require 'gitsigns'.reset_buffer()" + "Reset Buffer"] + :b ["Telescope git_branches theme=dropdown" + "Checkout branch"] + :c ["Telescope git_commits theme=dropdown" + "Checkout commit"] + :d ["Gitsigns diffthis HEAD" :Diff] + :j ["lua require 'gitsigns'.next_hunk()" "Next Hunk"] + :k ["lua require 'gitsigns'.prev_hunk()" "Prev Hunk"] + :l ["lua require 'gitsigns'.blame_line()" :Blame] + :o ["Telescope git_status theme=dropdown" + "Open changed file"] + :p ["lua require 'gitsigns'.preview_hunk()" + "Preview Hunk"] + :r ["lua require 'gitsigns'.reset_hunk()" "Reset Hunk"] + :s ["lua require 'gitsigns'.stage_hunk()" "Stage Hunk"] + :u ["lua require 'gitsigns'.undo_stage_hunk()" + "Undo Stage Hunk"]}) + +(local lsp + {:name :lsp + :S ["Telescope lsp_dynamic_workspace_symbols" + "Workspace Symbols"] + :a ["lua vim.lsp.buf.code_action()" "Code Action"] + :f ["lua vim.lsp.buf.format { async = true }" :Format] + :i [:LspInfo :Info] + :l ["lua vim.lsp.codelens.run()" "CodeLens Action"] + :r ["lua vim.lsp.buf.rename()" :Rename] + :s ["Telescope lsp_document_symbols" "Document Symbols"]}) + +(local replace {:name :replace + :m [:ReplaceInBuf "Replace in Buffer"] + :n [:Replace :Replace] + :e [:ReplaceWord "Replace Word"]}) + +(local session + {:name :session + :m [:RestoreSession "Restore session"] + :n [:RestoreLastSession "Restore last session"] + :e [:IgnoreSession "Ignore current session"]}) + +(local treesitter + {:name :Treesitter :p [:TSPlaygroundToggle :Playground]}) + +(local nmappings {:a ["Telescope lsp_document_symbols theme=dropdown" + "Document Symbols"] + :T treesitter + : [:BufDel "Close Buffer"] + :j diagnostics + :f find + :g git + :h [:ColorizerToggle :Colorizer] + :l lsp + :m [:Mason :Mason] + :n [:SymbolsOutline "Symbols outline"] + :r replace + :s session + :t [:ToggleTerm :Terminal] + :u [:UndotreeToggle :Undotree] + :y ["Lazy home" :Home] + :z [:ZenMode "Zen Mode"]}) + +(local vopts {:mode :v + :prefix : + :buffer nil + :silent true + :noremap true + :nowait true}) + +(local vmappings {:n [:CommentVisual :Comment]}) + +(local gopts {:mode :n + :prefix :g + :buffer nil + :silent true + :noremap true + :nowait true}) + +(local gmappings {:a [:OrgAgendaPrompt "Open agenda prompt"] + :c [:OrgCapturePrompt "Open capture prompt"] + :m ["Telescope orgmode search_headings theme=dropdown" + "Search headings"]}) + +(fn setup [] + (let [which-key (require :which-key)] + (which-key.setup opts) + (which-key.register mmappings mopts) + (which-key.register nmappings nopts) + (which-key.register vmappings vopts) + (which-key.register gmappings gopts))) + +{1 :folke/which-key.nvim :event :VeryLazy :config (fn [] (setup))} diff --git a/fnl/config/window-picker.fnl b/fnl/config/window-picker.fnl index c055fb9..d03d9e9 100644 --- a/fnl/config/window-picker.fnl +++ b/fnl/config/window-picker.fnl @@ -1,17 +1,20 @@ ;; Trim whitespaces on save. -(module config.window-picker {autoload {util config.util nvim aniseed.nvim}}) -(def- opts {:other_win_hl_color "#171717" - :fg_color "#E1E1E1" - :selection_chars :MNEIOARSTG}) +(local opts {:other_win_hl_color "#171717" + :fg_color "#E1E1E1" + :selection_chars :MNEIOARSTG}) -(util.setup :window-picker opts) +(fn pick-window [] + (let [window-picker (require :window-picker)] + (let [win (window-picker.pick_window)] + (if (not= win nil) + (nvim.set_current_win win))))) -(defn- pick-window [] - (let [window-picker (require :window-picker)] - (let [win (window-picker.pick_window)] - (if (not= win nil) - (nvim.set_current_win win))))) - -(vim.keymap.set :n : (fn [] - (pick-window)) {}) +{1 :s1n7ax/nvim-window-picker + :event :BufReadPost + :config (fn [] + (let [window-picker (require :window-picker)] + (window-picker.setup opts) + (vim.keymap.set :n : + (fn [] + (pick-window)) {})))} diff --git a/fnl/config/zen.fnl b/fnl/config/zen.fnl index 1ba643d..1a0c94e 100644 --- a/fnl/config/zen.fnl +++ b/fnl/config/zen.fnl @@ -1,7 +1,6 @@ ;; Zen mode. -(module config.zen {autoload {util config.util}}) -(def- opts {:window {:backdrop 1 +(local opts {:window {:backdrop 1 :height 1 :width 120 :options {:signcolumn :no @@ -11,4 +10,4 @@ :tmux {:enabled true} :twilight {:enabled true}}}) -(util.setup :zen-mode opts) +{1 :folke/zen-mode.nvim :cmd :ZenMode :config opts} -- cgit v1.2.3-70-g09d2