Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1405 commits
Select commit Hold shift + click to select a range
211f97c
update
batoaqaa Apr 28, 2026
e60ead8
update
batoaqaa Apr 28, 2026
76cd1ed
update
batoaqaa Apr 28, 2026
356742b
update
batoaqaa Apr 28, 2026
74dee5c
update
batoaqaa Apr 28, 2026
0e41032
update
batoaqaa Apr 28, 2026
0f81dd1
update
batoaqaa Apr 28, 2026
91cedd4
update
batoaqaa Apr 28, 2026
ddce9df
update
batoaqaa Apr 28, 2026
1758299
update
batoaqaa Apr 28, 2026
80f2261
update
batoaqaa Apr 28, 2026
b37aa44
update
batoaqaa Apr 28, 2026
acdefb2
update
batoaqaa Apr 28, 2026
7b874da
update
batoaqaa Apr 28, 2026
b9753b1
update
batoaqaa Apr 28, 2026
4ce6e29
update
batoaqaa Apr 28, 2026
f1eb377
update
batoaqaa Apr 28, 2026
1390975
update
batoaqaa Apr 28, 2026
aa5988b
update
batoaqaa Apr 28, 2026
9b8882c
update
batoaqaa Apr 28, 2026
e2fa9ab
update
batoaqaa Apr 28, 2026
030e8e2
update
batoaqaa Apr 28, 2026
4cfb951
update
batoaqaa Apr 28, 2026
76102f9
update
batoaqaa Apr 28, 2026
7db1a5b
update
batoaqaa Apr 28, 2026
c49c54c
update
batoaqaa Apr 28, 2026
7b933cf
update
batoaqaa Apr 28, 2026
2eb9a73
update
batoaqaa Apr 28, 2026
6da3819
update
batoaqaa Apr 28, 2026
bd4c6d4
update
batoaqaa Apr 28, 2026
2731fad
update
batoaqaa Apr 28, 2026
ab678ee
update
batoaqaa Apr 29, 2026
b66491d
update
batoaqaa Apr 29, 2026
607be95
update
batoaqaa Apr 29, 2026
8a5b88e
update
batoaqaa Apr 29, 2026
08464dc
update
batoaqaa Apr 29, 2026
1d72325
update
batoaqaa Apr 29, 2026
a6da7fb
update
batoaqaa Apr 29, 2026
719697f
update
batoaqaa Apr 29, 2026
e1fc141
update
batoaqaa Apr 29, 2026
a310d12
update
batoaqaa Apr 29, 2026
cbff88a
update
batoaqaa Apr 29, 2026
a07b9bf
update
batoaqaa Apr 29, 2026
abd52ee
update
batoaqaa Apr 29, 2026
2b95964
update
batoaqaa Apr 29, 2026
ddc501e
update
batoaqaa Apr 29, 2026
f20dde6
update
batoaqaa Apr 29, 2026
a2d9e63
update
batoaqaa Apr 29, 2026
7e56f5f
update
batoaqaa Apr 29, 2026
7ce1b1d
update
batoaqaa Apr 29, 2026
7a8d5ec
update
batoaqaa Apr 29, 2026
decdda3
update
batoaqaa Apr 29, 2026
8b9f7bb
update
batoaqaa Apr 29, 2026
e5186a8
update
batoaqaa Apr 29, 2026
62f08a2
update
batoaqaa Apr 29, 2026
bb2143a
update
batoaqaa Apr 29, 2026
8ef9632
update
batoaqaa Apr 29, 2026
9b14a15
update
batoaqaa Apr 29, 2026
99f130c
update
batoaqaa Apr 29, 2026
0b231d1
update
batoaqaa Apr 29, 2026
ed7eec8
update
batoaqaa Apr 29, 2026
5a859c3
update
batoaqaa Apr 29, 2026
532641b
update
batoaqaa Apr 29, 2026
37dd1cd
update
batoaqaa Apr 29, 2026
542f639
update
batoaqaa Apr 29, 2026
79cdb96
update
batoaqaa Apr 29, 2026
965c8ff
update
batoaqaa Apr 29, 2026
5a4f909
update
batoaqaa Apr 29, 2026
318d634
update
batoaqaa Apr 29, 2026
43fb20d
update
batoaqaa Apr 29, 2026
bfbdfe0
update
batoaqaa Apr 29, 2026
7d20f6b
update
batoaqaa Apr 29, 2026
1aee9bd
update
batoaqaa Apr 29, 2026
6d2e50c
update
batoaqaa Apr 29, 2026
f17ea1f
update
batoaqaa Apr 29, 2026
0ccf02c
update
batoaqaa Apr 29, 2026
98dfe4d
update
batoaqaa Apr 29, 2026
4ec7e2d
update
batoaqaa Apr 29, 2026
9e8b1b1
update
batoaqaa Apr 29, 2026
74d005e
update
batoaqaa Apr 29, 2026
2b4f77a
update
batoaqaa Apr 29, 2026
5538939
update
batoaqaa Apr 29, 2026
3345b9e
update
batoaqaa Apr 29, 2026
b7ccc04
update
batoaqaa Apr 29, 2026
28fd8cd
update
batoaqaa Apr 29, 2026
04ec928
update
batoaqaa Apr 29, 2026
16494e8
update
batoaqaa Apr 30, 2026
e8fd6f9
update
batoaqaa Apr 30, 2026
3cdb06f
update
batoaqaa Apr 30, 2026
f23aa37
update
batoaqaa Apr 30, 2026
3d86208
update
batoaqaa Apr 30, 2026
5a3a997
update
batoaqaa Apr 30, 2026
0e2caaa
update
batoaqaa Apr 30, 2026
fd59bfc
update
batoaqaa Apr 30, 2026
a588088
update
batoaqaa Apr 30, 2026
479a09a
update
batoaqaa Apr 30, 2026
f0d0103
update
batoaqaa Apr 30, 2026
a7ad3b9
update
batoaqaa Apr 30, 2026
8870d3e
update
batoaqaa Apr 30, 2026
602f280
update
batoaqaa Apr 30, 2026
fa02a31
update
batoaqaa Apr 30, 2026
11d2ef8
update
batoaqaa Apr 30, 2026
87e482c
update
batoaqaa Apr 30, 2026
2b9891e
update
batoaqaa Apr 30, 2026
cc8779b
update
batoaqaa Apr 30, 2026
3812f90
update
batoaqaa Apr 30, 2026
07ac077
update
batoaqaa Apr 30, 2026
08524a0
update
batoaqaa Apr 30, 2026
4aec6de
update
batoaqaa Apr 30, 2026
092bd15
update
batoaqaa Apr 30, 2026
ddf56b1
update
batoaqaa Apr 30, 2026
7ad8d91
update
batoaqaa Apr 30, 2026
52c6c6d
update
batoaqaa Apr 30, 2026
d3a3197
update
batoaqaa Apr 30, 2026
1a22a6a
update
batoaqaa Apr 30, 2026
ee6ecf6
update
batoaqaa Apr 30, 2026
bef94d0
update
batoaqaa Apr 30, 2026
62c5991
update
batoaqaa Apr 30, 2026
edde844
update
batoaqaa Apr 30, 2026
feb429f
update
batoaqaa Apr 30, 2026
e4ee0b5
update
batoaqaa Apr 30, 2026
70ee814
update
batoaqaa Apr 30, 2026
420b4f7
update
batoaqaa May 1, 2026
99a3719
update
batoaqaa May 1, 2026
8bb749f
update
batoaqaa May 1, 2026
b1fbb30
update
batoaqaa May 1, 2026
a903be9
update
batoaqaa May 1, 2026
f5fda16
update
batoaqaa May 1, 2026
ed8e1ef
update
batoaqaa May 1, 2026
89f6e1f
update
batoaqaa May 1, 2026
352b57c
update
batoaqaa May 1, 2026
eba3266
update
batoaqaa May 1, 2026
e73e495
update
batoaqaa May 1, 2026
3000fa4
update
batoaqaa May 1, 2026
3d3e3b4
update
batoaqaa May 1, 2026
d296e83
update
batoaqaa May 1, 2026
f745b1f
update
batoaqaa May 1, 2026
b63ef15
update
batoaqaa May 1, 2026
03c6d79
update
batoaqaa May 1, 2026
0375c45
update
batoaqaa May 1, 2026
e1ed1cf
update
batoaqaa May 1, 2026
e7c0b6b
update
batoaqaa May 1, 2026
36999e2
update
batoaqaa May 1, 2026
cc55b61
update
batoaqaa May 1, 2026
064c624
update
batoaqaa May 1, 2026
f455e5d
update
batoaqaa May 1, 2026
5bca3ee
update
batoaqaa May 1, 2026
54ac480
update
batoaqaa May 1, 2026
4244140
update
batoaqaa May 1, 2026
5e305cd
update
batoaqaa May 1, 2026
5693b3c
update
batoaqaa May 1, 2026
dc4cf67
update
batoaqaa May 1, 2026
c2448b6
update
batoaqaa May 1, 2026
de123a7
update
batoaqaa May 1, 2026
3bc63ee
update
batoaqaa May 1, 2026
c0b59ad
update
batoaqaa May 1, 2026
0844a27
update
batoaqaa May 1, 2026
f3524e1
update
batoaqaa May 1, 2026
52fab79
update
batoaqaa May 1, 2026
9ebca94
update
batoaqaa May 1, 2026
227acf6
update
batoaqaa May 1, 2026
8b8e923
update
batoaqaa May 1, 2026
6ba58b9
update
batoaqaa May 1, 2026
6937610
update
batoaqaa May 1, 2026
e6d3289
update
batoaqaa May 1, 2026
af86f3e
update
batoaqaa May 1, 2026
ef62e69
update
batoaqaa May 1, 2026
a7941fa
update
batoaqaa May 1, 2026
cb12158
update
batoaqaa May 1, 2026
3bf7626
update
batoaqaa May 1, 2026
eb42c65
update
batoaqaa May 1, 2026
da6732d
update
batoaqaa May 1, 2026
fef48d1
update
batoaqaa May 1, 2026
8e8f1fc
update
batoaqaa May 1, 2026
60c507f
update
batoaqaa May 1, 2026
93781ab
update
batoaqaa May 1, 2026
1d0544a
update
batoaqaa May 1, 2026
5fe62fa
update
batoaqaa May 1, 2026
0a77466
update
batoaqaa May 1, 2026
d86b903
update
batoaqaa May 1, 2026
1b0f72b
update
batoaqaa May 1, 2026
7a7180a
update
batoaqaa May 1, 2026
75fd3ea
update
batoaqaa May 1, 2026
93b7b08
update
batoaqaa May 1, 2026
ca08770
update
batoaqaa May 1, 2026
240decc
update
batoaqaa May 1, 2026
d0684fc
update
batoaqaa May 1, 2026
60f3577
update
batoaqaa May 1, 2026
dcc1cbc
update
batoaqaa May 1, 2026
c1203df
update
batoaqaa May 1, 2026
1d3a0b9
update
batoaqaa May 1, 2026
b10209a
update
batoaqaa May 1, 2026
6a81f8f
update
batoaqaa May 2, 2026
5876a04
update
batoaqaa May 2, 2026
a702420
update
batoaqaa May 2, 2026
a2c57db
update
batoaqaa May 2, 2026
92c6948
update
batoaqaa May 2, 2026
14023db
update
batoaqaa May 2, 2026
5dfa3cc
update
batoaqaa May 2, 2026
9685c25
update
batoaqaa May 2, 2026
5ee7397
update
batoaqaa May 2, 2026
95755b5
update
batoaqaa May 2, 2026
873b64d
update
batoaqaa May 2, 2026
0587747
update
batoaqaa May 2, 2026
442695c
update
batoaqaa May 2, 2026
e34cd71
update
batoaqaa May 2, 2026
091282b
update
batoaqaa May 2, 2026
0da4f6a
update
batoaqaa May 2, 2026
54a652f
update
batoaqaa May 2, 2026
77db178
update
batoaqaa May 2, 2026
d6dc2ae
update
batoaqaa May 2, 2026
6efe250
update
batoaqaa May 2, 2026
23a899b
update
batoaqaa May 2, 2026
af1474a
update
batoaqaa May 2, 2026
f4a7115
update
batoaqaa May 2, 2026
c3441bc
update
batoaqaa May 2, 2026
715cdfe
update
batoaqaa May 2, 2026
74b9225
update
batoaqaa May 2, 2026
60f67c5
update
batoaqaa May 2, 2026
3465edd
update
batoaqaa May 2, 2026
2096436
update
batoaqaa May 2, 2026
224c0c5
update
batoaqaa May 2, 2026
95a97cb
update
batoaqaa May 2, 2026
c4644b6
update
batoaqaa May 2, 2026
0c97320
update
batoaqaa May 2, 2026
83eb93a
update
batoaqaa May 2, 2026
37fa916
update
batoaqaa May 2, 2026
f5082d8
update
batoaqaa May 2, 2026
a16ba88
update
batoaqaa May 2, 2026
1d3a850
update
batoaqaa May 2, 2026
6f3b006
update
batoaqaa May 2, 2026
68bef6b
update
batoaqaa May 2, 2026
e9764b5
update
batoaqaa May 2, 2026
c81c82f
update
batoaqaa May 2, 2026
76b7c03
update
batoaqaa May 2, 2026
f702879
update
batoaqaa May 2, 2026
83ae855
update
batoaqaa May 2, 2026
1072350
update
batoaqaa May 2, 2026
abebdaf
update
batoaqaa May 2, 2026
ac8579b
update
batoaqaa May 2, 2026
a9ace64
update
batoaqaa May 2, 2026
f471940
update
batoaqaa May 2, 2026
efa7dc2
update
batoaqaa May 2, 2026
3ccf9bd
update
batoaqaa May 2, 2026
40e0510
update
batoaqaa May 2, 2026
95bb17c
update
batoaqaa May 2, 2026
765cf88
update
batoaqaa May 2, 2026
60a4979
update
batoaqaa May 2, 2026
6be0fdf
update
batoaqaa May 2, 2026
3955695
update
batoaqaa May 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .luarc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"workspace": {
"library": ["$VIMRUNTIME/lua", "${3rd}/luv/library", "./lua"],
"checkThirdParty": false
},
"diagnostics": {
"globals": ["vim"]
}
}
196 changes: 107 additions & 89 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,121 +7,138 @@

### Demo



https://github.com/user-attachments/assets/fdbb6655-4b2d-4a2b-81d1-fd8af6e7d9f1



<br>

Try the plugin with this minimal standalone config without modifying your existing nvim setup. **This is especially useful if you're encountering errors during installation or usage**.

```sh
wget https://raw.githubusercontent.com/anurag3301/nvim-platformio.lua/main/minimal_config.lua
nvim -u minimal_config.lua
wget https://raw.githubusercontent.com/batoaqaa/nvim-platformio.lua/refs/heads/main/mini_nvimPlatformio.lua
nvim -u mini_nvimPlatformio.lua

# Now run :Pioinit
```

## Installation

#### PlatformIO Core
Follow the installation instructions in the [PlatformIO documentation](https://docs.platformio.org/en/latest/core/installation/index.html).

Follow the installation instructions in the [PlatformIO documentation](https://docs.platformio.org/en/latest/core/installation/index.html).

#### Plugin

Install the plugin using lazy

```lua
return {
'anurag3301/nvim-platformio.lua',
'batoaqaa/nvim-platformio.lua',
-- cmd = { 'Pioinit', 'Piorun', 'Piocmdh', 'Piocmdf', 'Piolib', 'Piomon', 'Piodebug', 'Piodb' },

-- optional: cond used to enable/disable platformio
-- based on existance of platformio.ini file and .pio folder in cwd.
-- You can enable platformio plugin, using :Pioinit command
cond = function()
-- local platformioRootDir = vim.fs.root(vim.fn.getcwd(), { 'platformio.ini' }) -- cwd and parents
local platformioRootDir = (vim.fn.filereadable('platformio.ini') == 1) and vim.fn.getcwd() or nil
if platformioRootDir then
-- if platformio.ini file exist in cwd, enable plugin to install plugin (if not istalled) and load it.
vim.g.platformioRootDir = platformioRootDir
elseif (vim.uv or vim.loop).fs_stat(vim.fn.stdpath('data') .. '/lazy/nvim-platformio.lua') == nil then
-- if nvim-platformio not installed, enable plugin to install it first time
vim.g.platformioRootDir = vim.fn.getcwd()
else -- if nvim-platformio.lua installed but disabled, create Pioinit command
vim.api.nvim_create_user_command('Pioinit', function() --available only if no platformio.ini and .pio in cwd
vim.api.nvim_create_autocmd('User', {
pattern = { 'LazyRestore', 'LazyLoad' },
once = true,
callback = function(args)
if args.match == 'LazyRestore' then
require('lazy').load({ plugins = { 'nvim-platformio.lua' } })
elseif args.match == 'LazyLoad' then
vim.notify('PlatformIO loaded', vim.log.levels.INFO, { title = 'PlatformIO' })
require("platformio").setup(vim.g.pioConfig)
vim.cmd('Pioinit')
end
end,
})
-- You can enable platformio plugin, using :Pioinit command
cond = function()
-- local platformioRootDir = vim.fs.root(vim.fn.getcwd(), { 'platformio.ini' }) -- cwd and parents
local platformioRootDir = (vim.fn.filereadable('platformio.ini') == 1) and vim.fn.getcwd() or nil
if platformioRootDir and vim.fs.find('.pio', { path = platformioRootDir, type = 'directory' })[1] then
-- if platformio.ini file and .pio folder exist in cwd, enable plugin to install plugin (if not istalled) and load it.
vim.g.platformioRootDir = platformioRootDir
elseif (vim.uv or vim.loop).fs_stat(vim.fn.stdpath('data') .. '/lazy/nvim-platformio.lua') == nil then
-- if nvim-platformio not installed, enable plugin to install it first time
vim.g.platformioRootDir = vim.fn.getcwd()
require('lazy').restore({ plguins = { 'nvim-platformio.lua' }, show = false })
end, {})
end
return vim.g.platformioRootDir ~= nil
end,

-- Dependencies are lazy-loaded by default unless specified otherwise.
dependencies = {
{ 'akinsho/toggleterm.nvim' },
{ 'nvim-telescope/telescope.nvim' },
{ 'nvim-telescope/telescope-ui-select.nvim' },
{ 'nvim-lua/plenary.nvim' },
{ 'folke/which-key.nvim' },
{ 'nvim-treesitter/nvim-treesitter' }
},
else -- if nvim-platformio.lua installed but disabled, create Pioinit command
vim.api.nvim_create_user_command('Pioinit', function() --available only if no platformio.ini and .pio in cwd
vim.api.nvim_create_autocmd('User', {
pattern = { 'LazyRestore', 'LazyLoad' },
once = true,
callback = function(args)
if args.match == 'LazyRestore' then
require('lazy').load({ plugins = { 'nvim-platformio.lua' } })
elseif args.match == 'LazyLoad' then
vim.notify('PlatformIO loaded', vim.log.levels.INFO, { title = 'PlatformIO' })
vim.cmd('Pioinit')
end
end,
})
vim.g.platformioRootDir = vim.fn.getcwd()
require('lazy').restore({ plguins = { 'nvim-platformio.lua' }, show = false })
end, {})
end
return vim.g.platformioRootDir ~= nil
end,

dependencies = {
{ 'akinsho/toggleterm.nvim' },
{ 'nvim-telescope/telescope.nvim' },
{ 'nvim-telescope/telescope-ui-select.nvim' },
{ 'nvim-lua/plenary.nvim' },
{ 'folke/which-key.nvim' },
{
'mason-org/mason-lspconfig.nvim',
dependencies = {
{ 'mason-org/mason.nvim' },
{ 'folke/trouble.nvim' },
{ 'j-hui/fidget.nvim' }, -- status bottom right
},
},
},
}

```

#### Usage `:h PlatformIO`

### Configuration

```lua
vim.g.pioConfig ={
lsp = 'clangd', -- value: clangd | ccls
menu_key = '<leader>\\', -- replace this menu key to your convenience
debug = false -- enable debug messages
clangd_source = 'ccls' -- value: ccls | compiledb, For detailed explation check :help platformio-clangd_source
}
local pok, platformio = pcall(require, 'platformio')
if pok then platformio.setup(vim.g.pioConfig) end
vim.g.pioConfig ={
lspClangd = {
enabled = true,
attach = {
enabled = true,
keymaps = true,
},
},
menu_key = '<leader>\\', -- replace this menu key to your convenience
menu_name = 'PlatformIO', -- replace this menu name to your convenience
}
local pok, platformio = pcall(require, 'platformio')
if pok then platformio.setup(vim.g.pioConfig) end
```

### Keybinds

These are the default keybindings, which you can override in your configuration.

```lua
local pok, platformio = pcall(require, 'platformio')
if pok then
platformio.setup({
lsp = 'ccls', --default: ccls, other option: clangd
-- If you pick clangd, it also creates compile_commands.json

-- Uncomment out following line to enable platformio menu.
-- menu_key = '<leader>\\', -- replace this menu key to your convenience
lspClangd = {
enabled = false,
attach = {
enabled = false,
keymaps = false,
},
},
menu_key = '<leader>\\', -- replace this menu key to your convenience
menu_name = 'PlatformIO', -- replace this menu name to your convenience
debug = false,

-- Following are the default keybindings, you can overwrite them in the config
menu_bindings = {
{ node = 'item', desc = '[L]ist terminals', shortcut = 'l', command = 'PioTermList' },
{ node = 'item', desc = '[L]ist terminals', shortcut = 'l', command = 'PioTermList' },
{ node = 'item', desc = '[T]erminal Core CLI', shortcut = 't', command = 'Piocmdf' },
{
node = 'menu',
desc = '[G]eneral',
shortcut = 'g',
items = {
{ node = 'item', desc = '[B]uild', shortcut = 'b', command = 'Piocmdf run' },
{ node = 'item', desc = '[U]pload', shortcut = 'u', command = 'Piocmdf run -t upload' },
{ node = 'item', desc = '[M]onitor', shortcut = 'm', command = 'Piocmdh run -t monitor' },
{ node = 'item', desc = '[C]lean', shortcut = 'c', command = 'Piocmdf run -t clean' },
{ node = 'item', desc = '[F]ull clean', shortcut = 'f', command = 'Piocmdf run -t fullclean' },
{ node = 'item', desc = '[B]uild', shortcut = 'b', command = 'Piocmdf run' },
{ node = 'item', desc = '[U]pload', shortcut = 'u', command = 'Piocmdf run -t upload' },
{ node = 'item', desc = '[M]onitor', shortcut = 'm', command = 'Piocmdh run -t monitor' },
{ node = 'item', desc = '[C]lean', shortcut = 'c', command = 'Piocmdf run -t clean' },
{ node = 'item', desc = '[F]ull clean', shortcut = 'f', command = 'Piocmdf run -t fullclean' },
{ node = 'item', desc = '[D]evice list', shortcut = 'd', command = 'Piocmdf device list' },
},
},
Expand All @@ -130,52 +147,52 @@ These are the default keybindings, which you can override in your configuration.
desc = '[P]latform',
shortcut = 'p',
items = {
{ node = 'item', desc = '[B]uild file system', shortcut = 'b', command = 'Piocmdf run -t buildfs' },
{ node = 'item', desc = 'Program [S]ize', shortcut = 's', command = 'Piocmdf run -t size' },
{ node = 'item', desc = '[B]uild file system', shortcut = 'b', command = 'Piocmdf run -t buildfs' },
{ node = 'item', desc = 'Program [S]ize', shortcut = 's', command = 'Piocmdf run -t size' },
{ node = 'item', desc = '[U]pload file system', shortcut = 'u', command = 'Piocmdf run -t uploadfs' },
{ node = 'item', desc = '[E]rase Flash', shortcut = 'e', command = 'Piocmdf run -t erase' },
{ node = 'item', desc = '[E]rase Flash', shortcut = 'e', command = 'Piocmdf run -t erase' },
},
},
{
node = 'menu',
desc = '[D]ependencies',
shortcut = 'd',
items = {
{ node = 'item', desc = '[L]ist packages', shortcut = 'l', command = 'Piocmdf pkg list' },
{ node = 'item', desc = '[L]ist packages', shortcut = 'l', command = 'Piocmdf pkg list' },
{ node = 'item', desc = '[O]utdated packages', shortcut = 'o', command = 'Piocmdf pkg outdated' },
{ node = 'item', desc = '[U]pdate packages', shortcut = 'u', command = 'Piocmdf pkg update' },
{ node = 'item', desc = '[U]pdate packages', shortcut = 'u', command = 'Piocmdf pkg update' },
},
},
{
node = 'menu',
desc = '[A]dvanced',
shortcut = 'a',
items = {
{ node = 'item', desc = '[T]est', shortcut = 't', command = 'Piocmdf test' },
{ node = 'item', desc = '[C]heck', shortcut = 'c', command = 'Piocmdf check' },
{ node = 'item', desc = '[D]ebug', shortcut = 'd', command = 'Piocmdf debug' },
{ node = 'item', desc = '[T]est', shortcut = 't', command = 'Piocmdf test' },
{ node = 'item', desc = '[C]heck', shortcut = 'c', command = 'Piocmdf check' },
{ node = 'item', desc = '[D]ebug', shortcut = 'd', command = 'Piocmdf debug' },
{ node = 'item', desc = 'Compilation Data[b]ase', shortcut = 'b', command = 'Piocmdf run -t compiledb' },
{
node = 'menu',
desc = '[V]erbose',
shortcut = 'v',
items = {
{ node = 'item', desc = 'Verbose [B]uild', shortcut = 'b', command = 'Piocmdf run -v' },
{ node = 'item', desc = 'Verbose [U]pload', shortcut = 'u', command = 'Piocmdf run -v -t upload' },
{ node = 'item', desc = 'Verbose [T]est', shortcut = 't', command = 'Piocmdf test -v' },
{ node = 'item', desc = 'Verbose [C]heck', shortcut = 'c', command = 'Piocmdf check -v' },
{ node = 'item', desc = 'Verbose [D]ebug', shortcut = 'd', command = 'Piocmdf debug -v' },
},
node = 'menu',
desc = '[V]erbose',
shortcut = 'v',
items = {
{ node = 'item', desc = 'Verbose [B]uild', shortcut = 'b', command = 'Piocmdf run -v' },
{ node = 'item', desc = 'Verbose [U]pload', shortcut = 'u', command = 'Piocmdf run -v -t upload' },
{ node = 'item', desc = 'Verbose [T]est', shortcut = 't', command = 'Piocmdf test -v' },
{ node = 'item', desc = 'Verbose [C]heck', shortcut = 'c', command = 'Piocmdf check -v' },
{ node = 'item', desc = 'Verbose [D]ebug', shortcut = 'd', command = 'Piocmdf debug -v' },
},
},
},
},
{
node = 'menu',
desc = '[R]emote',
shortcut = 'r',
items = {
{ node = 'item', desc = 'Remote [U]pload', shortcut = 'u', command = 'Piocmdf remote run -t upload' },
{ node = 'item', desc = 'Remote [T]est', shortcut = 't', command = 'Piocmdf remote test' },
{ node = 'item', desc = 'Remote [U]pload', shortcut = 'u', command = 'Piocmdf remote run -t upload' },
{ node = 'item', desc = 'Remote [T]est', shortcut = 't', command = 'Piocmdf remote test' },
{ node = 'item', desc = 'Remote [M]onitor', shortcut = 'm', command = 'Piocmdh remote run -t monitor' },
{ node = 'item', desc = 'Remote [D]evices', shortcut = 'd', command = 'Piocmdf remote device list' },
},
Expand All @@ -189,6 +206,7 @@ These are the default keybindings, which you can override in your configuration.
},
},
},

})
end
```
Expand All @@ -201,6 +219,6 @@ It's possible to lazy load the plugin using Lazy.nvim, this will load the plugin
cmd = { 'Pioinit', 'Piorun', 'Piocmdh', 'Piocmdf', 'Piolib', 'Piomon', 'Piodebug', 'Piodb' },
```


### TODO

- Connect Piodebug with DAP
Loading