A Neovim plugin that enhances the smoothsafe document processing workflow by providing fuzzy-finding and validation assistance when editing smoothsafe templates.
- Tag Picker: Fuzzy search and multi-select tags using Telescope
- Smart Insertion: Automatically appends to existing tags and deduplicates
- Non-intrusive: Only activates when smoothsafe context is detected
- Zero Config: Works out of the box with sensible defaults
- Neovim 0.9+
- telescope.nvim
{
'smoothsafe/smoothsafe.nvim',
dependencies = { 'nvim-telescope/telescope.nvim' },
config = function()
require('smoothsafe').setup()
end
}use {
'smoothsafe/smoothsafe.nvim',
requires = { 'nvim-telescope/telescope.nvim' },
config = function()
require('smoothsafe').setup()
end
}- When you run
smoothsafe process /path/to/life, smoothsafe opens Neovim with a template - Smoothsafe passes available tags via
vim.g.smoothsafe_tags - The plugin automatically activates (command and keybinding become available)
- On a
tags:line, press<leader>tor run:SmoothsafeInsertTags - Use Telescope to fuzzy search and select tags:
- Type to search
<Tab>to multi-select<Enter>to confirm
- Selected tags are inserted on the current line
| Mode | Key | Action |
|---|---|---|
| Normal | <leader>t |
Open tag picker |
| Command | Description |
|---|---|
:SmoothsafeInsertTags |
Open tag picker for current line |
The plugin works without configuration, but you can customize it:
require('smoothsafe').setup({
mappings = {
insert_tags = '<leader>t', -- Change keybinding (set to false to disable)
},
})Smoothsafe opens Neovim with tags passed as a global variable:
nvim -c "lua vim.g.smoothsafe_tags = {'work', 'personal', 'finance', 'health'}" template.txtThe plugin reads from vim.g.smoothsafe_tags and remains inactive if this variable is not set.
MIT