iamcco / coc-flutter

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

[bug] go to file #163

Closed AdrienLemaire closed 1 year ago

AdrienLemaire commented 1 year ago

Describe the bug When pressing gf on top of an import path, I get the error

Error detected while processing function dart#resolveUri[5]..<SNR>112_PackageMap:
line   14:
E716: Key not present in Dictionary: "packageUri"

Example:

import 'package:ecommerce_app/src/features/authentication/data/fake_auth_repository.dart';

Flutter lint recommends to have global imports instead of relative ones, and it seems coc-flutter doesn't resolve these paths correctly.

To Reproduce Steps to reproduce the behavior:

  1. Go to any flutter file
  2. position cursor above package import.
  3. press gf
  4. See error

Expected behavior After pressing gf, I expect to navigate to the related file.

Desktop (please complete the following information):

Output channel:

  1. Set "flutter.trace.server": "verbose"
  2. Restart coc using :CocRestart
  3. Reproduce the issue
  4. :CocCommand workspace.showOutput open output list and select flutter

Paste Log from above:

[dev-command]: register dev command
[sdk]: No local fvm sdk
[sdk]: which flutter command => /usr/bin/flutter
[sdk]: /opt/flutter/version => 3.3.4
[sdk]: searchPaths: ~/snap/flutter/common/flutter
[sdk]: flutter command path => /opt/flutter/bin/flutter
[sdk]: dart sdk home => /opt/flutter/bin/cache/dart-sdk
[sdk]: analyzer path => /opt/flutter/bin/cache/dart-sdk/bin/snapshots/analysis_server.dart.snapshot
[sdk]: dart command path => /opt/flutter/bin/cache/dart-sdk/bin/dart
[fs]: executing command /opt/flutter/bin/cache/dart-sdk/bin/dart --version
[sdk]: dart version: v2.18.2
[lsp-server]: rightVersion true
[lsp-server]: analysis server ready!
[lsp-closing-labels]: register closing labels
[daemon]: got message: {
  "event": "daemon.connected",
  "params": {
    "version": "0.6.1",
    "pid": 1735144
  }
}
[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": "linux",
    "name": "Linux",
    "platform": "linux-x64",
    "emulator": false,
    "category": "desktop",
    "platformType": "linux",
    "ephemeral": false,
    "emulatorId": null,
    "sdk": "Arch Linux 5.19.13-arch1-1",
    "capabilities": {
      "hotReload": true,
      "hotRestart": true,
      "screenshot": false,
      "fastStart": false,
      "flutterExit": true,
      "hardwareRendering": true,
      "startPaused": true
    }
  }
}
[daemon]: New device: Linux
[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 106.0.5249.103",
    "capabilities": {
      "hotReload": true,
      "hotRestart": true,
      "screenshot": false,
      "fastStart": false,
      "flutterExit": false,
      "hardwareRendering": true,
      "startPaused": true
    }
  }
}
[daemon]: New device: Chrome

Config gf is a basic core vim command.

Kavantix commented 1 year ago

You can use go to definition instead. gf support is not currently on the roadmap but feel free to open a PR