AppCode 2019.3:速度更快,对Swift的了解更好,对Mac Catalyst的了解,方便地显示组装消息

在AppCode 2019.3中,我们专注于速度和语言支持。 在这篇文章中,我们讲述了发生了什么(剧透:他们加速了很多)。


飞溅



性能表现


很难确定特定的修复对速度有多大影响-这与测试项目的数量及其复杂性无关。 从2019.3开始,一切变得更加轻松,因为在发布准备期间,我们收到了很多反馈,认为性能确实得到了改善。 这是加速发生的事情:


  • 在纯Swift上的项目和混合代码的项目中突出显示,导航和自动完成。 这么说吧-与2019.2。
  • 有一个缓存阶段,即“处理Swift模块”。 IDE所需的Swift模块的接口(最高Xcode 11)在工具链中的二进制文件中,并且它们的文本表示形式必须通过SourceKit获得。 SourceKit的运行速度很慢,如果对于系统框架,我们已经在安装程序中放置了现成的缓存(但是,对于每个Xcode版本,都必须对其进行更新),则这不适用于项目本身的框架。 结果,他们发现了一些不是最优化的部分,并进行了更正,使其开始工作得更快。

改进的另一部分仍在运行中,其中有很多。 这些是尚不存在的其他高速缓存,以及对构造设计符号的算法的改进,等等。 这些已经是2020.1的计划。


语言支持


语言任务与绩效工作具有相同的优先级,因此团队的一部分会监视快速演变的变化,并在接受后立即将其集成到AppCode中。 该版本支持:



修改代码的动作


他们愈演愈烈。 AppCode团队正在成长,并且为了向该课程介绍新的开发人员,我们通常会提供一些小而有趣的新功能。 这次是Swift的一系列动作,您可以使用它们:


  • 结合(反之亦然)将变量声明与为其分配的值结合起来:
    拆分/联接变量声明和赋值
  • 将几个变量的声明拆分为单独的变量:
    拆分具有多个元素的变量声明
  • 拆分/合并嵌套的if / else:
    拆分/合并嵌套的if / else语句
  • 交换比较或二进制表达式的部分:
    翻转比较和二进制表达式
  • 在以下情况下进行求逆:
    条件反转
  • 在相同的if构造中拆分/合并条件:
    合并/分割条件
  • 适用de Morgan法律:
    迪摩根定律

代码生成


Editor | Code Style | Swift | Code Generation | General添加了两个新的代码生成设置。 Editor | Code Style | Swift | Code Generation | General Editor | Code Style | Swift | Code Generation | General


  • Prefer Void over ()
  • Prefer explicit return

格式化


应用户要求,他们添加了格式设置选项,以便:


  • 使用willSet / didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)单行保留小的属性块didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)
  • 空类型声明也是如此( Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Empty type declarations in one line

自定义Swift工具链


他们教导AppCode在使用非标准Swift工具链(例如, 用于Tensorflow的Swift )时正确使用代码。


建立讯息


在以前的发行版中,我们遇到了一个汇编消息问题,该问题在当前实现的框架中没有解决。 但是,我们无法修复它。 另外,在处理消息的速度,它们的显示,这些消息的格式从一个Xcode版本到另一个版本的频繁更改以及许多其他小事情上,仍然存在问题。 结果,我们教会AppCode直接从Xcode构建系统“按原样”获取程序集消息树,并将其简单地显示在Messages中


建立讯息


结合这些信息,最终找到了一种显示正常构建进度的方法:


构建消息进度


最后,我们还简化了消息过滤,并且与Xcode中的操作相同:


征文过滤器


Mac Catalyst支持


这里的一切都很简单:我们学习了如何使用Mac Catalyst目标,以便可以在运行配置中启动,调试和显示它们。


仅此而已。 与本发行版一样,我们计划在2020.1中将最大的时间花费在IDE的进一步优化上,同时使用最少的新功能。


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


AppCode小组

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


All Articles