Build Status Platforms Documentation Discord

ChimeKit

ChimeKit 提供了为 macOS 编辑器 Chime 构建扩展所需的功能。您可以使用它来提供语义功能、显示视图,并与 ExtensionKit 集成。Chime 可以通过扩展做更多的事情。

ChimeKit logo: a green hexagon connected to a grey hexagon with a puzzle-piece cutout.

概述

Chime 的扩展基于 ExtensionKit。它们使用 Swift 和 SwiftUI 编写。ChimeKit 还包含一个系统,用于将 Language Server Protocol 服务器与扩展 API 集成。在大多数情况下,ChimeKit 抽象化了所有 ExtensionKit 的细节。您针对 ChimeKit API 进行编程,而不是 ExtensionKit 的原语。但是,ExtensionKit 确实施加了一些与安全和分发相关的要求,您必须注意。

ChimeKit 开发需要 Chime 2.0、Xcode 14 和 macOS Ventura (13.0)。但是,扩展应尽量符合 ChimeKit 的 macOS Monterey (12.0) 要求。

📖 文档以 DocC 格式提供。但是,请不要犹豫与我们联系 - 我们会提供帮助!

集成

ChimeKit 支持不同的集成选项,所有选项均可通过 SPM 获得。请务必阅读文档以了解更多信息,因为它不像典型的 SPM 包那样简单直接。

dependencies: [
    .package(url: "https://github.com/ChimeHQ/ChimeKit", branch: "main")
]

我们的理念

我们希望为扩展提供简单的用户体验,特别是对于语言支持。我们认为为一个语言提供四个不同的扩展不是一个好的做法。因此,虽然我们不会设限,但我们会有非常强烈的偏向,即每种语言一个扩展。

LSP 在语言支持扩展中非常普遍。许多 IDE 使用每个语言服务器一个扩展的模型。ChimeKit 允许每个扩展使用多个服务器。我们认为 LSP 服务器是语言支持的实现细节。协调多个服务器的行为是扩展的工作,而不是用户的工作。

Chime 的所有扩展都是开源的,我们将始终以开源项目开始新的语言支持工作。

贡献与协作

我非常乐意听到您的反馈!Issue 或 Pull Request 非常好。Discord 服务器也可用作实时帮助,但我强烈倾向于以文档的形式回答。

我更喜欢协作,并且如果您有类似的项目,我很乐意找到合作的方式。

我更喜欢使用制表符进行缩进以提高可访问性。但是,我宁愿您使用您想要的系统并提交 PR,也不希望您因为空格而犹豫。

通过参与本项目,您同意遵守贡献者行为准则