Commit Graph

9 Commits

Author SHA1 Message Date
0d1aa591e5 perf: add caching system for fast graph loading
Major performance improvements for graph visualization:

Cache System:
- Add cache.lua module that stores parsed links/tags per file
- Only re-parse files that have been modified (mtime check)
- Cache stored in .ideadrop-graph-cache.json in idea_dir
- Fast file scanning using vim.fs.find when available

Layout Optimizations:
- Reduce max iterations from 300 to 100
- Faster convergence with adjusted parameters
- Barnes-Hut approximation for large graphs (100+ nodes)
- Cache math functions locally for speed
- Skip distant node pairs in repulsion calculation
- Reuse visible_nodes array across iterations

New Commands:
- :IdeaGraph rebuild - Force full cache rebuild
- :IdeaGraphClearCache - Clear cache file

This makes opening the graph nearly instant for previously
scanned vaults, similar to Obsidian's behavior.
2026-01-10 23:18:49 -05:00
c706e8ee4f fix: improve graph path handling and error messages
- Handle nil idea_dir in config (don't override default with nil)
- Expand environment variables and ~ in paths during setup
- Add get_idea_dir() helper function for consistent path access
- Remove trailing slashes from paths
- Add fallback to non-recursive glob if recursive finds no files
- Show actual path being used in error messages for debugging
- Better error messages when directory doesn't exist or has no .md files
2026-01-10 23:06:46 -05:00
937f20b892 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
2026-01-10 23:02:40 -05:00
Carlos Gutierrez
de8ccfb9aa fix: critical bugs and add documentation
- Fix missing path separator in glob patterns (files were not found)
- Fix nvim-tree setup overriding user config on every IdeaTree call
- Fix deprecated nvim API (nvim_buf_set_option, nvim_win_set_option)
- Fix missing arguments in sidebar.open() call in list.lua
- Remove unused variable in tags.lua
- Update help documentation with all commands
- Fix README.md (telescope reference, add changelog link)
- Add CHANGELOG.md
- Add llms.txt for AI/LLM context
2026-01-10 22:34:10 -05:00
Carlos
3dc33a46bb fixing repository name on the readme 2025-07-28 19:31:39 -04:00
Carlos
658a56ca55 adding functionalities on the buffer 2025-07-28 19:28:46 -04:00
Carlos
2baa8ee836 Merge branch 'master' of github.com:CarGDev/ideadrop.nvim 2025-06-14 20:39:19 -04:00
Carlos
fef0bb9266 Initial commit: ideaDrop.nvim plugin with sidebar and idea saving 2025-06-14 20:39:13 -04:00
5b48fcbd39 Initial commit 2025-06-14 20:31:29 -04:00