feat: add Obsidian-style graph visualization

Implement force-directed graph view for visualizing note connections:

- Add graph data model parsing [[wiki-style links]]
- Implement Fruchterman-Reingold layout algorithm
- Create character-based canvas renderer with highlights
- Add interactive filtering by tag/folder
- Support navigation (h/j/k/l), zoom (+/-), and node selection
- New commands: :IdeaGraph, :IdeaGraphFilter

New files:
- lua/ideaDrop/ui/graph/{init,types,data,layout,renderer}.lua

Updated documentation in README.md, CHANGELOG.md, and llms.txt
This commit is contained in:
2026-01-10 23:02:40 -05:00
parent de8ccfb9aa
commit 937f20b892
12 changed files with 2261 additions and 14 deletions

View File

@@ -9,9 +9,12 @@ function M.setup()
-- Example: Quick access to ideaDrop commands
-- vim.keymap.set("n", "<leader>id", ":IdeaRight<CR>", { desc = "Open today's idea" })
-- vim.keymap.set("n", "<leader>in", ":IdeaRight ", { desc = "Open named idea" })
-- vim.keymap.set("n", "<leader>it", ":IdeaTree<CR>", { desc = "Open idea tree" })
-- vim.keymap.set("n", "<leader>is", ":IdeaSearch ", { desc = "Search ideas" })
-- vim.keymap.set("n", "<leader>it", ":IdeaTags<CR>", { desc = "Browse tags" })
-- vim.keymap.set("n", "<leader>ig", ":IdeaTags<CR>", { desc = "Browse tags" })
-- vim.keymap.set("n", "<leader>if", ":Idea<CR>", { desc = "Open today's idea in float" })
-- vim.keymap.set("n", "<leader>iG", ":IdeaGraph<CR>", { desc = "Open graph visualization" })
-- Note: Keymaps are commented out by default to avoid conflicts
-- Users can uncomment and customize these in their config