Swiftpack.co - ChimeHQ/ChimeKit as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by ChimeHQ.
ChimeHQ/ChimeKit 0.1.1
Framework for building Chime extensions
⭐️ 34
🕓 4 weeks ago
macOS linux macOS iOS
.package(url: "https://github.com/ChimeHQ/ChimeKit.git", from: "0.1.1")

License Platforms Documentation

ChimeKit

ChimeKit provides the functionality needed to build extensions for Chime, the editor for macOS. You can use it to provide semantic features, display views, and integrate with ExtensionKit. Chime can do a lot more with extensions.

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

Overview

Chime's extensions are based on ExtensionKit. They are written in Swift and SwiftUI. ChimeKit also includes a system for integrating Language Server Protocol servers with the extension API. For the most part, ChimeKit abstracts away all of the ExtensionKit details. You program against the ChimeKit APIs, not the ExtensionKit primitives. However, ExtensionKit does impose some requirements related to security and distribution you must be aware of.

ChimeKit development requires Chime 2.0, Xcode 14, and macOS Venutra (13.0). However, extensions should try to match ChimeKit's macOS Monterey (12.0) requirement.

📖 Documentation is available in DocC format. But, please don't be shy to reach out to us - we'll help!

Integration

ChimeKit supports different integration options, all available via SPM. Be sure to read more in the documentation, as it isn't as straightforward as a typical SPM package.

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

Our Philosophy

We want to provide a simple user experience for extensions, particularly for language support. We don't think it's great to have four different extensions for one language. So, while we will not gatekeep, we'll have a very strong bias towards one extension per language.

LSP is pervasive in language support extensions. Many IDEs use a model of one extension per language server. ChimeKit allows for multiple servers per extension. We think of LSP servers as an implementation detail of language support. Coordinating the behaviors of multiple servers is the job of an extension, not the user.

All of Chime's extensions are open source and we will always begin work on new language support as open source projects.

Suggestions or Feedback

We'd love to hear from you! Get in touch via twitter, an issue, or a pull request.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

GitHub

link
Stars: 34
Last commit: 4 hours ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

v0.1.1
4 weeks ago
  • New API for finding LSP executable in user path
  • Update to LanguageServerProtocol 0.7.9
  • UTI for Terraform
  • Load capabilities on-demand
  • UTI for HCL

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics