A Neovim plugin that enhances Flutter and Dart development with LSP-powered tools like hot reload, device selection, and widget guides.
flutter-tools.nvim is a Neovim plugin that extends the native LSP client to provide a comprehensive Flutter and Dart development environment. It enables developers to build, run, debug, and manage Flutter applications directly within Neovim, integrating tightly with the Dart language server for a seamless workflow.
Flutter and Dart developers who use Neovim as their primary editor and want a fully integrated development environment without leaving the editor. It is specifically for those who have already configured or are willing to configure Neovim's native LSP client for core features like autocompletion and diagnostics.
Developers choose this plugin because it enhances Neovim's native LSP capabilities rather than replacing them, providing Flutter-specific tooling like hot reload, device management, and widget guides while leaving core LSP features to the user's configuration. It offers deep integration with the Dart language server and supports advanced features like nvim-dap debugging, project configurations, and DevTools integration.
Tools to help create flutter apps in neovim using the native lsp
Enables instant reloading and restarting of Flutter apps directly within Neovim, as demonstrated in the hot reload GIF in the README, eliminating the need for terminal commands.
Provides a UI picker for selecting and launching apps on connected devices or emulators, shown in the devices screenshot, streamlining workflow without external tools.
Integrates with nvim-dap for debugging Flutter and Dart applications, with configurable exception breakpoints and project-specific run configurations, as detailed in the debugging section.
Offers widget guides and an interactive outline window to visualize widget hierarchies, illustrated in the outline GIF, aiding navigation of complex UI code.
Requires separate configuration of Neovim's native LSP client for core features like autocompletion, as emphasized in the 'New to Neovim's LSP Client?' section, adding overhead.
Depends on plenary.nvim and recommends dressing.nvim for UI, increasing plugin load and potential setup conflicts, especially for minimal Neovim configurations.
Has known issues with the Flutter master channel and warns against configuring dartls via lspconfig separately, risking conflicts and instability in some environments.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.