Ⅰ. 插件描述

flutter support for (Neo)vim

Ⅱ. 基本信息

创建日期:  2019-10-06
使用用户:  1
Github星:  67
插件作者:  年糕小豆汤

Ⅲ. 安装方法


Plugin 'iamcco/coc-flutter'
… 然后在Vim中运行以下命令:
:source %

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。


NeoBundle 'iamcco/coc-flutter'
… 然后在Vim中运行以下命令:
:source %


Plug 'iamcco/coc-flutter'
… 然后在Vim中运行以下命令:
:source %


cd ~/.vim/bundle
git clone

Ⅳ. 文档说明

# coc-flutter

Flutter support for (Neo)vim

2019-10-07 23-31-40 2019-10-08 00_04_07


  • LSP features is power by analysis_server

    • autocomplete
    • diagnostics
    • format
    • rename
    • hover document
    • signature help
    • go to definition
    • go to implementation
    • go to references
    • document highlight
    • document symbol
    • code actions
    • more detail

    need flutter sdk and add to PATH environment

  • Automatically finds SDKs from PATH
  • Automatic hot reloads on save
  • Automatically run flutter pub get when pubspec.yaml change
  • Support flutter dev server
  • Snippet enhance flutter.provider.enableSnippet
  • Devices List
  • Emulators List


:CocInstall coc-flutter

coc-list sources

  • FlutterDevices

:CocList FlutterDevices

  • FlutterEmulators

:CocList FlutterEmulators


  • flutter.trace.server Trace level of log, default: off
  • flutter.enabled Enable coc-flutter extension, default: true
  • flutter.lsp.debug Enable debug for language server, default: false
  • flutter.lsp.initialization.onlyAnalyzeProjectsWithOpenFiles: defalut: false

When set to true, analysis will only be performed for projects that have open files rather than the root workspace folder.

  • flutter.lsp.initialization.suggestFromUnimportedLibraries: defalut: true

When set to false, completion will not include synbols that are not already imported into the current file

When set to true, will display closing labels at end of closing, only neovim support.

  • flutter.sdk.dart-command dart command, leave empty should just work, default: ''
  • flutter.sdk.dart-lookup command to find dart executable location, used to infer dart-sdk location, default: ''
  • flutter.sdk.flutter-lookup command to find flutter executable location, used to infer location of dart-sdk in flutter cache: ''
  • Enable hot reload after save, default: true

only when there are no errors for the save file

  • flutter.provider.enableSnippet Enable completion item snippet, default: true

    • import ''; => import '${1}';${0}
    • someName(…) => someName(${1})${0}
    • setState(() {}); => setState(() {\n\t${1}\n});${0}

Enable format on save:

"coc.preferences.formatOnSaveFiletypes": [


Open flutter only commands list: CocList --input=flutter commands

Global Commands:

  • Run flutter dev server
  • flutter.create Create flutter project using: flutter create
  • Run: flutter doctor
  • flutter.upgrade Run: flutter upgrade
  • Run: flutter pub get
  • flutter.devices open devices list
  • flutter.emulators open emulators list

LSP Commands

  • flutter.gotoSuper jump to the location of the super definition of the class or method

Dev Server Commands:

available when dev server running

  • Quit server
  • Detach server
  • Hot reload
  • Hot restart
  • To save a screenshot to flutter.png
  • Open flutter dev server log
  • Open observatory debugger and profiler web page
  • You can dump the widget hierarchy of the app (debugDumpApp)
  • To toggle the elevation checker
  • For layers (debugDumpLayerTree)
  • To dump the rendering tree of the app (debugDumpRenderTree)
  • To toggle the display of construction lines (debugPaintSizeEnabled)
  • To simulate different operating systems, (defaultTargetPlatform)
  • To display the performance overlay (WidgetsApp.showPerformanceOverlay)
  • To enable timeline events for all widget build methods, (debugProfileWidgetBuilds)
  • To toggle the widget inspector (WidgetsApp.showWidgetInspectorOverride)
  • Accessibility (debugDumpSemantics) for inverse hit test order
  • Accessibility (debugDumpSemantics) for traversal order

Closing Labels

when flutter.lsp.initialization.closingLabels is true,
the closing labels will be display at end of closing.

this feature only support neovim since vim do not support virtual text


Buy Me A Coffee ☕️