Files
ideadrop.nvim/README.md
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

259 lines
7.1 KiB
Markdown

# ideaDrop.nvim
💡 A powerful Neovim plugin for capturing, organizing, and managing your ideas with multiple view modes, tagging system, and advanced search capabilities.
## ✨ Features
- 🎯 **Multiple View Modes**: Floating windows, current buffer, or persistent right-side buffer
- 🏷️ **Smart Tagging System**: Add, remove, and filter ideas by tags
- 🔍 **Advanced Search**: Fuzzy search through titles and content
- 📁 **File Tree Browser**: Integrated nvim-tree for easy file navigation
- 📝 **Markdown Support**: Full markdown editing with syntax highlighting
- 💾 **Auto-save**: Changes saved automatically
- 📅 **Date-based Organization**: Automatic date-based file naming
- 🗂️ **Folder Support**: Nested organization with subdirectories
- 🎨 **Clean Interface**: Distraction-free writing environment
## 📦 Installation
### Using lazy.nvim
```lua
{
"CarGDev/ideadrop.nvim",
name = "ideaDrop",
dependencies = {
"nvim-tree/nvim-tree.lua",
"nvim-tree/nvim-web-devicons",
},
config = function()
require("ideaDrop").setup({
idea_dir = "/path/to/your/ideas", -- where your ideas will be saved
})
end,
}
```
### Using packer
```lua
use {
"CarGDev/ideadrop.nvim",
requires = {
"nvim-tree/nvim-tree.lua",
"nvim-tree/nvim-web-devicons",
},
config = function()
require("ideaDrop").setup({
idea_dir = "/path/to/your/ideas",
})
end,
}
```
## ⚙️ Configuration
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `idea_dir` | string | `vim.fn.stdpath("data") .. "/ideaDrop"` | Directory where your idea files will be stored |
### Example Configuration
```lua
require("ideaDrop").setup({
idea_dir = "/Users/carlos/Nextcloud/ObsidianVault",
})
```
## 🎮 Commands
### Core Commands
| Command | Description |
|---------|-------------|
| `:Idea` | Opens today's idea in floating window |
| `:Idea name` | Opens or creates an idea with the specified name (floating) |
| `:IdeaBuffer` | Opens today's idea in current buffer |
| `:IdeaBuffer name` | Opens or creates an idea in current buffer |
| `:IdeaRight` | Opens today's idea in persistent right-side buffer |
| `:IdeaRight name` | Opens or creates an idea in right-side buffer |
| `:IdeaTree` | Opens nvim-tree file browser on the left |
### Tag Commands
| Command | Description |
|---------|-------------|
| `:IdeaTags` | Shows tag picker to browse files by tag |
| `:IdeaAddTag tag` | Adds a tag to the current idea file |
| `:IdeaRemoveTag tag` | Removes a tag from the current idea file |
| `:IdeaSearchTag tag` | Searches for files with a specific tag |
### Search Commands
| Command | Description |
|---------|-------------|
| `:IdeaSearch query` | Fuzzy search through idea titles and content |
| `:IdeaSearchContent query` | Search only in idea content |
| `:IdeaSearchTitle query` | Search only in idea titles |
## ⌨️ Keymaps
The plugin automatically sets up convenient keymaps:
| Keymap | Command | Description |
|--------|---------|-------------|
| `<leader>id` | `:IdeaRight` | Open today's idea in right buffer |
| `<leader>in` | `:IdeaRight ` | Open named idea in right buffer |
| `<leader>it` | `:IdeaTree` | Open tree browser |
| `<leader>is` | `:IdeaSearch ` | Search ideas |
| `<leader>ig` | `:IdeaTags` | Browse tags |
| `<leader>if` | `:Idea` | Open today's idea in float |
## 🗂️ Usage Examples
### Basic Usage
```vim
:IdeaRight " Open today's idea in right buffer
:IdeaRight project/vision " Open project/vision.md in right buffer
:IdeaTree " Browse all ideas with nvim-tree
```
### Tag Management
```vim
:IdeaAddTag #work " Add #work tag to current idea
:IdeaAddTag #personal " Add #personal tag to current idea
:IdeaTags " Browse all tags
:IdeaSearchTag #work " Find all ideas with #work tag
```
### Search and Discovery
```vim
:IdeaSearch "machine learning" " Search for "machine learning" in all ideas
:IdeaSearchContent "algorithm" " Search content for "algorithm"
:IdeaSearchTitle "project" " Search titles for "project"
```
### File Organization
```vim
:IdeaRight meetings/2024-01-15 " Create nested folder structure
:IdeaRight projects/app/features " Organize by project and feature
```
## 🏷️ Tagging System
The plugin includes a powerful tagging system:
- **Add tags**: Use `#tag` format in your markdown files
- **Auto-completion**: Tags are automatically detected and indexed
- **Filter by tags**: Browse and filter ideas by tags
- **Tag statistics**: See how many files use each tag
### Tag Examples
```markdown
# My Idea Title
This is my idea content.
#work #project-x #feature #todo
```
## 🔍 Search Features
### Fuzzy Search
- Search through file titles and content
- Real-time results as you type
- Navigate through search results easily
### Content Search
- Search only in the body of your ideas
- Perfect for finding specific concepts or references
### Title Search
- Search only in file names
- Quick way to find specific ideas
## 📁 File Tree Integration
The plugin integrates with nvim-tree for seamless file browsing:
- **Left-side tree**: Opens on the left side of your screen
- **File selection**: Click or press Enter to open files
- **Directory navigation**: Browse through your idea folders
- **File operations**: Create, delete, rename files directly
## 🎯 View Modes
### 1. Floating Window (Original)
- Opens ideas in a floating window
- Good for quick notes
- Command: `:Idea`
### 2. Current Buffer
- Opens ideas in the current buffer
- Replaces current content
- Command: `:IdeaBuffer`
### 3. Right-Side Buffer (Recommended)
- Persistent buffer on the right side
- Stays open while you work
- Perfect for ongoing projects
- Command: `:IdeaRight`
### 4. Tree Browser
- Full file tree on the left side
- Integrated with nvim-tree
- Command: `:IdeaTree`
## 🛠️ Development
This plugin is built with:
- **Lua**: Core functionality
- **Neovim API**: Native Neovim integration
- **nvim-tree**: File tree browsing
- **vim.ui.select**: Native picker for search and tag selection
- **Markdown**: Rich text support
## 📋 Changelog
See [CHANGELOG.md](CHANGELOG.md) for a detailed list of changes.
## 📄 License
MIT License - feel free to use this plugin in your own projects!
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
### Development Setup
1. Clone the repository
2. Install dependencies (nvim-tree, telescope)
3. Configure the plugin in your Neovim setup
4. Test with the provided commands and keymaps
## 🐛 Troubleshooting
### Common Issues
1. **Module not found errors**: Ensure all dependencies are installed
2. **Tree not opening**: Make sure nvim-tree is properly configured
3. **Search not working**: Verify your idea directory path is correct
4. **Tags not showing**: Check that your idea directory exists and contains markdown files
### Getting Help
- Check the configuration examples above
- Ensure all dependencies are installed
- Verify your idea directory path is correct
- Test with the basic commands first
---
**Happy idea capturing! 🚀**