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

性能表现
很难确定特定的修复对速度有多大影响-这与测试项目的数量及其复杂性无关。 从2019.3开始,一切变得更加轻松,因为在发布准备期间,我们收到了很多反馈,认为性能确实得到了改善。 这是加速发生的事情:
- 在纯Swift上的项目和混合代码的项目中突出显示,导航和自动完成。 这么说吧-与2019.2。
- 有一个缓存阶段,即“处理Swift模块”。 IDE所需的Swift模块的接口(最高Xcode 11)在工具链中的二进制文件中,并且它们的文本表示形式必须通过SourceKit获得。 SourceKit的运行速度很慢,如果对于系统框架,我们已经在安装程序中放置了现成的缓存(但是,对于每个Xcode版本,都必须对其进行更新),则这不适用于项目本身的框架。 结果,他们发现了一些不是最优化的部分,并进行了更正,使其开始工作得更快。
改进的另一部分仍在运行中,其中有很多。 这些是尚不存在的其他高速缓存,以及对构造设计符号的算法的改进,等等。 这些已经是2020.1的计划。
语言支持
语言任务与绩效工作具有相同的优先级,因此团队的一部分会监视快速演变的变化,并在接受后立即将其集成到AppCode中。 该版本支持:
修改代码的动作
他们愈演愈烈。 AppCode团队正在成长,并且为了向该课程介绍新的开发人员,我们通常会提供一些小而有趣的新功能。 这次是Swift的一系列动作,您可以使用它们:
- 结合(反之亦然)将变量声明与为其分配的值结合起来:

- 将几个变量的声明拆分为单独的变量:

- 拆分/合并嵌套的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小组