AppCode 2019.2:Swift 5.1,通过测试分析代码覆盖率,显示反汇编代码等

占星家已经宣布在JetBrains发布一周的发布,博客的数量增加了两倍! 实际上,这也是一个发布帖子,因此,如果您参加了EAP,那么您已经了解了一切。


如果没有,请务必检查一下内容,因为在此版本中,我们不仅分析了代码覆盖率以及测试和反汇编代码的显示,而且还提供了对Ruby的DSL支持以及许多其他有趣的东西!


有保障地运行



斯威夫特


语言支持


开始支持Swift 5.1:


  • SE-0242 :合成成员初始化程序的默认值。
  • SE-0254 :静态和类下标。
  • SE-0068 :将Swift Self扩展为类成员和值类型。
  • SE-0260 :稳定的ABI的库演化。
  • SE-0258 :属性包装器

在此过程中,可以在此处查看准备程度。


代码折叠


是否折叠式封盖:


闭合折叠


背光灯


您可能不知道我们正在处理哪些特定实体而只采用并突出显示一行代码。 因此,只有在完全构造了缓存之后,才可以完全突出显示。 但是我们已经预先知道了该语言的关键字,并且可以突出显示它们-现在,即使在缓存索引尚未结束的情况下,它们也为Swift突出显示:


关键词


枚举元素生成


我们将继续扩展Create From Usage的范围:现在,您可以通过按from在代码中使用它来创建枚举元素:


从用法创建


使用情况搜索


在AppCode中搜索用途可查找特定的代码结构(变量,类,函数,类方法等)-与全文搜索相比,这可以大大缩小搜索范围。 直到最近,对于Swift,我们仅显示使用特定设计的位置。 在2019.2中,我们按类型对用途进行了分组,因此现在我们可以快速了解如何使用变量,函数或类:


查找用法


合并代码行


没什么特别的,现在您可以使用Join Lines⌃⇧J⌃⇧J变量的声明和初始化:


连接线


自动导入


有这样一个构建系统-BUCK 。 默认情况下,BUCK构建系统使用标头映射,我们年前增加了对它的支持,但没有时间将其投入自动导入。 结果,在按⌥⏎之后,插入了到标题的长路径,这绝对是不必要的。 现在这不会发生,现在一切正确。


侦错


反汇编代码显示


CLion的同事在2019.1版中为LLDB进行了反汇编代码映射,我们在此版本中创造性地重用了它:


拆卸视图


自动完成


最初在CLion中做的另一件事是通过按⇥(与常规控制台相同)在LLDB控制台中自动完成调试器命令:


LLDB命令完成


测试覆盖率分析代码


终于做好了,做得很好。 我们选择测试配置,单击“覆盖运行”离开以完成测试,我们对结果感到满意:


有保障地运行


编辑器左侧是覆盖率结果:


覆盖范围结果


通过单击颜色指示器,将显示一个板,其中包含此部分代码中的调用次数以及有用的操作:


命中数


覆盖范围统计信息将在“ 项目”视图中简短显示,并在单独的窗口中更详细地显示:


工具视窗


在索引编制过程中进行构建,运行,调试和测试


索引和建立缓存不是一个快速的过程,尤其是在大型项目上,尤其是在第一个索引上。 但是,您可以在项目进行时对其进行一些操作,例如,构建或运行应用程序。


长期以来,这些操作对我们来说是受阻的,因为对于启动配置的正常使用,必须首先在项目上构建缓存。 实际上,这不是必需的,因此在2019.2版中,我们果断地从缓存中解开了启动配置的创建,现在您可以在项目打开后立即对其进行组装,启动,调试或测试:


在索引期间进行构建,运行,调试和测试


整合性


TextMate插件


通常,要求他们增加对某些语言的支持,这些语言不是AppCode的主要语言。 有时,如果我们了解到很多用户确实需要它,便会这样做,因此在某些时候,我们将WebStorm的一部分拖给了我们自己,以便React Native和PhoneGap上的开发人员可以轻松使用HTML / CSS / JavaScript。


然后是Markdown插件,因为任何自述文件都需要能够方便快捷地进行编辑。 一位同事制作了一个AppleScript插件,仅仅是因为他对编写语言支持感兴趣。


但是您不能塞入大量的内容,因此我们无法实现对所有语言的支持。 例如,在iOS开发中,通常会找到基于Ruby的DSL(CocoaPods和Fastlane配置)。 最初,请求听起来像是“打开整个Ruby支持”,但实际上,这些配置并不经常被编辑,并且由于它们的原因而提取一半的RubyMine似乎并不合理。 同时,没有支持也是不好的。


在此版本中,WebStorm的同事在默认安装中包括了一个支持TextMate捆绑软件的插件,该插件使一堆语言简单地突出显示并自动完成。 我们遵循了他们的示例,现在我们有了:


TextMate捆绑包插件


由于这些捆绑包本身对Fastlane的支持存在一些矛盾,因此Ruby DSL的配置原理保持不变(但是,您可以帮助纠正这种情况)。


Shell脚本插件


脚本在项目中很常见,因此我们提供了编辑脚本的支持:


Shell脚本插件


提交窗口


更准确地说,不再有任何单独的窗口-现在它已成为“ 本地更改”选项卡的一部分


提交窗口


到此为止。 在评论中将所有问题和建议写在这里-我们将很乐意回答!


AppCode小组

Source: https://habr.com/ru/post/zh-CN461949/


All Articles