美文网首页
sourcekit的那些事

sourcekit的那些事

作者: 笑破天 | 来源:发表于2020-10-26 23:15 被阅读0次

在思考分析swiftlint是如何实现代码格式控制的时候发现,是依赖于sourcekit实现的。sourcekit是个什么东西?
sourcekit英文介绍
sourcekit中文博客

1、是什么?

SourceKit 是一套工具集,使得大多数 Swift 源代码层面的操作特性得以支持,例如源代码解析、语法高亮、排版(typesetting)、自动补全、跨语言头文件生成等。

ps:在 Swift 中使用「⌘ + 点击」一个定义在 Obj-C 中令牌,Xcode 将会触发生成一个类 Swift 头文件。称其为类 Swift 是因为该生成的文件并非有效的 Swift3,但至少显示了等效于 Obj-C 令牌的 Swift 语法。

2、什么原理?

SourceKit 借助 Clang 中称作 USR(Unified Symbol Resolution,即统一符号解析)的特性,为源代码令牌(token,例如类,属性,方法等)对应一个唯一标识符。这使得你可以使用 「⌘ + 点击」Xcode 编辑器中任何一处令牌,即可以导航至其定义处。USR 现在甚至更加强大了,可以跨语言(Swift/Obj-C)统一一个代表。
ps:代码颜色全变白了,"cmd+点击"没法跳转了,都是SourceKitService出问题了

3、怎么使用?

SourceKit 是一个私有且无文档的工具,无法直接使用,可以使用一个小技巧让SourceKit 打印日志。

export SOURCEKIT_LOGGING=3 && /Applications/Xcode6-Beta2.app/Contents/MacOS/Xcode //用该命令启动Xcode

这有个使用的小demo

4、相关问题?

SourceKitService 内存占用过高,Swift 代码大部分都会变成白色,代码提示和类型推断都失效
问题
解决:
1、在活动监视器里找到 SourceKitService 双击它,看它打开了哪些目录,去把缓存删除然后强制结束进程,然后重启xcode
2、少写类型推代码,

let array = ["": [""], "": [""], "": [""], "": [""], "": [""], "": [""] ... ]
//改成
let array: [String: [String]] = ["": [""], "": [""], "": [""], "": [""], "": [""], "": [""] ... ]

let userToken = (dataModel?.id ?? "") + (dataModel?.token ?? "") + (dataModel?.timestamp ?? "") + ...
//改成
let userID = dataModel?.id ?? ""
let token = dataModel?.token ?? ""
let timestamp = dataModel?.timestamp ?? ""
...
let userToken = userID + token + timestamp + ...

相关文章

  • sourcekit的那些事

    在思考分析swiftlint是如何实现代码格式控制的时候发现,是依赖于sourcekit实现的。sourcekit...

  • 流沐自制服装工作室:因为一部电影而辞职走上创业之路的巨蟹女孩的故

    那些念念不忘的事,那些耿耿于怀的事 那些甘之如饴的事,那些刻骨铭心的事 那些你的事,我的事,那些渺小而伟大的...

  • 那些事,那些事(35)

    星期三下课后,同桌艳丽问贾月:“这星期你还回家吗?”“不回家了,回家一趟挺麻烦,这星期在学校。”贾月回答。艳丽又说...

  • 那些事,那些事(32)

    晚上贾月和王静在大娘家东屋住。贾月给王静讲起家里的事。贾月家很穷,贾月大伯家很富,十里八村有名的富裕。对于大伯贾月...

  • 那些宅的事,那些错的事

    一. 郑未明低着头,他正试图不用手把脚蹭进鞋里,耳边是母亲絮絮叨叨的话语,“未明!和你说了去辅导班要早点,你怎么现...

  • 那些小事

    那些无聊的事 那些小小的事 那些奇怪的事 那些每天的事 都因为你,变得有趣。 特别特别有趣

  • 那些年的那些事

    年近了,思绪却远了. 想起自己和女儿一般年纪的时候急盼过年,那是90年我正10岁,物质相对贫乏,过年最大的欢喜就是...

  • 那些年的那些事

    “#本文参加‘青春’大赛,本人保证本文为本人原创,如有问题则与主办方无关,自愿放弃评优评奖资格” 作者姓名...

  • 那些年的那些事

    青春是歌,唱出最美的旋律;青春如诗,谱写最美篇章;青春似沙,沉淀最美回忆。那些年那些事,愿青春不老,我们不散。 高...

  • 那些年的那些事

    那一年,我们五年级,我们相遇了。因为校长的一句分班,就这么的,我们相遇了。 我们勾肩搭背的身影并不罕见,我们嬉笑的...

网友评论

      本文标题:sourcekit的那些事

      本文链接:https://www.haomeiwen.com/subject/wtozmktx.html