Neovim Integration
Integrate Buildable with Neovim through MCP for enhanced development workflow.
Prerequisites
- Neovim 0.8+ installed
- Node.js for MCP server
- Active Buildable account
Installation
1. Install MCP Plugin
Using your preferred plugin manager:
vim-plug
Plug 'buildable/neovim-mcp'
packer.nvim
use 'buildable/neovim-mcp'
lazy.nvim
{
'buildable/neovim-mcp',
config = function()
require('buildable').setup({
api_key = 'your-api-key',
project_id = 'your-project-id'
})
end
}
2. Configuration
Add to your init.lua
:
require('buildable').setup({
-- API Configuration
api_key = os.getenv('BUILDABLE_API_KEY'),
project_id = os.getenv('BUILDABLE_PROJECT_ID'),
-- MCP Server Configuration
mcp_server = {
command = 'npx',
args = { '@buildable/mcp-server' },
env = {
BUILDABLE_API_KEY = os.getenv('BUILDABLE_API_KEY'),
BUILDABLE_PROJECT_ID = os.getenv('BUILDABLE_PROJECT_ID')
}
},
-- UI Configuration
ui = {
enable_sidebar = true,
show_task_status = true,
auto_update = true
}
})
3. Environment Variables
Set in your shell configuration:
export BUILDABLE_API_KEY="your-api-key"
export BUILDABLE_PROJECT_ID="your-project-id"
Features
Task Management
- View tasks in a dedicated sidebar
- Update task status with commands
- Filter tasks by status, priority, or assignee
- Quick task creation from selection
Code Integration
- AI-powered code suggestions based on active tasks
- Contextual help for current development work
- Automatic code generation for common patterns
Real-time Sync
- Live updates from Buildable dashboard
- Automatic status synchronization
- Push notifications for task changes
Commands
Task Commands
:BuildableTaskList
- Show all tasks:BuildableTaskShow <id>
- Show specific task details:BuildableTaskComplete <id>
- Mark task as complete:BuildableTaskCreate
- Create new task from selection
AI Commands
:BuildableAskAI <prompt>
- Ask AI about current context:BuildableCodeSuggest
- Get code suggestions for current task:BuildableRefactor
- AI-powered refactoring suggestions
Sync Commands
:BuildableSync
- Manual sync with Buildable:BuildableStatus
- Show connection status:BuildableReconnect
- Reconnect to MCP server
Key Mappings
Default key mappings (customize in your config):
-- Task management
vim.keymap.set('n', '<leader>bt', ':BuildableTaskList<CR>')
vim.keymap.set('n', '<leader>bc', ':BuildableTaskComplete<CR>')
vim.keymap.set('n', '<leader>bn', ':BuildableTaskCreate<CR>')
-- AI assistance
vim.keymap.set('n', '<leader>ba', ':BuildableAskAI<CR>')
vim.keymap.set('v', '<leader>bs', ':BuildableCodeSuggest<CR>')
vim.keymap.set('n', '<leader>br', ':BuildableRefactor<CR>')
-- Sync
vim.keymap.set('n', '<leader>by', ':BuildableSync<CR>')
UI Components
Task Sidebar
Shows your current tasks with:
- Task title and description
- Current status and priority
- Assigned user
- Due dates and estimates
Status Line Integration
Add to your status line:
require('lualine').setup({
sections = {
lualine_x = {
function()
return require('buildable').get_current_task()
end
}
}
})
Floating Windows
- Task details in floating windows
- Code suggestions overlay
- Progress indicators
Advanced Configuration
Custom Task Filters
require('buildable').setup({
task_filters = {
my_tasks = function(task)
return task.assigned_to == 'me' and task.status ~= 'completed'
end,
urgent = function(task)
return task.priority == 'high' or task.due_date < os.time() + 86400
end
}
})
AI Model Configuration
require('buildable').setup({
ai = {
model = 'gpt-4',
temperature = 0.3,
max_tokens = 1000,
context_window = 4000
}
})
Integration with Other Plugins
Telescope Integration
require('telescope').load_extension('buildable')
vim.keymap.set('n', '<leader>ft', ':Telescope buildable tasks<CR>')
vim.keymap.set('n', '<leader>fp', ':Telescope buildable projects<CR>')
nvim-tree Integration
require('nvim-tree').setup({
renderer = {
icons = {
show = {
git = true,
buildable = true -- Show task indicators
}
}
}
})
Troubleshooting
Plugin Not Loading
Check that your plugin manager properly installed the plugin:
:checkhealth buildable
MCP Connection Issues
Verify the MCP server is accessible:
:lua print(require('buildable').check_mcp_connection())
API Authentication
Test your API credentials:
:lua print(require('buildable').test_auth())
Performance Issues
- Reduce sync frequency in configuration
- Disable auto-update for large projects
- Use filtered task views
Best Practices
- Use environment variables for sensitive configuration
- Set up key mappings for frequently used commands
- Configure filters to focus on relevant tasks
- Enable auto-sync for real-time updates
- Customize UI to match your workflow
Community
- Share configurations in our GitHub discussions
- Contribute to the plugin repository
- Join our Discord for Neovim-specific support
- Report bugs and feature requests
Contributing
The Neovim plugin is open source:
- Fork the repository
- Create feature branches
- Submit pull requests
- Add tests for new features
Getting Help
- Check
:help buildable
for built-in documentation - Review plugin configuration examples
- Join our Discord #neovim channel
- Contact support for integration issues