在自动完成成员之前,F# 自动完成不会启动

F# autocomplete doesn't start until autocompleting members

在 visual studio 和 modevelop 中,F# 自动完成只有在您开始查看 class 或命名空间成员时才会启动。

例如,此处自动完成不会启动:

Syst

但这里会:

System.TimeSp

这是为什么?

自动完成 window 确实在一定程度上阻碍了代码并激怒了程序员。在指定任何命名空间、模块或类型之前,选择量很大,因此成本往往超过收益。

  • 一个快捷方式,通常是 Visual Studio 中的 Control+Space,允许随时尝试完成,因此在需要时可以快速使用该功能。

  • 许多程序员打开大型名称空间,其中包含大量已定义的标识符。

  • 完成 window 很聪明,因为它提供的标识符可能不以已键入的字母开头。这进一步增加了候选人的数量。

  • 根据剩余候选标识符的数量进行自动完成不是很直观,而且可能会分散注意力。

虽然我不知道这是否是官方的推理,但目前的行为似乎是一个合理的选择。在绝大多数情况下,它是速度和注意力之间的良好折衷。

我经常使用 Control+Space 快捷键。在我看来,一个有用的改进是在 IDE 中引入最有用的快捷方式;许多程序员浪费时间是因为他们没有意识到它们。