diff options
author | Gustaf Rydholm <gustaf@nexure.io> | 2022-10-17 09:00:28 +0200 |
---|---|---|
committer | Gustaf Rydholm <gustaf@nexure.io> | 2022-10-17 09:00:28 +0200 |
commit | f9c022399a35558fe7f997dbeab3c26d7f955992 (patch) | |
tree | 30dfed56d752ff779da584ab502e9a3bda952215 /fnl/config | |
parent | a45853f468feb2be399a587664df7f4872816b53 (diff) | |
parent | f3432fc8f42246ac26f90146f13045377bc3899e (diff) |
Merge branch 'master' of github.com:aktersnurra/nvim
Diffstat (limited to 'fnl/config')
44 files changed, 174 insertions, 275 deletions
diff --git a/fnl/config/alpha.fnl b/fnl/config/alpha.fnl deleted file mode 100644 index 0f0f680..0000000 --- a/fnl/config/alpha.fnl +++ /dev/null @@ -1,41 +0,0 @@ -;; A customizable greeter. -(module config.alpha {autoload {: util}}) - -(def- ascii-art [" ##############..... ############## " - " ##############......############## " - " ##########..........########## " - " ##########........########## " - " ##########.......########## " - " ##########.....##########.. " - " ##########....##########..... " - " ..##########..##########......... " - " ....##########.#########............. " - " ..################JJJ............ " - " ################............. " - " ##############.JJJ.JJJJJJJJJJ " - " ############...JJ...JJ..JJ JJ " - " ##########....JJ...JJ..JJ JJ " - " ########......JJJ..JJJ JJJ JJJ " - " ###### ......... " - " ..... " - " . "]) - -(let [alpha (util.load-plugin :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 <CR>") - (dashboard.button :t " Find text" ":Telescope live_grep <CR>") - (dashboard.button :s " Find Session" ":SearchSession<CR>") - (dashboard.button :p " Find project" ":Telescope projects <CR>") - (dashboard.button :r " Recently used files" - ":Telescope oldfiles <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))) diff --git a/fnl/config/auto-session.fnl b/fnl/config/auto-session.fnl index 62e28b4..2e236b2 100644 --- a/fnl/config/auto-session.fnl +++ b/fnl/config/auto-session.fnl @@ -1,5 +1,5 @@ ;; Session manager. -(module config.auto-session {autoload {: util}}) +(module config.auto-session {autoload {util config.util}}) (def- auto-opts {:log_level :info :auto_session_enable_last_session false @@ -15,6 +15,9 @@ :previewer false :prompt_title :Sessions}) -(set vim.o.sessionoptions "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal") -(util.use-config :session-lens lens-opts) -(util.use-config :auto-session auto-opts) +(set vim.o.sessionoptions + "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal") +(util.setup :session-lens lens-opts) +(util.setup :auto-session auto-opts) +(let [telescope (require :telescope)] + (telescope.load_extension :session-lens)) diff --git a/fnl/config/autocmd.fnl b/fnl/config/autocmd.fnl index 017792f..e05405d 100644 --- a/fnl/config/autocmd.fnl +++ b/fnl/config/autocmd.fnl @@ -1,5 +1,8 @@ ;; Autocommands for nvim. -(module config.autocmd {autoload {nvim aniseed.nvim a aniseed.core : util}}) +(module config.autocmd {autoload {nvim aniseed.nvim + env aniseed.env + a aniseed.core + : packer}}) (defn create-autocmd [event opts] (nvim.create_autocmd event opts)) @@ -15,16 +18,26 @@ (create-autocmd :FileType {:pattern :qf :command "set nobuflisted"}) -(create-autocmd :FileType {:pattern :lir - :callback (fn [] - (tset vim.opt_local :number false) - (tset vim.opt_local :relativenumber - false))}) - (create-autocmd :FileType {:pattern [:gitcommit :markdown] :command "setlocal wrap"}) -(create-autocmd :FileType {:pattern [:gitcommit :markdown :org :plaintex] - :command "setlocal spell"}) +(create-autocmd :FileType + {:pattern [:NeogitStatus + :NeogitCommitMessage + :NeogitNotification + :NeogitCommitView + :ToggleTerm] + :command "setlocal spell!"}) (create-autocmd :VimResized {:command "tabdo wincmd ="}) + +(create-autocmd :BufWritePost + {:pattern :*.fnl + :callback (lambda [] + (env.init nvim.g.aniseed#env))}) + +(create-autocmd :BufWritePost + {:pattern :plugins.fnl + :callback (lambda [] + (env.init nvim.g.aniseed#env) + (packer.sync))}) diff --git a/fnl/config/autopairs.fnl b/fnl/config/autopairs.fnl index f0aa2b6..d7865b5 100644 --- a/fnl/config/autopairs.fnl +++ b/fnl/config/autopairs.fnl @@ -1,5 +1,5 @@ ;; Autopairs for brackets and quote symbols. -(module config.autopairs {autoload {: util}}) +(module config.autopairs {autoload {util config.util}}) (def- opts {:check_ts true :ts_config {:lua [:string :source] @@ -18,4 +18,4 @@ :highlight :PmenuSel :highlight_grey :LineNr}}) -(util.use-config :nvim-autopairs opts) +(util.setup :nvim-autopairs opts) diff --git a/fnl/config/better-escape.fnl b/fnl/config/better-escape.fnl index 769fb32..659d22f 100644 --- a/fnl/config/better-escape.fnl +++ b/fnl/config/better-escape.fnl @@ -1,9 +1,9 @@ ;; Better escape without nasty delay. -(module config.better-escape {autoload {: util}}) +(module config.better-escape {autoload {util config.util}}) (def- opts {:mapping [:kk :jj] :timeout vim.o.timeoutlen :clear_empty_lines false :keys :<Esc>}) -(util.use-config :better_escape opts) +(util.setup :better_escape opts) diff --git a/fnl/config/bqf.fnl b/fnl/config/bqf.fnl index e5d7ab2..59a1aad 100644 --- a/fnl/config/bqf.fnl +++ b/fnl/config/bqf.fnl @@ -1,4 +1,4 @@ ;; Make Neovim's quickfix window better. -(module config.bqf {autoload {: util}}) +(module config.bqf {autoload {util config.util}}) -(util.use-config :bqf {}) +(util.setup :bqf {}) diff --git a/fnl/config/cmp.fnl b/fnl/config/cmp.fnl index bf4a331..78e6304 100644 --- a/fnl/config/cmp.fnl +++ b/fnl/config/cmp.fnl @@ -1,9 +1,9 @@ ;; Configuration for completion plugin. -(module config.cmp {autoload {nvim aniseed.nvim : util}}) +(module config.cmp {autoload {nvim aniseed.nvim util config.util}}) -(let [cmp (util.load-plugin :cmp) - lspkind (util.load-plugin :lspkind) - luasnip (util.load-plugin :luasnip) +(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) @@ -26,6 +26,7 @@ {: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 diff --git a/fnl/config/colorizer.fnl b/fnl/config/colorizer.fnl index 0757500..ff7fbab 100644 --- a/fnl/config/colorizer.fnl +++ b/fnl/config/colorizer.fnl @@ -1,4 +1,4 @@ ;; Enables colorization of color codes in source files. -(module config.colorizer {autoload {: util}}) +(module config.colorizer {autoload {util config.util}}) -(util.use-config :colorizer {}) +(util.setup :colorizer {}) diff --git a/fnl/config/colorscheme.fnl b/fnl/config/colorscheme.fnl index b2e0279..b4fbf1f 100644 --- a/fnl/config/colorscheme.fnl +++ b/fnl/config/colorscheme.fnl @@ -1,8 +1,8 @@ ;; Load neovim colorscheme. -(module config.colorscheme {autoload {: util}}) +(module config.colorscheme {autoload {util config.util}}) (local colorscheme :no-clown-fiesta) (def- opts {:type :bold}) -(util.use-config :no-clown-fiesta opts) +(util.setup :no-clown-fiesta opts) diff --git a/fnl/config/comment.fnl b/fnl/config/comment.fnl index a6e9c5f..3a3f1fb 100644 --- a/fnl/config/comment.fnl +++ b/fnl/config/comment.fnl @@ -1,6 +1,6 @@ ;; Language aware commenting. -(module config.comment {autoload {: util}}) +(module config.comment {autoload {util config.util}}) (def- opts {}) -(util.use-config :Comment opts) +(util.setup :Comment opts) diff --git a/fnl/config/diffview.fnl b/fnl/config/diffview.fnl index eea5ed3..3772d32 100644 --- a/fnl/config/diffview.fnl +++ b/fnl/config/diffview.fnl @@ -1,6 +1,6 @@ ;; Trim whitespaces on save. -(module config.diffview {autoload {: util}}) +(module config.diffview {autoload {util config.util}}) (def- opts {}) -(util.use-config :diffview opts) +(util.setup :diffview opts) diff --git a/fnl/config/fidget.fnl b/fnl/config/fidget.fnl index fa87fd1..1b9ca81 100644 --- a/fnl/config/fidget.fnl +++ b/fnl/config/fidget.fnl @@ -1,6 +1,6 @@ ;; Show lsp progress. -(module config.fidget {autoload {: util}}) +(module config.fidget {autoload {util config.util}}) (def- opts {:text {:spinner :dots_snake}}) -(util.use-config :fidget opts) +(util.setup :fidget opts) diff --git a/fnl/config/flit.fnl b/fnl/config/flit.fnl index 10e103d..d80a0d9 100644 --- a/fnl/config/flit.fnl +++ b/fnl/config/flit.fnl @@ -1,9 +1,9 @@ ;; fFtT motions on roids. -(module config.flit {autoload {: util nvim aniseed.nvim}}) +(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 {}}) -(util.use-config :flit opts) +(util.setup :flit opts) diff --git a/fnl/config/gitsigns.fnl b/fnl/config/gitsigns.fnl index a693f7d..663e3e0 100644 --- a/fnl/config/gitsigns.fnl +++ b/fnl/config/gitsigns.fnl @@ -1,5 +1,5 @@ ;; Add git signs to source files. -(module config.gitsigns {autoload {: util}}) +(module config.gitsigns {autoload {util config.util}}) (def- signs {:add {:hl :GitSignsAdd :text "|" @@ -46,4 +46,4 @@ :col 1} :yadm {:enable false}}) -(util.use-config :gitsigns opts) +(util.setup :gitsigns opts) diff --git a/fnl/config/harpoon.fnl b/fnl/config/harpoon.fnl index 0c3ca5e..21f1b27 100644 --- a/fnl/config/harpoon.fnl +++ b/fnl/config/harpoon.fnl @@ -1,18 +1,16 @@ ;; Harpoon files for navigation. -(module config.harpoon {autoload {: util nvim aniseed.nvim}}) +(module config.harpoon {autoload {util config.util nvim aniseed.nvim}}) (def- opts {}) -(util.use-config :harpoon opts) -(nvim.set_keymap - "n" - "<tab>" - "<cmd>lua require('telescope').extensions.harpoon.marks(require('telescope.themes').get_dropdown{previewer = false, initial_mode='normal', prompt_title='Harpoon'})<cr>" - opts -) -(nvim.set_keymap - "n" - "<s-tab>" - "<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false, initial_mode='normal'})<cr>" - opts -) +(util.setup :harpoon opts) +(let [telescope (require :telescope)] + (telescope.load_extension :harpoon)) + +(nvim.set_keymap :n :<tab> + "<cmd>lua require('telescope').extensions.harpoon.marks(require('telescope.themes').get_dropdown{previewer = false, initial_mode='normal', prompt_title='Harpoon'})<cr>" + opts) + +(nvim.set_keymap :n :<s-tab> + "<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false, initial_mode='normal'})<cr>" + opts) diff --git a/fnl/config/init.fnl b/fnl/config/init.fnl deleted file mode 100644 index 860cdc4..0000000 --- a/fnl/config/init.fnl +++ /dev/null @@ -1,37 +0,0 @@ -;; Load all plugin configs. -(module config.init {require [config.alpha - config.auto-session - config.autocmd - config.autopairs - config.better-escape - config.bqf - config.cmp - config.colorizer - config.colorscheme - config.comment - config.diffview - config.fidget - config.flit - config.gitsigns - config.harpoon - config.leap - config.lir - config.lsp - config.lualine - config.minibar - config.neogit - config.orgmode - config.project - config.spectre - config.stay-in-place - config.stabilize - config.surround - config.telescope - config.toggleterm - config.treesitter - config.trim - config.trouble - config.vim-slash - config.which-key - config.window-picker - config.zen]}) diff --git a/fnl/config/leap.fnl b/fnl/config/leap.fnl index cb6a267..868f9eb 100644 --- a/fnl/config/leap.fnl +++ b/fnl/config/leap.fnl @@ -1,19 +1,8 @@ ;; Leap through text. -(module config.leap {autoload {: util nvim aniseed.nvim}}) +(module config.leap {autoload {util config.util nvim aniseed.nvim}}) -(def- opts {:max_aot_targets nil - :highlight_unlabeled false - :max_highlighted_traversal_targets 10 - :case_sensitive false - :equivalence_classes [" \t\r\n"] - :substitute_chars [] - :special_keys {:repeat_search :<enter> - :next_aot_match :<enter> - :next_match [";" :<enter>] - :prev_match ["," :<tab>] - :next_group :<space> - :prev_group :<tab>}}) +(def- opts {}) -(let [leap (util.load-plugin :leap)] +(let [leap (util.prequire :leap)] (leap.setup opts) (leap.set_default_keymaps)) diff --git a/fnl/config/lir.fnl b/fnl/config/lir.fnl deleted file mode 100644 index c775c4b..0000000 --- a/fnl/config/lir.fnl +++ /dev/null @@ -1,44 +0,0 @@ -;; Simple file manager. -(module config.lir {autoload {: util nvim aniseed.nvim}}) - -(defn- opts [actions mark-actions clipboard-actions] - {:show_hidden_files false - :devicons_enable true - :mappings {:l actions.edit - :<C-s> actions.split - :v actions.vsplit - :<C-t> 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 - ":<C-u>lua require(\"lir.mark.actions\").toggle_mark(\"v\")<CR>" - {:noremap true :silent true}))}) - -(let [lir (util.load-plugin :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()<cr>" - {:noremap true :silent true}))) diff --git a/fnl/config/lsp/handlers.fnl b/fnl/config/lsp/handlers.fnl index c892a22..c9b7825 100644 --- a/fnl/config/lsp/handlers.fnl +++ b/fnl/config/lsp/handlers.fnl @@ -1,5 +1,5 @@ ;; Handlers for the requests and responses from and to the lsp server. -(module config.lsp.handlers {autoload {: util nvim aniseed.nvim}}) +(module config.lsp.handlers {autoload {util config.util nvim aniseed.nvim}}) (def- signs [{:name :DiagnosticSignError :text ""} {:name :DiagnosticSignWarn :text ""} @@ -55,5 +55,5 @@ (let [capabilities (vim.lsp.protocol.make_client_capabilities)] (set capabilities.textDocument.completion.completionItem.snippetSupport true) - (let [cmp-nvim-lsp (util.load-plugin :cmp_nvim_lsp)] - (cmp-nvim-lsp.update_capabilities capabilities)))) + (let [cmp-nvim-lsp (util.prequire :cmp_nvim_lsp)] + (cmp-nvim-lsp.default_capabilities capabilities)))) diff --git a/fnl/config/lsp/init.fnl b/fnl/config/lsp/init.fnl deleted file mode 100644 index 378473e..0000000 --- a/fnl/config/lsp/init.fnl +++ /dev/null @@ -1,10 +0,0 @@ -;; Loads the LSP functionality. -(module config.lsp.init {autoload {: util}}) - -(require :config.lsp.mason) -(require :config.lsp.mason-lspconfig) -(let [handlers (require :config.lsp.handlers)] - (handlers.setup)) - -(require :config.lsp.null-ls) -(require :config.lsp.mason-null-ls) diff --git a/fnl/config/lsp/mason-lspconfig.fnl b/fnl/config/lsp/mason-lspconfig.fnl index a2bd714..130fc17 100644 --- a/fnl/config/lsp/mason-lspconfig.fnl +++ b/fnl/config/lsp/mason-lspconfig.fnl @@ -1,5 +1,5 @@ ;; TBD -(module config.lsp.mason-lspconfig {autoload {: util}}) +(module config.lsp.mason-lspconfig {autoload {util config.util}}) (def- servers [:bashls :clangd @@ -49,9 +49,9 @@ (def- opts {:ensure_installed servers :automatic_installation true}) -(util.use-config :mason-lspconfig opts) +(util.setup :mason-lspconfig opts) -(let [lspconfig (util.load-plugin :lspconfig)] +(let [lspconfig (util.prequire :lspconfig)] (each [_ server (ipairs servers)] (let [server-config (. lspconfig server)] (server-config.setup (get-server-opts server))))) diff --git a/fnl/config/lsp/mason-null-ls.fnl b/fnl/config/lsp/mason-null-ls.fnl index 42b3715..33cf93f 100644 --- a/fnl/config/lsp/mason-null-ls.fnl +++ b/fnl/config/lsp/mason-null-ls.fnl @@ -1,5 +1,5 @@ ;; Ensure that tools needed for null-ls are installed. -(module config.mason-null-ls {autoload {: util}}) +(module config.mason-null-ls {autoload {util config.util}}) (def- opts {:ensure_installed [:flake8 :golangci-lint @@ -23,4 +23,4 @@ :auto_update true :automatic_installation true}) -(util.use-config :mason-null-ls opts) +(util.setup :mason-null-ls opts) diff --git a/fnl/config/lsp/mason.fnl b/fnl/config/lsp/mason.fnl index 66963cb..adc60a4 100644 --- a/fnl/config/lsp/mason.fnl +++ b/fnl/config/lsp/mason.fnl @@ -1,9 +1,9 @@ ;; Mason manages external tooling, e.g. lsp, formatters, and linters. -(module config.lsp.mason {autoload {: util}}) +(module config.lsp.mason {autoload {util config.util}}) (def- opts {:ui {:icons {:package_installed "✓" :package_pending "➜" :package_uninstalled "✗"}} :max_concurrent_installers 10}) -(util.use-config :mason opts) +(util.setup :mason opts) diff --git a/fnl/config/lsp/null-ls.fnl b/fnl/config/lsp/null-ls.fnl index 9ad1fed..7ebd25e 100644 --- a/fnl/config/lsp/null-ls.fnl +++ b/fnl/config/lsp/null-ls.fnl @@ -1,7 +1,7 @@ ;; Adds LSP diagnostics and formatting. -(module config.lsp.null-ls {autoload {: util}}) +(module config.lsp.null-ls {autoload {util config.util}}) -(let [null-ls (util.load-plugin :null-ls)] +(let [null-ls (util.prequire :null-ls)] (let [formatting null-ls.builtins.formatting diagnostics null-ls.builtins.diagnostics] (null-ls.setup {:debug false diff --git a/fnl/config/lsp/settings/jsonls.fnl b/fnl/config/lsp/settings/jsonls.fnl index a2cb78c..55c6115 100644 --- a/fnl/config/lsp/settings/jsonls.fnl +++ b/fnl/config/lsp/settings/jsonls.fnl @@ -1,7 +1,7 @@ ;; Json schema store catalog language server. -(module config.lsp.settings.jsonls {autoload {: util}}) +(module config.lsp.settings.jsonls {autoload {util config.util}}) -(let [schemastore (util.load-plugin :schemastore)] +(let [schemastore (util.prequire :schemastore)] {:init_options {:providerFormatter false} :settings {:json {:schemas (schemastore.json.schemas)}} :setup {:commands {:Format [(fn [] diff --git a/fnl/config/lualine.fnl b/fnl/config/lualine.fnl index d098966..833e68e 100644 --- a/fnl/config/lualine.fnl +++ b/fnl/config/lualine.fnl @@ -1,8 +1,9 @@ ;; Statusbar. -(module config.lualine {autoload {: util}}) +(module config.lualine {autoload {util config.util}}) (def- disable [:neogitstatus :lir + :netrw :alpha :Outline :NeogitStatus @@ -73,4 +74,4 @@ :lualine_z [:location :progress]} :extensions []}) -(util.use-config :lualine opts) +(util.setup :lualine opts) diff --git a/fnl/config/minibar.fnl b/fnl/config/minibar.fnl index fddb71c..f64188f 100644 --- a/fnl/config/minibar.fnl +++ b/fnl/config/minibar.fnl @@ -1,15 +1,12 @@ -(module config.minibar {autoload {: util}}) +(module config.minibar {autoload {util config.util}}) (def- opts {:ignore-filetypes [:help - :startify :harpoon - :dashboard :packer :neogitstatus :Trouble - :alpha - :lir :org + :netrw :Outline :NeogitStatus :NeogitCommitMessage @@ -25,4 +22,4 @@ :InsertEnter :BufWritePost]}) -(util.use-config :minibar opts) +(util.setup :minibar opts) diff --git a/fnl/config/neogit.fnl b/fnl/config/neogit.fnl index da723c7..2d9f515 100644 --- a/fnl/config/neogit.fnl +++ b/fnl/config/neogit.fnl @@ -1,4 +1,4 @@ ;; UI for git. -(module config.neogit {autoload {: util}}) +(module config.neogit {autoload {util config.util}}) -(util.use-config :neogit {}) +(util.setup :neogit {}) diff --git a/fnl/config/orgmode.fnl b/fnl/config/orgmode.fnl index 25501af..a21eaa0 100644 --- a/fnl/config/orgmode.fnl +++ b/fnl/config/orgmode.fnl @@ -1,5 +1,5 @@ ;; Orgmode for nvim. -(module config.orgmode {autoload {nvim aniseed.nvim : util}}) +(module config.orgmode {autoload {nvim aniseed.nvim util config.util}}) (nvim.ex.set :conceallevel=2) (nvim.ex.set :concealcursor=nc) @@ -44,6 +44,6 @@ :org_agenda_templates templates : notifications}) -(let [orgmode (util.load-plugin :orgmode)] +(let [orgmode (util.prequire :orgmode)] (orgmode.setup_ts_grammar) (orgmode.setup opts)) diff --git a/fnl/config/packer.fnl b/fnl/config/packer.fnl index 36691b9..f4f44cc 100644 --- a/fnl/config/packer.fnl +++ b/fnl/config/packer.fnl @@ -1,7 +1,7 @@ ;; Load packer config -(module config.packer {autoload {: util}}) +(module config.packer {autoload {util config.util}}) -(let [packer (util.load-plugin :packer) +(let [packer (util.prequire :packer) packer-util (require :packer.util)] (packer.init {:display {:open_fn (fn [] (packer-util.float {:border :rounded}))}})) diff --git a/fnl/config/project.fnl b/fnl/config/project.fnl index 6ef7942..1617ca5 100644 --- a/fnl/config/project.fnl +++ b/fnl/config/project.fnl @@ -1,5 +1,5 @@ ;; Provides project management. -(module config.project {autoload {: util}}) +(module config.project {autoload {util config.util}}) (def- opts {:active true :on_config_done nil @@ -11,4 +11,4 @@ :ignore_lsp {} :datapath (vim.fn.stdpath :data)}) -(util.use-config :project_nvim opts) +(util.setup :project_nvim opts) diff --git a/fnl/config/spectre.fnl b/fnl/config/spectre.fnl index 13bbcc5..f0afa52 100644 --- a/fnl/config/spectre.fnl +++ b/fnl/config/spectre.fnl @@ -1,5 +1,5 @@ ;; Find and replace. -(module config.spectre {autoload {: util}}) +(module config.spectre {autoload {util config.util}}) (def- opts {:color_devicons true :highlight {:ui :String :search :DiffChange :replace :DiffDelete} @@ -60,4 +60,4 @@ :is_open_target_win true :is_insert_mode false}) -(util.use-config :spectre opts) +(util.setup :spectre opts) diff --git a/fnl/config/stabilize.fnl b/fnl/config/stabilize.fnl index ff2ac19..5ac2a7f 100644 --- a/fnl/config/stabilize.fnl +++ b/fnl/config/stabilize.fnl @@ -1,5 +1,5 @@ ;; Stabilize window open/close events. -(module config.stabilize {autoload {: util}}) +(module config.stabilize {autoload {util config.util}}) (def- opts {:force true ;; stabilize window even when current cursor position will be hidden behind new window @@ -12,4 +12,4 @@ ;; comma-separated list of autocmds that wil trigger the plugins window restore function }) -(util.use-config :stabilize opts) +(util.setup :stabilize opts) diff --git a/fnl/config/stay-in-place.fnl b/fnl/config/stay-in-place.fnl index 9136fdf..be3ccd3 100644 --- a/fnl/config/stay-in-place.fnl +++ b/fnl/config/stay-in-place.fnl @@ -1,4 +1,4 @@ ;; Prevent the cursor from moving when using shift and filter actions. -(module config.stay-in-place {autoload {: util}}) +(module config.stay-in-place {autoload {util config.util}}) -(util.use-config :stay-in-place {}) +(util.setup :stay-in-place {}) diff --git a/fnl/config/surround.fnl b/fnl/config/surround.fnl index 04a516f..2406ecd 100644 --- a/fnl/config/surround.fnl +++ b/fnl/config/surround.fnl @@ -1,6 +1,6 @@ ;; Surround selections. -(module config.surround {autoload {: util}}) +(module config.surround {autoload {util config.util}}) (def- opts {}) -(util.use-config :nvim-surround opts) +(util.setup :nvim-surround opts) diff --git a/fnl/config/telescope.fnl b/fnl/config/telescope.fnl index 7989c54..d421b0d 100644 --- a/fnl/config/telescope.fnl +++ b/fnl/config/telescope.fnl @@ -1,9 +1,9 @@ ;; Telescope a highly extendable fuzzy finder over lists. -(module config.telescope {autoload {: util nvim aniseed.nvim}}) +(module config.telescope {autoload {util config.util nvim aniseed.nvim}}) (def- opts {:noremap true :silent true}) -(let [telescope (util.load-plugin :telescope)] +(let [telescope (util.prequire :telescope)] (let [actions (require :telescope.actions)] (telescope.setup {:defaults {:prompt_prefix " " :selection_caret "> " @@ -76,7 +76,4 @@ :override_file_sorter true :case_mode :smart_case}}}) (telescope.load_extension :fzf) - (telescope.load_extension :file_browser) - (telescope.load_extension :session-lens) - (telescope.load_extension :harpoon) - (telescope.load_extension :projects))) + (telescope.load_extension :frecency))) diff --git a/fnl/config/toggleterm.fnl b/fnl/config/toggleterm.fnl index 329964c..dd561f3 100644 --- a/fnl/config/toggleterm.fnl +++ b/fnl/config/toggleterm.fnl @@ -1,6 +1,6 @@ ;; Terminal inside nvim. (module config.toggleterm - {autoload {: util nvim aniseed.nvim autocmd config.autocmd}}) + {autoload {util config.util nvim aniseed.nvim autocmd config.autocmd}}) (def- opts {:size 16 :shade_terminals false}) @@ -10,7 +10,7 @@ (nvim.set_keymap :t :<C-k> "<Cmd>wincmd k<CR>" {}) (nvim.set_keymap :t :<C-l> "<Cmd>wincmd l<CR>" {})) -(util.use-config :toggleterm opts) +(util.setup :toggleterm opts) (autocmd.create-autocmd :TermOpen {:pattern "term://*toggleterm#*" :callback set-terminal-keymaps}) diff --git a/fnl/config/treesitter.fnl b/fnl/config/treesitter.fnl index a2ba356..e61e2c0 100644 --- a/fnl/config/treesitter.fnl +++ b/fnl/config/treesitter.fnl @@ -1,6 +1,6 @@ ;; 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}}) +(module config.treesitter {autoload {util config.util}}) (def- opts {:ensure_installed [:c :rust @@ -29,4 +29,4 @@ :indent {:enable true :disable [:yaml :python :css]} :playground {:enable true}}) -(util.use-config :nvim-treesitter.configs opts) +(util.setup :nvim-treesitter.configs opts) diff --git a/fnl/config/trim.fnl b/fnl/config/trim.fnl index a2faf48..8a2ec43 100644 --- a/fnl/config/trim.fnl +++ b/fnl/config/trim.fnl @@ -1,6 +1,6 @@ ;; Trim whitespaces on save. -(module config.trim {autoload {: util}}) +(module config.trim {autoload {util config.util}}) (def- opts {:disable [:python]}) -(util.use-config :trim opts) +(util.setup :trim opts) diff --git a/fnl/config/trouble.fnl b/fnl/config/trouble.fnl index 03942af..b45fecd 100644 --- a/fnl/config/trouble.fnl +++ b/fnl/config/trouble.fnl @@ -1,5 +1,5 @@ ;; Pretty diagnostics. -(module config.trouble {autoload {: util}}) +(module config.trouble {autoload {util config.util}}) (def- opts {:position :bottom ;; position of the list can be: bottom, top, left, right @@ -79,4 +79,4 @@ ;; enabling this will use the signs defined in your lsp client }) -(util.use-config :trouble opts) +(util.setup :trouble opts) diff --git a/fnl/config/util.fnl b/fnl/config/util.fnl new file mode 100644 index 0000000..a4dcf5b --- /dev/null +++ b/fnl/config/util.fnl @@ -0,0 +1,13 @@ +;; Utility functions. +(module util {autoload {a aniseed.core nvim aniseed.nvim}}) + +(defn prequire [name] + (let [(ok? plugin) (pcall require name)] + (if ok? + plugin + (vim.notify (.. "Could not load config: " plugin) + vim.log.levels.WARN)))) + +(defn setup [plugin config] + (let [plugin (prequire plugin)] + (plugin.setup config))) diff --git a/fnl/config/which-key.fnl b/fnl/config/which-key.fnl index 148ee29..1412c1a 100644 --- a/fnl/config/which-key.fnl +++ b/fnl/config/which-key.fnl @@ -1,5 +1,5 @@ ;; Which-key provides a pop-up meny for some key mappings. -(module config.which-key {autoload {: util nvim aniseed.nvim}}) +(module config.which-key {autoload {util config.util nvim aniseed.nvim}}) (def- setup {:plugins {:marks true :registers true @@ -39,8 +39,10 @@ :Harpoon] :b ["<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{sort_lastused = true, initial_mode = 'normal', previewer = false})<cr>" "Switch buffers"] - :d [:<cmd>TroubleToggle<cr> :Trouble] - :D ["<cmd>Telescope diagnostics theme=dropdown<cr>" "Telescope diagnostics"] + :c [:<cmd>DiffviewClose<cr> :DiffviewClose] + :d [:<cmd>DiffviewFileHistory<cr> :DiffviewFileHistory] + :x ["<cmd>DiffviewOpen -uno<cr>" :DiffviewOpen] + :q ["<cmd>Gitsigns diffthis HEAD<cr>" "Gitsigns diff"] :f ["<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})<cr>" "Find files"] :g ["<cmd>Telescope live_grep theme=ivy<cr>" "Find text"] @@ -48,7 +50,8 @@ "Harpoon Next"] :h ["<cmd>lua require('harpoon.ui').nav_prev()<cr>" "Harpoon Prev"] - :t ["<cmd>Telescope harpoon marks theme=dropdown<cr>" "Search Files"] + :t ["<cmd>Telescope harpoon marks theme=dropdown<cr>" + "Search Harpoon"] :v ["<cmd>lua vim.lsp.buf.rename()<cr>" :Rename] :p [:<cmd>SaveSession<cr> "Save Session"] :r ["<cmd>lua require('harpoon.ui').toggle_quick_menu()<cr>" @@ -63,24 +66,29 @@ :nowait true}) (def- find {:name :Find - :b ["<cmd>Telescope git_branches theme=dropdown<cr>" "Checkout branch"] + :b ["<cmd>Telescope git_branches theme=dropdown<cr>" + "Checkout branch"] :c ["<cmd>Telescope colorscheme theme=dropdown<cr>" :Colorscheme] :f ["<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})<cr>" "Find files"] :t ["<cmd>Telescope live_grep theme=ivy<cr>" "Find text"] - :s ["<cmd>Telescope grep_string theme=dropdown<cr>" "Find String"] + :s [:<cmd>SearchSession<cr> "Find Session"] + :S ["<cmd>Telescope grep_string theme=dropdown<cr>" "Find String"] :h ["<cmd>Telescope help_tags<cr>" :Help] :H ["<cmd>Telescope highlights<cr>" :Highlights] :l ["<cmd>Telescope resume<cr>" "Last Search"] - :M ["<cmd>Telescope man_pages<cr>" "Man Pages"] + :p ["<cmd>Telescope projects<cr>" "Find project"] :r ["<cmd>Telescope oldfiles theme=dropdown<cr>" "Recent File"] :R ["<cmd>Telescope registers<cr>" :Registers] :k ["<cmd>Telescope keymaps<cr>" :Keymaps] :C ["<cmd>Telescope commands<cr>" :Commands]}) +(def- diagnostics {:name :Diagnostics + :d [:<cmd>TroubleToggle<cr> :Trouble] + :D ["<cmd>Telescope diagnostics theme=dropdown<cr>" + "Telescope diagnostics"]}) + (def- git {:name :Git - :d ["<cmd>Gitsigns diffthis HEAD<cr>" :Diff] - :D [:<cmd>DiffviewFileHistory<cr> :DiffviewFileHistory] :j ["<cmd>lua require 'gitsigns'.next_hunk()<cr>" "Next Hunk"] :k ["<cmd>lua require 'gitsigns'.prev_hunk()<cr>" "Prev Hunk"] :l ["<cmd>lua require 'gitsigns'.blame_line()<cr>" :Blame] @@ -90,9 +98,12 @@ :s ["<cmd>lua require 'gitsigns'.stage_hunk()<cr>" "Stage Hunk"] :u ["<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>" "Undo Stage Hunk"] - :o ["<cmd>Telescope git_status theme=dropdown<cr>" "Open changed file"] - :b ["<cmd>Telescope git_branches theme=dropdown<cr>" "Checkout branch"] - :c ["<cmd>Telescope git_commits theme=dropdown<cr>" "Checkout commit"] + :o ["<cmd>Telescope git_status theme=dropdown<cr>" + "Open changed file"] + :b ["<cmd>Telescope git_branches theme=dropdown<cr>" + "Checkout branch"] + :c ["<cmd>Telescope git_commits theme=dropdown<cr>" + "Checkout commit"] :d ["<cmd>Gitsigns diffthis HEAD<cr>" :Diff]}) (def- lsp {:name :LSP @@ -105,12 +116,6 @@ :S ["<cmd>Telescope lsp_dynamic_workspace_symbols<cr>" "Workspace Symbols"]}) -(def- org {:name :Orgmode - :a ["<cmd>lua require('orgmode').action('agenda.prompt')" - "Open agenda prompt"] - :c ["<cmd>lua require('orgmode').action('capture.prompt')" - "Open capture prompt"]}) - (def- packer {:name :Packer :c [:<cmd>PackerCompile<cr> :Compile] :i [:<cmd>PackerInstall<cr> :Install] @@ -137,15 +142,16 @@ (def- nmappings {:a ["<cmd>Telescope lsp_document_symbols theme=dropdown<cr>" "Document Symbols"] :c [:<cmd>Bdelete!<CR> "Close Buffer"] + :d diagnostics :f find :g git - :h [:<cmd>Alpha<cr> :Alpha] + :h [:<cmd>ColorizerToggle<cr> :Colorizer] :l lsp :n ["<cmd>lua require('Comment.api').toggle.linewise.current()<CR>" :Comment] - :o org :p packer :r replace + :u [:<cmd>UndotreeToggle<cr> :Undotree] :s [switch-window "Switch window"] :t [:<cmd>ToggleTerm<cr> :Terminal] :T treesitter @@ -161,8 +167,21 @@ (def- vmappings {:n ["<ESC><CMD>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<CR>" :Comment]}) -(let [which-key (util.load-plugin :which-key)] +(def- gopts {:mode :n + :prefix :g + :buffer nil + :silent true + :noremap true + :nowait true}) + +(def- gmappings {:a ["<cmd>lua require('orgmode').action('agenda.prompt')<cr>" + "Open agenda prompt"] + :c ["<cmd>lua require('orgmode').action('capture.prompt')<cr>" + "Open capture prompt"]}) + +(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 vmappings vopts) + (which-key.register gmappings gopts)) diff --git a/fnl/config/window-picker.fnl b/fnl/config/window-picker.fnl index 3775ffe..76a11f5 100644 --- a/fnl/config/window-picker.fnl +++ b/fnl/config/window-picker.fnl @@ -1,8 +1,8 @@ ;; Trim whitespaces on save. -(module config.window-picker {autoload {: util}}) +(module config.window-picker {autoload {util config.util}}) (def- opts {:other_win_hl_color "#171717" :fg_color "#E1E1E1" :selection_chars :MNEIOARSTG}) -(util.use-config :window-picker opts) +(util.setup :window-picker opts) diff --git a/fnl/config/zen.fnl b/fnl/config/zen.fnl index 543afe7..a7dbe6a 100644 --- a/fnl/config/zen.fnl +++ b/fnl/config/zen.fnl @@ -1,5 +1,5 @@ ;; Zen mode. -(module config.zen {autoload {: util}}) +(module config.zen {autoload {util config.util}}) (def- opts {:window {:backdrop 1 :height 0.8 @@ -11,4 +11,4 @@ :tmux {:enabled true} :twilight {:enabled true}}}) -(util.use-config :zen-mode opts) +(util.setup :zen-mode opts) |