CodeEditorView:跨平台SwiftUI代码编辑器,支持语法高亮与多系统适配

SwiftUI code editor view for iOS, visionOS, and macOS

分支2Tags11
当前项目代码仓暂无内容

SwiftUI 代码编辑器视图,适用于 iOS、visionOS 和 macOS

平台支持 Swift 版本

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 许可下分发 — 请查看许可文件了解详细信息。

项目介绍

SwiftUI code editor view for iOS, visionOS, and macOS

定制我的领域