VSCode 替换 _$ 而不是自动完成

Ser*_*kov 5 autocomplete dart visual-studio-code flutter vscode-settings

我正在使用 VSCode 进行 Flutter 编码。另外,我使用生成器通过json_serializable库自动构建 Json 类。

但是当我输入 _$ 符号进行自动完成时

在此处输入图片说明

它替换为

在此处输入图片说明

当我击中EnterTab

如何解决这个问题?

L. *_*emi 5

我试图复制该问题,并得出结论,这可能是与当前 VS Code Intellisense 相关的问题。

我尝试在名称中使用下划线_或美元$来调用一些函数。Intellisense 总是建议完整的函数名称,但是当我确认时,它会截断$符号处的名称。

我确实以以下方式复制:

  1. 使用类定义文件 .dart
  2. 在类中定义一个函数,在某处用美元符号命名(例如 void test$function(){} )
  3. 从某处调用该函数。Intellisense 将提供建议,但如果您接受,结果将在美元符号处被截断。
class Test {
  Test(this.name, this.email);

  String name;
  String email;

  String test$function() =>'test';
  
}
Run Code Online (Sandbox Code Playgroud)

尝试test$function()使用自动完成调用会导致test().

Android Studio 中不会出现此问题。

它似乎与json_serializable.

下划线似乎与问题无关。

我不能为此提供一个修复,但我做了一个开放的问题VS代码Github上这里

编辑:

这实际上是 Dart sdk 中的一个错误。它将在 Dart v2.14 中修复

你可以在这里阅读