new feature: find_friends(): friend notes are note that reference the

same note as the link under the cursor
This commit is contained in:
Rene Schallner
2021-11-27 23:15:50 +01:00
parent 9f286ae78e
commit d0c5b6f284
3 changed files with 29 additions and 4 deletions

View File

@@ -13,6 +13,7 @@ A Neovim (lua) plugin for working with a text-based, markdown [zettelkasten](htt
- calendar support - calendar support
- paste images from clipboard - paste images from clipboard
- toggle [ ] todo status of line - toggle [ ] todo status of line
- show back-links and notes also referencing links
--- ---
@@ -225,6 +226,7 @@ The plugin defines the following functions.
- `paste_img_and_link()` : pastes an image from the clipboard into a file under `image_subdir` and inserts a link to it at the current cursor position - `paste_img_and_link()` : pastes an image from the clipboard into a file under `image_subdir` and inserts a link to it at the current cursor position
- `toggle_todo()` : turn a line into a `- [ ] ` line, or toggle between `- [ ]`, `- [x]`, and `- `. - `toggle_todo()` : turn a line into a `- [ ] ` line, or toggle between `- [ ]`, `- [x]`, and `- `.
- `show_backlinks()` : opens a telescope search for notes that `[[link]]` back to the current note. - `show_backlinks()` : opens a telescope search for notes that `[[link]]` back to the current note.
- `find_friends()` : opens a telescope search for notes that also `[[link]]` to the link under the cursor.
- `setup(opts)`: used for configuring paths, file extension, etc. - `setup(opts)`: used for configuring paths, file extension, etc.
To use one of the functions above, just run them with the `:lua ...` command. To use one of the functions above, just run them with the `:lua ...` command.

View File

@@ -413,6 +413,11 @@ telekasten.toggle_todo()~
telekasten.show_backlinks()~ telekasten.show_backlinks()~
Opens a telescope search for notes that `[[link]]` back to the current note. Opens a telescope search for notes that `[[link]]` back to the current note.
*telekasten.find_friends()*
telekasten.find_friends()~
Opens a telescope search for notes that also `[[link]]` to the link under the
cursor.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Section 3.1: Templates *telekasten.templates* Section 3.1: Templates *telekasten.templates*

View File

@@ -66,7 +66,6 @@ local function file_exists(fname)
end end
end end
-- ---------------------------------------------------------------------------- -- ----------------------------------------------------------------------------
-- image stuff -- image stuff
local imgFromClipboard = function() local imgFromClipboard = function()
@@ -352,6 +351,24 @@ local FollowLink = function(opts)
}) })
end end
--
-- FindFriends:
-- -----------
--
-- Find notes also linking to the link under cursor
--
local FindFriends = function()
vim.cmd("normal yi]")
local title = vim.fn.getreg('"0')
builtin.live_grep({
prompt_title = "Notes referencing `" .. title .. "`",
cwd = M.Cfg.home,
default_text = "\\[\\[" .. title .. "\\]\\]",
find_command = M.Cfg.find_command,
})
end
-- --
-- YankLink: -- YankLink:
-- ----------- -- -----------
@@ -440,14 +457,14 @@ end
-- Find all notes linking to this one -- Find all notes linking to this one
-- --
local ShowBacklinks = function(_) local ShowBacklinks = function(_)
local title = path_to_linkname(vim.fn.expand('%')) local title = path_to_linkname(vim.fn.expand("%"))
-- or vim.api.nvim_buf_get_name(0) -- or vim.api.nvim_buf_get_name(0)
builtin.live_grep({ builtin.live_grep({
results_title = "Backlinks to " .. title, results_title = "Backlinks to " .. title,
prompt_title = "Search", prompt_title = "Search",
cwd = M.Cfg.home, cwd = M.Cfg.home,
search_dirs = { M.Cfg.home }, search_dirs = { M.Cfg.home },
default_text = '\\[\\[' .. title .. '\\]\\]', default_text = "\\[\\[" .. title .. "\\]\\]",
find_command = M.Cfg.find_command, find_command = M.Cfg.find_command,
}) })
end end
@@ -737,5 +754,6 @@ M.CalendarAction = CalendarAction
M.paste_img_and_link = imgFromClipboard M.paste_img_and_link = imgFromClipboard
M.toggle_todo = ToggleTodo M.toggle_todo = ToggleTodo
M.show_backlinks = ShowBacklinks M.show_backlinks = ShowBacklinks
M.find_friends = FindFriends
return M return M