Visual Studio 2010 IntelliSense:F#运算符的提示

时间:2012-08-28 23:38:02

标签: visual-studio f# intellisense

是否可以让Visual Studio在运算符上显示工具提示?

下图显示了函数的工具提示提示,但它不适用于运算符。

a tooltip hint for a function

操作符通常具有简单的类型规范,例如'T -> 'T -> 'T,但这些提示对于自定义提示非常有用。

2 个答案:

答案 0 :(得分:7)

根据Daniel的建议,我发布了一个我一直在使用的变通办法
解决方法只是部分有用,我仍然在寻找更好的想法。

let (!><) a = ()
let z1 = op_BangGreaterLess 5

此代码完全有效,因为运算符表达式生成具有编译器生成的名称的函数。有关运营商名称的完整列表,请参阅this MSDN article,“重载的运营商名称”部分。

好消息是op_BangGreaterLess支持IntelliSense提示,它还支持IDE的“转到定义”( F12 )命令,指向原始操作员声明。
坏消息是IntelliSense不允许快速输入完整的操作员名称( Ctrl + Space ),因此您必须手动输入整个名称。

答案 1 :(得分:4)

我担心这是不可能的(即使在Visual Studio 2012中,我也没有为操作员提供工具提示)。

我想这可以实现,但正如你所说,运营商通常有简单的类型。使用自定义运算符时,这些运算符应该足够简单,以便人们可以在不查看其类型(或关联的XML文档)的情况下使用它们。否则,使用命名函数可能会更好。

那就是说,如果您使用F#Interactive,那么您可以轻松地使用它来探索运算符类型:

> (!><);;
val it : ('a -> unit) = <fun:clo@2>

如果我不能使用F#Interactive,我通常会定义一个简单的虚拟符号来获取IntelliSense:

let dummy () = (!><)

请注意,我添加了unit参数来定义函数并避免值限制错误。