CodeEditorView
包提供了一个 SwiftUI 视图,该视图实现了适用于 iOS、visionOS 和 macOS 的代码编辑器,其视觉风格灵感来自 Xcode,并且基于 TextKit 2。目前支持的功能包括:使用可配置主题的语法高亮、内联消息报告(警告、错误等)、括号匹配、匹配括号插入、当前行高亮显示、常用代码编辑操作以及迷你地图。
在 macOS 上,CodeEditorView
还支持 (1) 显示有关标识符的信息(例如,类型信息和以 Markdown 格式提供的文档)以及 (2) 代码补全。此支持独立于底层信息的计算方式——一种常见的选择是使用基于语言服务器协议 (LSP) 的语言服务器。 此功能最终也将在 iOS 上得到支持。
这是 macOS 上的默认深色主题。与 Xcode 中一样,消息在屏幕右侧有一个内联视图,该视图会弹出一个更大的叠加层以显示更多信息。右侧的迷你地图提供了已编辑文本的轮廓。
以下是 iOS 上的默认浅色主题。
该视图的典型用法如下。
import SwiftUI
import CodeEditor
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 许可证分发 — 有关详细信息,请参见许可证文件。