From 70a8d999bd58487cc79228faedd3ec82f847334b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 23 Jul 2023 12:27:18 +0200 Subject: [PATCH] refactor(telekasten): use better keybindings --- modules/programs/nvim/plugins/default.nix | 24 ++--------------- .../nvim/plugins/zettelkasten-nvim.lua | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+), 22 deletions(-) create mode 100644 modules/programs/nvim/plugins/zettelkasten-nvim.lua diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 74bde38..d1ea630 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -269,33 +269,13 @@ with builtins; plugin = telekasten-nvim; dependencies = [ { plugin = telescope-nvim; } + { plugin = which-key-nvim; } ]; cmd = [ "Telekasten" ]; keys = [ { key = "z"; cmd = "Telekasten"; desc = "zettelkasten"; } ]; - conf = '' - require("telekasten").setup({ - home = vim.fn.expand("~/Nextcloud/Notes/zettelkasten"), - auto_set_filetype = false, - image_subdir = "assets", - }) - vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, { - pattern = "*/zettelkasten/*", - callback = function(event) - vim.api.nvim_buf_set_keymap(0, "n", "", "", { - callback = function() - local current_word = vim.fn.expand("") - if vim.fn.match(current_word, "[[") == 0 then - require("telekasten").follow_link() - else - require("telekasten").toggle_todo() - end - end, - }) - end, - }) - ''; + conf = builtins.readFile ./zettelkasten-nvim.lua; } { plugin = markdown-preview-nvim; diff --git a/modules/programs/nvim/plugins/zettelkasten-nvim.lua b/modules/programs/nvim/plugins/zettelkasten-nvim.lua new file mode 100644 index 0000000..6a35570 --- /dev/null +++ b/modules/programs/nvim/plugins/zettelkasten-nvim.lua @@ -0,0 +1,27 @@ +local telekasten = require("telekasten") +telekasten.setup({ + home = vim.fn.expand("~/Nextcloud/Notes/zettelkasten"), + auto_set_filetype = false, + image_subdir = "assets", +}) + +vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, { + pattern = "*/zettelkasten/*", + callback = function(_) + require("which-key").register({ + g = { + f = { telekasten.follow_link, "Follow link" }, + r = { telekasten.show_backlinks, "Show backlinks" }, + }, + [""] = { + f = { + f = { telekasten.find_notes, "Find note" }, + n = { telekasten.new_note, "New note" }, + }, + s = { + g = { telekasten.search_note, "Grep notes" }, + }, + }, + }, { buffer = vim.fn.bufnr("%") }) + end, +})