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

Posted

技术标签:

【中文标题】VSCode 替换 _$ 而不是自动完成【英文标题】:VSCode replacing _$ instead of autocomplete 【发布时间】:2021-08-30 12:24:29 【问题描述】:

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

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

替换为

当我点击 EnterTab

如何解决这个问题?

【问题讨论】:

【参考方案1】:

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

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

我确实通过以下方式复制:

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

  String name;
  String email;

  String test$function() =>'test';
  

尝试使用自动完成功能调用test$function(),结果为test()

android Studio 中不会出现此问题。

似乎与json_serializable无关或引起。

下划线似乎与问题无关。

我无法对此提供修复,但我确实在 VS Code Github here 中打开了一个问题。

编辑:

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

您可以阅读here

【讨论】:

以上是关于VSCode 替换 _$ 而不是自动完成的主要内容,如果未能解决你的问题,请参考以下文章

VSCode在自动完成功能时添加括号

Flex TextArea 自动完成,而不是 TextInput

用于 JavaScript 的 VSCode 智能感知自动完成

VSCode 使用自定义 webpack 解析自动完成 javascript 导入的对象

VS Code 和 Flutter/Dart,小部件自动完成功能不起作用

正则表达式用 JQuery ui 自动完成替换某些字符