Visual Studio 2010的智能感知:在F#运营商的提示(Visual Studio 20

2019-07-31 05:28发布

是否有可能使Visual Studio中显示运营商提示?

下图演示了一个功能的提示线索,但它并不适用于运营商合作。

运营商通常具有简单类型的规格等'T -> 'T -> 'T但这样的提示可以是自定义的是有用的。

Answer 1:

继丹尼尔的建议,我张贴,我一直在使用自己的一种变通方法
解决方法是仅部分有帮助的,我仍然在寻找更好的想法。

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

这个代码是完全有效的,因为操作者的表达产生与一个编译器生成的名称的功能。 见这个MSDN文章 ,一节“重载运算符的名称”运营商名称的完整列表。

好消息是, op_BangGreaterLess支持智能感知提示,它也支持“转到定义”的IDE(F12)命令,指向原来的运算符声明。
坏消息是,智能感知不允许全运营商的名称(Ctrl + 空格 )快速进入,所以你必须手动输入完整的名称。



Answer 2:

这恐怕是不可能的(甚至是在Visual Studio 2012,我没有得到提示运营商)。

我想这可能实现,但正如你所说,运营商通常有简单类型。 当使用运营商定制,这些应该是可能足够简单,使人们可以不看他们的类型(或相关的XML文档)中使用它们。 否则,它可能是最好使用一个命名函数。

这就是说,如果你使用F#互动,那么你可以很容易地用它来探索运营商类型:

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

如果我不能使用F#互动,我通常会定义一个简单的伪码元获得智能感知:

let dummy () = (!><)

请注意,我说unit参数定义一个函数,避免值限制错误。



文章来源: Visual Studio 2010 IntelliSense: hints on F# operators