add flutter
This commit is contained in:
parent
dabce46993
commit
d8de28d6c7
18
init.lua
18
init.lua
|
|
@ -480,11 +480,24 @@ require('lazy').setup({
|
||||||
},
|
},
|
||||||
|
|
||||||
-- LSP Plugins
|
-- LSP Plugins
|
||||||
|
{
|
||||||
|
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
|
||||||
|
-- used for completion, annotations and signatures of Neovim apis
|
||||||
|
'folke/lazydev.nvim',
|
||||||
|
ft = 'lua',
|
||||||
|
opts = {
|
||||||
|
library = {
|
||||||
|
-- Load luvit types when the `vim.uv` word is found
|
||||||
|
{ path = '${3rd}/luv/library', words = { 'vim%.uv' } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
-- Main LSP Configuration
|
-- Main LSP Configuration
|
||||||
'neovim/nvim-lspconfig',
|
'neovim/nvim-lspconfig',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
-- Automatically install LSPs and related tools to stdpath for Neovim
|
-- Autiomatically install LSPs and related tools to stdpath for Neovim
|
||||||
-- Mason must be loaded before its dependents so we need to set it up here.
|
-- Mason must be loaded before its dependents so we need to set it up here.
|
||||||
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
|
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
|
||||||
{
|
{
|
||||||
|
|
@ -819,7 +832,7 @@ require('lazy').setup({
|
||||||
-- Load the colorscheme here.
|
-- Load the colorscheme here.
|
||||||
-- Like many other themes, this one has different styles, and you could load
|
-- Like many other themes, this one has different styles, and you could load
|
||||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
||||||
vim.cmd.colorscheme 'tokyonight-night'
|
vim.cmd.colorscheme 'tokyonight-moon'
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -918,6 +931,7 @@ require('lazy').setup({
|
||||||
-- require 'kickstart.plugins.autopairs',
|
-- require 'kickstart.plugins.autopairs',
|
||||||
-- require 'kickstart.plugins.neo-tree',
|
-- require 'kickstart.plugins.neo-tree',
|
||||||
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||||
|
require 'kickstart.plugins.flutter_pancake',
|
||||||
|
|
||||||
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
||||||
-- This is the easiest way to modularize your config.
|
-- This is the easiest way to modularize your config.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
'akinsho/flutter-tools.nvim',
|
||||||
|
lazy = false,
|
||||||
|
dependencies = {
|
||||||
|
'nvim-lua/plenary.nvim',
|
||||||
|
'stevearc/dressing.nvim',
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
dev_log = {
|
||||||
|
enabled = true,
|
||||||
|
open_cmd = '50vnew',
|
||||||
|
focus_on_open = false,
|
||||||
|
},
|
||||||
|
flutter_lookup_cmd = 'mise where flutter',
|
||||||
|
decorations = {
|
||||||
|
statusline = {
|
||||||
|
-- set to true to be able use the 'flutter_tools_decorations.app_version' in your statusline
|
||||||
|
-- this will show the current version of the flutter app from the pubspec.yaml file
|
||||||
|
app_version = true,
|
||||||
|
-- set to true to be able use the 'flutter_tools_decorations.device' in your statusline
|
||||||
|
-- this will show the currently running device if an application was started with a specific
|
||||||
|
-- device
|
||||||
|
device = true,
|
||||||
|
-- set to true to be able use the 'flutter_tools_decorations.project_config' in your statusline
|
||||||
|
-- this will show the currently selected project configuration
|
||||||
|
project_config = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lsp = {
|
||||||
|
color = { -- show the derived colours for dart variables
|
||||||
|
enabled = true, -- whether or not to highlight color variables at all, only supported on flutter >= 2.10
|
||||||
|
background = false, -- highlight the background
|
||||||
|
background_color = nil, -- required, when background is transparent (i.e. background_color = { r = 19, g = 17, b = 24},)
|
||||||
|
foreground = false, -- highlight the foreground
|
||||||
|
virtual_text = true, -- show the highlight using virtual text
|
||||||
|
virtual_text_str = '■', -- the virtual text character to highlight
|
||||||
|
},
|
||||||
|
settings = {
|
||||||
|
-- lineLength = 120, -- max line length that the LSP will report when formatting
|
||||||
|
showTodos = true,
|
||||||
|
completeFunctionCalls = true,
|
||||||
|
renameFilesWithClasses = 'prompt', -- "always"
|
||||||
|
enableSnippets = true,
|
||||||
|
updateImportsOnRename = true, -- Whether to update imports and other directives when files are renamed. Required for `FlutterRename` command.
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
root_patterns = { 'mise.toml' },
|
||||||
|
config = function(_, opts)
|
||||||
|
require('flutter-tools').setup(opts)
|
||||||
|
|
||||||
|
local extensions = require('telescope').extensions
|
||||||
|
vim.keymap.set('n', '<leader>fl', extensions.flutter.commands, { desc = '[F]lutter commands' })
|
||||||
|
vim.keymap.set(
|
||||||
|
'n',
|
||||||
|
'<leader>fd',
|
||||||
|
'<Cmd>FlutterRun -d macos --flavor dev --dart-define=FLAVOR=dev<CR>',
|
||||||
|
{ desc = '[F]lutter Run [D]ev Flavor for Desktop' }
|
||||||
|
)
|
||||||
|
vim.keymap.set('n', '<leader>fr', '<Cmd>FlutterRun --flavor dev --dart-define=FLAVOR=dev<CR>', { desc = '[F]lutter Run [D]ev Flavor' })
|
||||||
|
vim.keymap.set(
|
||||||
|
'n',
|
||||||
|
'<leader>fw',
|
||||||
|
'<Cmd>FlutterRun -d chrome --web-experimental-hot-reload --web-browser-flag "--disable-web-security" --web-port 5000<CR>',
|
||||||
|
{ desc = '[F]lutter Run [W]eb' }
|
||||||
|
)
|
||||||
|
vim.keymap.set('n', '<leader>fv', extensions.flutter.fvm, { desc = '[F]lutter version manager' })
|
||||||
|
vim.keymap.set('n', '<leader>dl', function()
|
||||||
|
local buf = vim.fn.bufnr '__FLUTTER_DEV_LOG__'
|
||||||
|
if buf == -1 then
|
||||||
|
vim.notify('Flutter dev log buffer not found', vim.log.levels.WARN)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local lines = vim.api.nvim_buf_get_lines(buf, 0, -1, false)
|
||||||
|
local file = io.open('/tmp/dart_debug.log', 'w') -- "a" means append
|
||||||
|
if not file then
|
||||||
|
vim.notify('Failed to open file for writing', vim.log.levels.ERROR)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, line in ipairs(lines) do
|
||||||
|
file:write(line .. '\n')
|
||||||
|
end
|
||||||
|
file:close()
|
||||||
|
vim.notify('Appended Flutter dev log to /tmp/dart_debug.log', vim.log.levels.INFO)
|
||||||
|
end, { desc = 'Append Flutter dev log to file' })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>fc', '<Cmd>FlutterLogClear<CR>', { desc = '[F]lutter Log [C]lear' })
|
||||||
|
vim.keymap.set('n', '<leader>fo', '<Cmd>FlutterLogToggle<CR>', { desc = '[F]lutter Log T[o]ggle' })
|
||||||
|
vim.keymap.set('n', '<leader>fq', '<Cmd>FlutterQuit<CR>', { desc = '[F]lutter [Q]uit' })
|
||||||
|
vim.keymap.set('n', '<leader>fs', '<Cmd>FlutterRestart<CR>', { desc = '[F]lutter Re[s]tart' })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
'nvim-java/nvim-java',
|
||||||
|
dependencies = {
|
||||||
|
'nvim-lua/plenary.nvim',
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
'williamboman/mason.nvim',
|
||||||
|
'williamboman/mason-lspconfig.nvim',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue