【问题标题】:Automatic addition of `using` in CodeRush在 CodeRush 中自动添加 `using`
【发布时间】:2010-05-21 14:42:14
【问题描述】:

我刚刚为 Visual Studio 安装了 CodeRush Pro(评估试用版),我可以说我非常喜欢它。与 Resharper 相比,我真正缺少的只有一种功能。这是 CodeRush 处理using 的方式。当我键入一些未在 using 中列出的某些包中声明的类名时,CodeRush 将其红色下划线表示为错误(它是什么),但如果我将光标悬停在它上面,它不会让我添加 using,它只是说是“未声明的元素”。

我必须使用 VS 默认使用加法(将插入符号移至标识符,将光标悬停在第一个字母下方出现的那个非常小的框上,单击出现的按钮并选择例如 using System 形成下拉菜单)。

当我将光标悬停在突出显示的“问题”(即未声明的元素)上时,有没有办法配置 CodeRush 以提供 mi add 使用?

第二部分是 Resharper 有一些称为类型名称完成的想法。它一些改进的智能感知。假设您的文件中没有 using 声明。然后输入ICompar 之类的内容并按CTRL+SPACE。当然不会有任何建议。但是使用 Resharper,您可以按 CTRL+ALT+SPACE 并获得以ICompar 开头的所有类的建议,即使它们未在使用中。当您选择其中之一时,会自动为您添加正确的使用方法。

有没有办法让 CodeRush 以这种方式运行?

【问题讨论】:

    标签: c# visual-studio intellisense coderush


    【解决方案1】:

    第一部分

    Visual Studio

    您提到的默认 VS 机制是使用 Ctrl+Period 或 Shift+Alt+F10 触发的

    CodeRush 模板

    让我在这部分引用 Mark Miller(CodeRush 的首席架构师)的话:

    "CodeRush 模板(如 VS code sn-ps on steroids)将根据需要添加命名空间,因此如果您使用模板创建类、方法、变量、属性、事件和类型引用,那么命名空间引用将自动添加,您很少需要使用 VS 功能来添加命名空间。要开始使用模板,我们建议将 CodeRush 培训窗口(DevExpress | Tool Windows | CodeRush)停靠在编辑器的一侧并检查该培训窗口获取可用于生成所需代码的提示和模板。只需键入显示在窗口中的模板,然后使用空格键将其展开。"

    试试 v 系列、m 系列、n 系列和 t 系列。

    所以我的意思是:

    • 启动 CodeRush 训练窗口 (DevExpress\Tool Windows\CodeRush)
    • 将其停靠在左侧
    • 返回编辑器
    • 键入“v”(无引号)
      • 小心这是上下文敏感的
        • 在插入符号在课堂上时试试这个。
        • 在插入符号位于方法中时尝试此操作。
    • 现在查看“训练”窗口。
    • 您应该会看到一些关于要输入更多字符的建议。
    • 输入建议之一,然后按空格键。

    这就是您对 v 系列模板的介绍。

    请随意查看 m 系列、n 系列和 t 系列。

    另请注意,当您处于空白行时,培训窗口也会提供建议。

    社区插件

    CodeRush 中没有内置任何内容来提供“添加用于此类型”功能。

    但是,有许多 Community Plugins 为 CodeRush 添加了各种功能。这种可扩展性是 CodeRush 的最佳特性之一。

    特别是Refactor_Resolve 的一个插件具有可能接近您所描述的功能。

    第二部分

    我不相信 CodeRush 目前提供任何智能感知增强功能。

    对不起

    【讨论】:

    • 那么一些插件来增强默认的 VS 智能感知呢?
    • 亲爱的 Rory,我花了几个小时在谷歌上搜索和阅读教程。首先:Refactor_Resolve 不起作用。讨论中有一条评论说它不起作用,我也不适合我。其次,像我需要的那样编​​写扩展代码应该很容易(而且我并不孤单——我敢肯定,这个员工会取悦很多开发人员)。众所周知,扩展 CodeRush 是小菜一碟。但是有一些员工我不会编码:stackoverflow.com/questions/2886369/…
    • 我会在这个周末研究一下 Refactor_Resolve 有什么问题。我也会看看,看看我是否可以为您提供其他问题所需的内容。
    • 好的,我已经设法为 DXCore 10.1 修补 Refactor_Resolve。 API 更改导致此插件无法正常运行。请尝试构建 1264
    • 干得好,Refactor_Resolve 现在可以工作了。它确实非常接近我的要求:)) 但是它仍然没有在问题弹出窗口中显示修复选项。而且我会说它不应该是折射 - 它确实改变了代码的作用所以我猜这应该是代码提供者而不是折射......
    【解决方案2】:

    不是答案,但如果没有更好的解决方法,请给出我最好的穷人废话解决方法...是Ctrl-Home(文件顶部)然后是usl<space>(扩展为using System.Linq)然后Ctrl-Minus(回到我们原来的位置——当然你也可以使用 CR 标记)。

    (我在 CR 错误库中有一个要求对此进行排序的请求)

    【讨论】:

      【解决方案3】:

      DXhave built another sample around this。我希望它能进入 CR 产品,但我想人们不应该抱怨免费插件(反正太多了)。

      【讨论】:

      • +1 但这仅适用于扩展方法,对吗?它并没有解决整个想法?
      • @drasto - 是的,你是对的 - 遗憾的是它不完整,但我想如果有人有时间和意愿在这个方向上做某事,它可以作为一个很好的样本。
      • 很高兴有这个链接。
      猜你喜欢
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多