【问题标题】:How can I change the suggestions I get from the autocompletion of Resharper++?如何更改从 Resharper++ 的自动完成中获得的建议?
【发布时间】:2017-03-05 17:57:04
【问题描述】:

我两天前买了 Resharper,但现在我遇到了 2 个大问题。

  1. 当我输入main 时,它会手动将其变为

    int main(int argc, char* argv[])
    

    我真的很喜欢这个,但是我需要把这段代码改成

    int32_t main(int32_t argc,char* argv[])
    

    有谁知道我可以如何更改自动完成建议的代码?

  2. 第二个问题是,当我输入endl 时,它首先建议另一个选项,尽管它的匹配度更差(如本例中的_END_C_LIB_DECL):

    而不是将endl 显示为第一个建议。与std::array 相同。我不想总是输入std::endl,如何配置 Resharper 以便第一个建议是最匹配的?

【问题讨论】:

  • main 必须返回 int。实现也只需要支持()(int, char**) 作为参数列表。
  • int32_t 是 int 的 typedef
  • 你不能依赖它。
  • 怎么回事? int32_t 将永远能够保持 0
  • 这与它能否保持 0 无关。语言要求 main 返回 int。如果您不返回int,则您的程序不是格式良好的C++。该语言也不保证int32_tint 相同。

标签: c++ autocomplete resharper autosuggest


【解决方案1】:

main 模板的内容可以使用“ReSharper | Tools | Templates Explorer”工具窗口进行更改。

关于第二个问题,让我解释一下背后的原因。 ReSharper 有两个完成源。在当前点可见的完成结果会立即显示,并且可能需要命名空间限定或插入包含指令的结果稍后添加(因为收集它们可能很慢)。在添加这些额外的完成项时,ReSharper 无法更改选定的完成项 - 这就是 endl 显示为第二项的原因。

【讨论】:

  • 谢谢你的帮助,我想我必须忍受它,但现在我知道如何改变 main 所以这很酷。
  • 这也是 VB.NET 的一个问题,而且非常痛苦。如果我发送的参数变量与接收参数变量的名称相同,则在键入函数调用时,我首先得到“recParmVar:=”,然后是我尝试发送的变量名称的建议。现在对于函数调用中的每个参数,我必须输入要发送的 var 的全名,或者输入几个字符,点击向下箭头,然后输入。我宁愿完全关闭函数参数建议。
  • 对于未来的我和其他人,我找到了解决这个问题的方法。输入源变量的部分名称并按空格键。自动填充将使用 var 名称,而不是 "var :=" 选项。
猜你喜欢
  • 1970-01-01
  • 2011-11-11
  • 2015-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
  • 2011-08-24
  • 2014-03-26
相关资源
最近更新 更多