Linear.app plugin for Neovim
This is still in early stages of development, however, some functionalities are working.
The following is a list of which functionalities are ready:
Click to show
- Create
- List
- Update
- Delete
- Create
- List
- Update
- Delete
- Create
- List
- Update
- Delete
- List
- Create
- List
- Update
- Delete
- Create
- List
- Update
- Delete
- Create
- List
- Update
- Delete
- List
Using packer.nvim
use {
"alma3lol/linear.nvim",
requires = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim"
}
}
You need a Linear API key (get it from here).
Once you obtained your key, you have two options to supply it to the plugin:
- Option one, using
api_key
in configuration:
-- configuration
{
api_key = "...",
...
}
- Option two, using
api_key_cmd
, which is a command that returns the key:
{
api_key_cmd = "gpg -d ...",
...
}
The plugin is fairly customizable with configuration. However, apart from api_key
or api_key_cmd
, no other configuration is required.
Default configuration:
{
api_key_cmd = nil,
api_key = nil,
magic_words = {
yank_register = "+",
prefix = "closes",
parenthesis = true,
},
icons = {
states = {
["Backlog"] = "📦",
["Todo"] = "📋",
["In Progress"] = "⏳",
["Done"] = "✅",
["Canceled"] = "⛔",
["Duplicate"] = "⛔",
}
},
filters = {
issues = {
states = {
["Backlog"] = true,
["Todo"] = true,
["In Progress"] = true,
["In Preview"] = true,
["Done"] = false,
["Canceled"] = false,
["Duplicate"] = false,
}
},
states = {
types = {
["backlog"] = true,
["unstarted"] = true,
["started"] = true,
["completed"] = true,
["canceled"] = true,
}
}
}
}
The plugin creates Linear ... ...
command which takes two arguments, the class and the operation.
For example:
Linear issues list
Linear projects create
Linear teams delete
Linear labels update
Along side managing all classes of Linear, the plugin provides some useful features including:
- Copying magic words to a register
- Post-commit check of issues' status and notify upon status change
Each picker has custom bindings to execute related actions.
The following is a list of defined bindings:
- Issues' list picker:
Ctrl+m
: generate & copy magic words with the selected issues
- Issues' list fitler:
Ctrl+r
: refresh issues list