SwiftUI code editor view for iOS, visionOS, and macOS
当前项目代码仓暂无内容
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
SwiftUI 代码编辑器视图,适用于 iOS、visionOS 和 macOS
CodeEditorView 软件包提供了一个 SwiftUI 视图,实现了适用于 iOS、visionOS 和 macOS 的代码编辑器,其视觉风格灵感来源于 Xcode,并基于 TextKit 2。当前支持的功能包括可配置主题的语法高亮、行内消息报告(警告、错误等)、括号匹配、匹配括号插入、当前行高亮、常见的代码编辑操作以及缩略图。
在 macOS 上,CodeEditorView 还支持以下功能:(1)显示关于标识符的信息(例如类型信息和提供的 Markdown 格式文档),以及(2)代码补全。这种支持不依赖于底层信息是如何计算的——常见的做法是使用基于语言服务器协议(LSP)的语言服务器。这项功能最终也会在 iOS 上得到支持。
示例应用程序的截图
以下是 macOS 上的默认深色主题。与 Xcode 类似,屏幕右侧有一个行内视图显示消息,点击后会弹出一个较大的覆盖层以显示更多信息。右侧的缩略图提供了编辑文本的概览。

以下是 iOS 上的默认浅色主题。

如何使用
该视图的典型用法如下。
import SwiftUI
import CodeEditorView
import LanguageSupport
struct ContentView: View {
@State private var text: String = "My awesome code..."
@State private var position: CodeEditor.Position = CodeEditor.Position()
@State private var messages: Set<TextLocated<Message>> = Set()
@Environment(\.colorScheme) private var colorScheme: ColorScheme
var body: some View {
CodeEditor(text: $text, position: $position, messages: $messages, language: .swift())
.environment(\.codeEditorTheme,
colorScheme == .dark ? Theme.defaultDark : Theme.defaultLight)
}
}
演示应用
要了解 CodeEditorView 的实际应用,请查看包含跨平台演示应用的仓库。
文档
更多信息,请查阅包文档。
状态
我认为此包仍处于预发布质量阶段,但就目前而言,它主要包含一系列已知的错误,这使其无法成为 1.0 版本。
许可
版权所有 [2021..2025] Manuel M. T. Chakravarty。
在 Apache-2.0 许可下分发 — 请查看许可文件了解详细信息。