116 lines
2.1 KiB
Markdown
116 lines
2.1 KiB
Markdown
# nvim-flutter-companion
|
|
|
|
Enhances existing Flutter tools by storing selected device and emulator in local project configuration file (`.flutter-companion`).
|
|
|
|
- Requires `coc-flutter/coc-flutter-tools` if using CoC.
|
|
- Requires `flutter-tools.nvim` if using native LSP.
|
|
|
|
### Global functions
|
|
|
|
```lua
|
|
_G.Flutter_Companion_Clear_Selected_Device = function()
|
|
M.flutter_clear(false)
|
|
end
|
|
|
|
_G.Flutter_Companion_Run_Selected_Device = function()
|
|
M.flutter_run(false)
|
|
end
|
|
|
|
_G.Flutter_Companion_Select_Device = function()
|
|
M.flutter_list(false)
|
|
end
|
|
|
|
_G.Flutter_Companion_Clear_Selected_Emulator = function()
|
|
M.flutter_clear(true)
|
|
end
|
|
|
|
_G.Flutter_Companion_Run_Selected_Emulator = function()
|
|
M.flutter_run(true)
|
|
end
|
|
|
|
_G.Flutter_Companion_Select_Emulator = function()
|
|
M.flutter_list(true)
|
|
end
|
|
```
|
|
|
|
### Example
|
|
|
|
> Example utilizes my custom Neovim distribution `darcula`.
|
|
> This is not publicly available yet, but should be self-explanatory nonetheless :)
|
|
|
|
```lua
|
|
local M = {
|
|
disabled = false
|
|
}
|
|
|
|
M.keymaps = function() {
|
|
local km = require("darcula.utils.keymap")
|
|
local companion = require("nvim-flutter-companion")
|
|
local opts = {remap = false, silent = true}
|
|
|
|
km.nmap(
|
|
km.leader "fld",
|
|
function()
|
|
companion.flutter_list(false)
|
|
end,
|
|
opts
|
|
)
|
|
|
|
km.nmap(
|
|
km.leader "flv",
|
|
function()
|
|
companion.flutter_list(false)
|
|
end,
|
|
opts
|
|
)
|
|
|
|
km.nmap(
|
|
km.leader "fle",
|
|
function()
|
|
companion.flutter_list(true)
|
|
end,
|
|
opts
|
|
)
|
|
|
|
km.nmap(
|
|
km.leader "flm",
|
|
function()
|
|
companion.flutter_run(true)
|
|
end,
|
|
opts
|
|
)
|
|
|
|
km.nmap(
|
|
km.leader "flx",
|
|
function()
|
|
companion.flutter_run(false)
|
|
end,
|
|
opts
|
|
)
|
|
}
|
|
|
|
M.lua_add_library = function(library_list)
|
|
table.insert(library_list, "nvim-flutter-companion")
|
|
end
|
|
|
|
M.plug = function(Plug)
|
|
Plug "sgraves76/nvim-flutter-companion"
|
|
end
|
|
|
|
M.setup = function()
|
|
local plugins = require("nvim-goodies.plugins")
|
|
if not plugins.check_requires("nvim-flutter-companion") then
|
|
return
|
|
end
|
|
|
|
-- Native LSP
|
|
require("nvim-flutter-companion").setup({use_coc = true})
|
|
|
|
-- CoC
|
|
require("nvim-flutter-companion").setup({use_coc = false})
|
|
end
|
|
|
|
return M
|
|
```
|
|
|