问题标签 [sourcekit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
741 浏览

ios - 当文件在多个选项卡中打开时,Xcode 失去语法高亮显示

自 Xcode 9.3.0 以来,我遇到了语法高亮/着色的问题。我经常在多个标签中工作。有时我会在多个选项卡中打开同一个文件以引用文件的不同部分,或者如果我将一个与调试器一起使用,另一个用于参考。

从 9.3.0 开始,当我启动我的应用程序并在多个选项卡中打开一个文件时,我丢失了部分语法突出显示。它似乎主要是自定义类(黄昏配色方案中的绿色)。这对于调试来说可能非常乏味,因为我将 Xcode 设置为在遇到断点时打开预设的“调试”选项卡。基本上我会打开一个文件,启动应用程序,点击断点,Xcode 在“调试”选项卡中打开同一个文件,当我最需要它时,我会失去语法高亮,进行调试。

我尝试了以下方法 - 删除派生数据文件夹 - 退出 Xcode - 重新启动计算机 - 将 $(SRCROOT) 添加到标题搜索路径 - 清理项目 - 清理构建文件夹

请注意,我也在一个只有几个类和几行代码的全新项目上尝试过这个。它仍然发生。

另请注意,我尝试在一个全新的用户帐户上安装新版本的 Xcode,没有我以前的所有 xcode 设置和偏好。它仍然发生。

我也下载了 9.3.1 并试了一下。它仍然发生

这真让我抓狂。我绝对很想找到解决方案。我希望这可以成为我的英雄的老板源工具包专家!

工作语法高亮示例: 语法着色工作

建成后的样子: 在此处输入图像描述

更新:2018 年 5 月 18 日:这是正在发生的事情的视频 https://youtu.be/fpWV_x17J7U

更新:2018 年 5 月 18 日在 9.2.0 上测试,没有发生,仅在 9.3.0 和 9.3.1 上

更新:2018 年 5 月 18 日刚刚在朋友的电脑上进行了测试,可以确认他也发生了这种情况。

重现步骤。

• 更新到 Xcode 9.3.0 或 9.3.1

• 下载并打开这个基本示例项目:https ://github.com/provmusic/syntaxHighlightingBug

• 打开 ViewController.swift

• 构建 -> 语法着色仍保持完整

• 打开一个新选项卡,现在两个选项卡中都有 ViewController.swift

• 构建 -> 语法着色中断

0 投票
1 回答
396 浏览

swift - Error in backend: invalid llvm.linker.options building SourceKit-LSP on Ubuntu 18.10

I am following this tutorial in order to get Visual Studio Code and SourceKit-LSP integrated on Ubuntu 18.10, however, I got stuck at building sourcekit-lsp project.

The error I'm getting:

I'm not sure if its relevant, but after typing Swift in the console I get the following errors:

I would appreciate if anyone could give me a hint how to solve the problem. The only thing that came up to my mind was reinstalling clang, but it hasn't solved the issue.

0 投票
2 回答
2523 浏览

sourcekit - XcodeKit 和 SourceKit

除了我阅读的几篇文章和官方页面https://developer.apple.com/documentation/xcodekit#topics https://github.com/apple/swift/tree之外,我没有 XcodeKit 和 SourceKit 的经验 /master/tools/SourceKit

我试图了解两者之间的差异以及他们能够做什么。

我认为 XcodeKit 本质上让您可以向 Xcode 菜单添加命令,并可以通过创建应用扩展来与您打开的源代码进行交互,然后您也可以通过 App Store 分发该扩展。据我所知,XcodeKit 只允许您从当前聚焦的文件(不是项目中的所有文件)中获取信息,然后您可以获得选定的文本等......至少这是我在 Xcode 9 之前阅读的内容,不确定是否事情现在好多了。

SourceKit 也与源代码交互,但看起来更强大但更底层。

我想知道的是:

  • SourceKit 是否可以访问您在打开的项目中拥有的所有 Swift 和 ObjC 类,然后从中提取信息?例如,假设我想提取结构和类、每个类的方法等信息,然后从中生成某种输出。我如何使用 SourceKit(或 XcodeKit?)来做到这一点?
  • 任何指向示例的链接都会很棒!
  • SourceKit 仍然是实际的并得到 Apple 的支持吗?

https://github.com/apple/swift/blob/master/tools/SourceKit/docs/Protocol.md

谢谢

0 投票
1 回答
499 浏览

swift - 没有这样的模块 'PackageDescription' sourcekitd - Ubuntu

我无法在 Visual Studio Code 上配置 SourceKit-LSP。Sourcekit 发现 'PackageDescription' 模块的问题,即使它可以找到一些核心模块,如 'Foundation'、'FoundationXML'、'DispatchIntrospection' 等。

0 投票
1 回答
144 浏览

swift - 以最少的工作和维护在 Swift 日志行中捕获局部变量

我正在尝试将局部变量值/名称添加到我的 Swift 日志行中。开箱即用的 Swift 提供了一种很好的方式来装饰日志行#file#function无需显式的努力。我还想更进一步,在日志站点上收集范围内的所有局部变量。

撇开这是否是一个好主意(性能、安全性、隐私、线程安全等)不谈,自动将局部变量字典传递给日志函数的最佳方法是什么?我已经有了一个Mirror基于 - 的解决方案,一旦捕获它们就可以对其进行编码。看来我的选择是:

  1. 建议 Swift 团队添加一个#localVars特殊的文字
    似乎不太可能,他们的盘子里已经有很多了,而且我可能是唯一想要它的人
  2. Fork Swift 并实现我自己的#localVars特殊文字
    跟上对 Swift 的更改可能比手动将局部变量的字典添加到我的日志行中更多的工作
  3. 等待 Swift 编译器插件成为一件事
    可能会很长一段时间,也许永远
  4. 在编译之前构建一个基于 SourceKit 的工具来注入本地 var 映射
    可能是最可行的选择,但也有其挑战。如何编辑转换前的版本但让 Xcode 编译转换后的版本?我可以只转换自上次转换后我编辑的文件吗?Xcode 是否索引我的文件的转换前或转换后版本?
  5. 继续手动
    在数千行日志中编写(并维护和遍历)烦人的局部变量字典。啊
  6. 忘记整个想法
    那将是一个遗憾。在我的事件日志中包含本地人(即使只是在开发中运行时)使这些日志更容易理解

我真的希望有人有一个绝妙的建议,因为上述选项似乎都没有启发性

0 投票
1 回答
251 浏览

swift - 在 Ubuntu WSL 上构建 sourcekit-lsp 时出错

我正在尝试在我的 Ubuntu WSl 上构建 sourcekit-lsp。安装成功 swift swift-5.2.5-RELEASE-ubuntu20.04

并且还从 master 分支克隆sourcekit-lst ,两者都安装了,按照文档sudo apt install libsqlite3-dev libncurses5-dev中的每一步,但是在构建时我得到了这个错误。

swift build -Xcxx -I/home/amal/swift-5.2.5-RELEASE-ubuntu20.04/usr/lib/swift -Xcxx -I/home/amal/swift-5.2.5-RELEASE-ubuntu20.04/usr/lib/swift/Block

知道我做错了什么吗?请帮忙。

0 投票
0 回答
19 浏览

xcode - 如何覆盖 SourceKit 的 clang 路径?

在 Xcode 中,我可以轻松地覆盖CC=...在 .xcconfig 文件中使用的 clang 路径。但是,此设置似乎不适用于 SourceKit。任何想法如何为 SourceKit 使用自定义 clang 路径?