summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2022-10-17 23:33:57 +0200
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2022-10-17 23:33:57 +0200
commite16303d85286e5661093e2029d54593e3a3481ec (patch)
tree2e13945842f7286d91c63035f7e73f91653d675f
parentf3432fc8f42246ac26f90146f13045377bc3899e (diff)
Add cmds for plugins to lazy load them
-rw-r--r--fnl/config/cmd.fnl68
-rw-r--r--fnl/config/orgmode.fnl6
-rw-r--r--fnl/config/which-key.fnl35
-rw-r--r--fnl/init.fnl4
-rw-r--r--fnl/plugins.fnl9
5 files changed, 90 insertions, 32 deletions
diff --git a/fnl/config/cmd.fnl b/fnl/config/cmd.fnl
new file mode 100644
index 0000000..20ef377
--- /dev/null
+++ b/fnl/config/cmd.fnl
@@ -0,0 +1,68 @@
+;; Commands for plugins.
+(module config.cmd {autoload {nvim aniseed.nvim util config.util}})
+
+(nvim.create_user_command :OrgAgendaPrompt
+ (lambda []
+ (let [orgmode (util.prequire :orgmode)]
+ (orgmode.action :agenda.prompt)))
+ {:nargs 0})
+
+(nvim.create_user_command :OrgCapturePrompt
+ (lambda []
+ (let [orgmode (util.prequire :orgmode)]
+ (orgmode.action :capture.prompt)))
+ {:nargs 0})
+
+(nvim.create_user_command :CommentNormal
+ (lambda []
+ (let [comment-api (util.prequire :Comment.api)]
+ (comment-api.toggle.linewise.current)))
+ {:nargs 0})
+
+(nvim.create_user_command :CommentVisual
+ (lambda []
+ (let [comment-api (util.prequire :Comment.api)]
+ (comment-api.toggle.linewise (vim.fn.visualmode))))
+ {:nargs 0})
+
+(nvim.create_user_command :HarpoonAdd
+ (lambda []
+ (let [harpoon (util.prequire :harpoon.mark)]
+ (harpoon.add_file)))
+ {:nargs 0})
+
+(nvim.create_user_command :HarpoonNext
+ (lambda []
+ (let [harpoon (util.prequire :harpoon.ui)]
+ (harpoon.nav_next)))
+ {:nargs 0})
+
+(nvim.create_user_command :HarpoonPrev
+ (lambda []
+ (let [harpoon (util.prequire :harpoon.ui)]
+ (harpoon.nav_prev)))
+ {:nargs 0})
+
+(nvim.create_user_command :HarpoonUI
+ (lambda []
+ (let [harpoon (util.prequire :harpoon.ui)]
+ (harpoon.toggle_quick_menu)))
+ {:nargs 0})
+
+(nvim.create_user_command :Replace
+ (lambda []
+ (let [spectre (util.prequire :spectre)]
+ (spectre.open)))
+ {:nargs 0})
+
+(nvim.create_user_command :ReplaceWord
+ (lambda []
+ (let [spectre (util.prequire :spectre)]
+ (spectre.open.open_visual {:select_word true})))
+ {:nargs 0})
+
+(nvim.create_user_command :ReplaceInBuf
+ (lambda []
+ (let [spectre (util.prequire :spectre)]
+ (spectre.open_file_search)))
+ {:nargs 0})
diff --git a/fnl/config/orgmode.fnl b/fnl/config/orgmode.fnl
index a21eaa0..216fe4c 100644
--- a/fnl/config/orgmode.fnl
+++ b/fnl/config/orgmode.fnl
@@ -5,10 +5,8 @@
(nvim.ex.set :concealcursor=nc)
(def- templates
- {:t {:description :Task
- :template "* TODO %?\n %u\n DEADLINE: %T\n"}
- :m {:description :Meeting
- :template "* Meeting %?"}
+ {: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"}})
(defn- create-title [task]
diff --git a/fnl/config/which-key.fnl b/fnl/config/which-key.fnl
index 1412c1a..11a6dce 100644
--- a/fnl/config/which-key.fnl
+++ b/fnl/config/which-key.fnl
@@ -35,8 +35,7 @@
:noremap true
:nowait true})
-(def- mmappings {:a ["<cmd>lua require('harpoon.mark').add_file()<cr>"
- :Harpoon]
+(def- mmappings {:a [:<cmd>HarpoonAdd<cr> :Harpoon]
:b ["<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{sort_lastused = true, initial_mode = 'normal', previewer = false})<cr>"
"Switch buffers"]
:c [:<cmd>DiffviewClose<cr> :DiffviewClose]
@@ -46,16 +45,11 @@
: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"]
- :l ["<cmd>lua require('harpoon.ui').nav_next()<cr>"
- "Harpoon Next"]
- :h ["<cmd>lua require('harpoon.ui').nav_prev()<cr>"
- "Harpoon Prev"]
- :t ["<cmd>Telescope harpoon marks theme=dropdown<cr>"
- "Search Harpoon"]
+ :l [:<cmd>HarpoonNext<cr> "Harpoon Next"]
+ :h [:<cmd>HarpoonPrev<cr> "Harpoon Prev"]
: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>"
- "Harpoon UI"]
+ :r [:<cmd>HarpoonUI<cr> "Harpoon UI"]
:n [:<cmd>Neogit<cr> :Neogit]})
(def- nopts {:mode :n
@@ -124,11 +118,9 @@
:u [:<cmd>PackerUpdate<cr> :Update]})
(def- replace {:name :Replace
- :r ["<cmd>lua require('spectre').open()<cr>" :Replace]
- :w ["<cmd>lua require('spectre').open_visual({select_word=true})<cr>"
- "Replace Word"]
- :f ["<cmd>lua require('spectre').open_file_search()<cr>"
- "Replace Buffer"]})
+ :r [:<cmd>Replace<cr> :Replace]
+ :w [:<cmd>ReplaceWord<cr> "Replace Word"]
+ :f [:<cmd>ReplaceInBuf<cr> "Replace Buffer"]})
(def- treesitter
{:name :Treesitter :p [:<cmd>TSPlaygroundToggle<cr> :Playground]})
@@ -147,8 +139,7 @@
:g git
:h [:<cmd>ColorizerToggle<cr> :Colorizer]
:l lsp
- :n ["<cmd>lua require('Comment.api').toggle.linewise.current()<CR>"
- :Comment]
+ :n [:<cmd>CommentNormal<CR> :Comment]
:p packer
:r replace
:u [:<cmd>UndotreeToggle<cr> :Undotree]
@@ -164,8 +155,7 @@
:noremap true
:nowait true})
-(def- vmappings {:n ["<ESC><CMD>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<CR>"
- :Comment]})
+(def- vmappings {:n [:<esc><cmd>CommentVisual<cr> :Comment]})
(def- gopts {:mode :n
:prefix :g
@@ -174,10 +164,9 @@
: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"]})
+(def- gmappings
+ {:a [:<cmd>OrgAgendaPrompt<cr> "Open agenda prompt"]
+ :c [:<cmd>OrgCapturePrompt<cr> "Open capture prompt"]})
(let [which-key (util.prequire :which-key)]
(which-key.setup setup)
diff --git a/fnl/init.fnl b/fnl/init.fnl
index 2e25da9..a28d2b6 100644
--- a/fnl/init.fnl
+++ b/fnl/init.fnl
@@ -1,5 +1,7 @@
;; Load plugins with packer.
-(module init {autoload {: plugins : packer} require [settings config.packer config.autocmd]})
+(module init
+ {autoload {: plugins : packer}
+ require [settings config.packer config.autocmd config.cmd]})
(packer.startup (fn [use]
(each [_ plugin (pairs plugins.all)]
diff --git a/fnl/plugins.fnl b/fnl/plugins.fnl
index 13da672..c0195bd 100644
--- a/fnl/plugins.fnl
+++ b/fnl/plugins.fnl
@@ -76,7 +76,7 @@
(require :config.trouble))}])
(def misc [{1 :nvim-orgmode/orgmode
- :event :BufReadPre
+ :event :BufRead
:config (fn []
(require :config.orgmode))}
{1 :moll/vim-bbye :event :BufRead}
@@ -106,11 +106,12 @@
:config (fn []
(require :config.flit))}
{1 :ahmedkhalf/project.nvim
+ :event :VimEnter
:requires :nvim-telescope/telescope.nvim
:config (fn []
(require :config.project))}
{1 :windwp/nvim-spectre
- :event :InsertEnter
+ :cmd [:Replace :ReplaceWord :ReplaceInBuf]
:config (fn []
(require :config.spectre))}
{1 :junegunn/vim-slash
@@ -118,7 +119,7 @@
:config (fn []
(require :config.vim-slash))}
{1 :ThePrimeagen/harpoon
- :event :InsertEnter
+ :cmd [:HapoonAdd :HapoonNext :HapoonPrev :HarpoonUI]
:requires :nvim-telescope/telescope.nvim
:config (fn []
(require :config.harpoon))}])
@@ -133,7 +134,7 @@
(def snippets [:rafamadriz/friendly-snippets])
(def text [{1 :numToStr/Comment.nvim
- :event :InsertEnter
+ :cmd [:CommentNormal :CommentVisual]
:config (fn []
(require :config.comment))}
{1 :JoosepAlviste/nvim-ts-context-commentstring :event :BufReadPost}