iamcco / coc-flutter

flutter support for (Neo)vim
472 stars 38 forks source link

Lsp not working #171

Closed alvarogaiotti closed 1 year ago

alvarogaiotti commented 1 year ago

Describe the bug The lsp is not working with flutter version 3.9.0-1.0.pre.92.

To Reproduce Steps to reproduce the behavior:

  1. Open a .dart file in a flutter project having installed the specified flutter version
  2. Try any lsp feature (autocompletion, jumpToDefinition, etc.)
  3. Lsp is not working, the rest is fine

Expected behavior Lsp working the standard way, providing completion and code actions etc.

Desktop (please complete the following information):

Output channel:

[dev-command]: register dev command
[sdk]: No local fvm sdk
[sdk]: which flutter command => C:\Users\gttlv\bin\flutter\bin\flutter.BAT
[sdk]: C:\Users\gttlv\bin\flutter\version => 3.9.0-1.0.pre.92
[sdk]: searchPaths: ~/snap/flutter/common/flutter
[sdk]: flutter command path => C:\Users\gttlv\bin\flutter\bin\flutter.bat
[sdk]: dart sdk home => C:\Users\gttlv\bin\flutter\bin\cache\dart-sdk
[sdk]: analyzer path => C:\Users\gttlv\bin\flutter\bin\cache\dart-sdk\bin\snapshots\analysis_server.dart.snapshot
[sdk]: dart command path => C:\Users\gttlv\bin\flutter\bin\cache\dart-sdk\bin\dart.exe
[fs]: executing command C:\Users\gttlv\bin\flutter\bin\cache\dart-sdk\bin\dart.exe --version
[sdk]: dart version: v3.0.0
[lsp-server]: rightVersion false
[lsp-server]: analysis server ready!
[lsp-closing-labels]: register closing labels
[daemon]: got message: {
  "event": "daemon.connected",
  "params": {
    "version": "0.6.1",
    "pid": 2140
  }
}
[daemon]: got message: {
  "event": "daemon.logMessage",
  "params": {
    "level": "status",
    "message": "Starting device daemon..."
  }
}
[daemon]: got message: {
  "id": 1
}
[daemon]: Message without event
[daemon]: got message: {
  "event": "device.added",
  "params": {
    "id": "windows",
    "name": "Windows",
    "platform": "windows-x64",
    "emulator": false,
    "category": "desktop",
    "platformType": "windows",
    "ephemeral": false,
    "emulatorId": null,
    "sdk": "Microsoft Windows [Versione 10.0.19044.2604]",
    "capabilities": {
      "hotReload": true,
      "hotRestart": true,
      "screenshot": false,
      "fastStart": false,
      "flutterExit": true,
      "hardwareRendering": true,
      "startPaused": true
    }
  }
}
[daemon]: New device: Windows
[daemon]: got message: {
  "event": "device.added",
  "params": {
    "id": "chrome",
    "name": "Chrome",
    "platform": "web-javascript",
    "emulator": false,
    "category": "web",
    "platformType": "web",
    "ephemeral": false,
    "emulatorId": null,
    "sdk": "Google Chrome 110.0.5481.178",
    "capabilities": {
      "hotReload": true,
      "hotRestart": true,
      "screenshot": false,
      "fastStart": false,
      "flutterExit": false,
      "hardwareRendering": true,
      "startPaused": true
    }
  }
}
[daemon]: New device: Chrome
[daemon]: got message: {
  "event": "device.added",
  "params": {
    "id": "edge",
    "name": "Edge",
    "platform": "web-javascript",
    "emulator": false,
    "category": "web",
    "platformType": "web",
    "ephemeral": false,
    "emulatorId": null,
    "sdk": "Microsoft Edge 110.0.1587.50",
    "capabilities": {
      "hotReload": true,
      "hotRestart": true,
      "screenshot": false,
      "fastStart": false,
      "flutterExit": false,
      "hardwareRendering": true,
      "startPaused": true
    }
  }
}
[daemon]: New device: Edge
alvarogaiotti commented 1 year ago

Seems like the extension is thinking that I have an old flutter version: [lsp-server]: rightVersion false I dug a bit in the repo and the error seems to be in src/lib/sdk.ts, line 91:

return v.every((n, idx) => n >= version[idx]);

after forking the repo, changing the line to:

return (v.every((n, idx) => n >= version[idx]) || v[0] > version[0]);

and installing the extension with vim-plug and testing it [lsp-server]: rightVersion is true and everything seems to work fine.

Kavantix commented 1 year ago

That version check is indeed incorrect, thanks for debugging. I’ll fix the comparison.

phferreira commented 1 year ago

In my case, I use Flutter 3.4.0-19.0.pre.54 - channel flutter-3.4-candidate.22 In this flutter sdk version the LSP working greatly, but in channel flutter-3.4-candidate.23, some features stop working

on channel flutter-3.4-candidate.22, the Padding widget return with (padding: panding) and I can change

image

but in channel flutter-3.4-candidate.23, the same widget return with (...)

image

and updating to channel master LSP not working

please help

Kavantix commented 1 year ago

@phferreira @alvarogaiotti can you check if this is fixed in v1.9.10?

Kavantix commented 1 year ago

Actually this one was about dart 3, that should work in v1.9.10

@phferreira can you respond on the other ticket if your issues is also resolved