lazyvim折腾日记(4)
lazyvim折腾日记(四)
前言
最近想学习 dart 了, 基本的路线我认为可以分割为
- 安装
- dart 基本概念的学习与理解
- flutter 基本概念的学习与理解
- 具体项目实践
在本章节中,我们要解决的问题是 如何在 nvim 中安装并应用 dart & flutter
dart 安装
首先要搞清楚一个事情, 在 nvim 上进行编程, 需要配置 lsp 与 cmp ,所以按最坏的情况打算, 我需要同时安装 dart 与 dart-lsp
基于上述判断, 我们有如下参考资料
第一个链接告诉我们, dart-lsp 已经弃用了
如第二个链接所示, 现在 dart 本身就自带 lsp 功能, 且现有 dart-lsp 功能已经集成到了 flutter 里
第三个链接告诉我们, 可以使用 nvim & vim 可以作为 dart 的 ide 使用
基于上述资料的收集, 可以得出以下结论
- 使用 nvim 开发 dart 是可行的
- 没必要额外安装 dart 直接安装 flutter 即自带 dart 与相关的 lsp
接下来的工作就是安装 flutter
- flutter-tools
- flutter-install-inlinux
- setup for flutter development
- building flutter application with neovim
第三及第四个链接告诉我们, 在 nvim 中开发 flutter 所需要的 nvim 插件为 flutter-tools
第一个链接为 flutter-tools 的 github 链接
第二个链接告诉我们如何安装 flutter, 按照官网步骤走即可, 唯一需要关心的是使用 flutter 要配置一下国内源
同样也是跟着教程走即可
❯ flutter doctor
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.27.2, on Nobara Linux 41 (KDE Plasma) 6.12.9-207.nobara.fc41.x86_64, locale en_US.utf8)
[✗] Android toolchain - develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.dev/to/linux-android-setup for detailed instructions).
If the Android SDK has been installed to a custom location, please use
`flutter config --android-sdk` to update to that location.
[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] VS Code (version 1.92.2)
[✓] Connected device (1 available)
[✓] Network resources
! Doctor found issues in 3 categories.
由于本人并不打算进行网页及安卓开发, 所以 android toolchain 与 chrome 就不安装了
接下来就是于 lazyvim 中配置 flutter 并介绍相关使用经验
# ~/.config/nvim/lua/plugins/cmp/init.lua
return{
...
{
"nvim-flutter/flutter-tools.nvim",
lazy = false,
dependencies = {
"nvim-lua/plenary.nvim",
"stevearc/dressing.nvim", -- optional for vim.ui.select
},
config = function()
require("flutter-tools").setup({})
end,
},
...
}
之后重启 nvim 等待 lazyvim 自动下载安装即可
lsp 的使用依赖 nvim-lspconfig 的文件识别, 需要先让 lsp 检测到 dart 文件, lspconfig 才能启动 dartls
==============================================================================
lspconfig: require("lspconfig.health").check()
LSP configs active in this session (globally) ~
- Configured servers: vtsls, dockerls, jsonls, marksman, docker_compose_language_service, taplo, lua_ls
- OK Deprecated servers: (none)
LSP configs active in this buffer (bufnr: 7) ~
- Language client log: ~/.local/state/nvim/lsp.log
- Detected filetype: `dart`
- 1 client(s) attached to this buffer
- Client: `dartls` (id: 1, bufnr: [7])
root directory: ~/Study/flutter_name/
filetypes: dart
cmd: /opt/flutter/bin/dart language-server --protocol=lsp
version: `Dart SDK version: 3.6.1 (stable) (Tue Jan 7 09:50:00 2025 -0800) on "linux_x64"`
executable: true
autostart: false
Docs for active configs: ~
-
当 dartls 显示已连接时, flutter-tool 的相关功能才能够正常使用
常用命令有
<cmd>FlutterRun<cr>
-- 启动 flutter 程序
<cmd>FlutterRestart<cr>
-- 重启 flutter 程序
<cmd>FlutterEmulators<cr>
-- 选择 flutter 模拟器(web/desktop/mobile)
<cmd>FlutterLogToggle<cr>
-- flutterlog 的开关, 用于 debug 使用

浙公网安备 33010602011771号