XCode:当前类的更好的符号导航器

Posted

技术标签:

【中文标题】XCode:当前类的更好的符号导航器【英文标题】:XCode: Better symbol navigator for current class 【发布时间】:2013-10-19 13:37:24 【问题描述】:

XCode 5 是否有插件或其他方式使符号导航器更有用,只显示当前类并使#pragma 标记看起来就像我们点击跳转栏一样?

所有这一切的重点是我们不必单击跳转栏,导航器始终显示为右侧面板上的选项卡。

我认为左侧面板上的默认符号导航器很弱。

见附图。

编辑:我最终自己创建了插件。下载地址:https://github.com/zolomatok/ZMDocItemInspector

如果您有兴趣编写自己的插件,这里有一个详细的教程可以帮助您:https://github.com/zolomatok/Creating-an-Xcode-plugin

【问题讨论】:

【参考方案1】:

我不知道,但有一些技巧可能会让您的生活更轻松:

    control+6 快速调出该文档项(方法名称和编译指示符列表)。

    李>

    顺便说一句,当它启动时,很多人不知道您可以直接开始输入,它还会在弹出窗口中进行搜索,删除与您输入的内容不匹配的项目。

    您可能需要考虑使用符号导航器,您可以通过按 command+2 或点击导航面板中的第二个选项卡将其拉起:

    另一个很棒的工具是快速打开(shift+command+O(就是字母“哦”)。

    代码折叠也是一种快速折叠代码的方法,因此您可以快速导航到特定例程。您可以按 shift+option+command+左箭头 快速折叠所有代码,滚动到您需要,然后展开(全部或只是该例程)。

    稍微复杂一点,但您可以使用文档系统。我使用appledoc。您可以将 cmets 放入符合 HeaderDoc 或 Doxygen 格式的代码中。所以考虑下面的方法声明:

    /** Initialize `Download` operation, downloading from `url`, saving the file to `path`.
     *
     * The operation starts when this operation is added to an operation queue.
     *
     * @param url The remote URL of the file being downloaded.
     *
     * @param path The local filename of the file being downloaded. This should be the full path of the file (both the path and filename) and should be in a directory that the user has permission.
     *
     * If this `nil`, the filename will be taken from the `lastPathComponent` of the URL, and will be stored in the `Documents` folder.
     *
     * @return Download operation
     *
     * @see initWithURL:
     */
    
    - (id)initWithURL:(NSURL *)url path:(NSString *)path;
    

    这条评论的结构是(a)以/**开头,而不仅仅是/*; (b) 指定@param@return 描述。当您这样做时,您可以将您的代码输入其中一个文档引擎,您将获得一组很好的文档。这也包括一个类层次结构。

    但是,虽然我们都知道我们应该记录我们的代码,但是在 Xcode 5 中,我们有一个更有说服力的理由这样做,因为我们的 cmets 会自动集成到 Xcode 的本地帮助系统中,实时。通过在您的代码中插入这些 cmets,Xcode 5 现在会自动在“快速帮助”窗口中向您显示您的方法的文档,就像它为 Cocoa 类所做的那样。

    回答您是否能够查看整个类层次结构的问题,使用appledoc,您可以构建和安装一个“文档集”,您可以在 Xcode 的文档浏览器中显示它(在 Xcode 4.x 的 Organizer 中,在Xcode 5 中的单独文档窗口)导航到您的项目文件夹,在终端命令行中运行以下命令:

    appledoc --project-name MyApp --install-docset --output ../MyAppDocumentation .

    除了构建可以在 Xcode 中查看的文档集之外,这些文档系统还允许您构建可能与第三方共享的文档(如果您需要这样做)。 Appledoc 尤其会生成一个非常像 Apple 的 html 文档站点。比如上面的方法声明here's the documentation。

    这个单独的“从命令行构建文档集”并不像您设想的“插件”那么巧妙,但我发现通过 Xcode 5 的内置文档解析,我已经亲自集成了在我的开发过程中记录我的代码。 (我很尴尬地说,它曾经是我推迟到开发过程结束的那些事情之一。)

有关简化与 Xcode 交互的更多技术,请参阅 WWDC 2012 视频 Working Efficiently with Xcode 或 WWDC 2013 视频 Xcode Core Concepts。

【讨论】:

这些都是非常有用的快捷键,非常感谢!主要问题是,如果我打开一个包含数百行代码的类,就很难理解它的结构。 顺便说一句,这是可以作为插件解决的吗?或者插件编写者甚至不可能? @ZoltánMatók 我不能说。仅供参考,我已经用另一种(非平凡的)替代方法更新了我的答案,即使用为您构建类层次结构的文档系统。我使用 Appledoc,尽管还有其他的。很明显,这给您编写代码增加了负担,但正如我在上面所说的,由于 Xcode 5 与 headerdoc/appledoc/doxygen 样式 cmets 的良好集成,它是一个更有吸引力的销售。 @ZoltánMatók 顺便说一句,我忽略了一个更明显的解决方案,即在左侧导航面板中拉起符号导航器 (command+2)。它显示了整个项目的所有符号,但您可以将其滚动到当前类。

以上是关于XCode:当前类的更好的符号导航器的主要内容,如果未能解决你的问题,请参考以下文章

如何给引入的公共的当前导航添加样式???

Xcode 导航标题消失

Xcode 3.2 的代码符号错误

想用 Xcode 4 做所有事情,如何在项目导航器中添加文件夹?

Xcode13符号化解析

在导航控制器 xcode 中添加“子”视图