Uhh, none :) It's built specifically for Go, and today supports no other languages. I'm not sure when, or even if, we'll do a public plugin API.
2,069 karma · joined May 24, 2014
Uhh, none :) It's built specifically for Go, and today supports no other languages. I'm not sure when, or even if, we'll do a public plugin API.
Regardless, there's nothing like this in Chime and there never will be. But I get that not everyone wants a closed-source tool. There are many open source options, including a number of high-quality macOS native ones.
Lots of reasons for building an editor, but mainly our technical backgrounds with compilers and macOS apps felt like a good combination. Also, there aren't many (any?) macOS-native editors with deep language integration, so it really felt like an under-served market.
I think Swift is there now. There were some very painful migrations, but for the past 2-3 years it has been different. It is true that it's a real pain to use some C-based APIs with it, but those are pretty rare. And, often you can find a Swift wrapper for them if you really need to. I've been using ObjC for 25 years, but I'm now pretty into Swift. I'd go for it.
I've covered this elsewhere, but other languages aren't going to be an immediate focus for us. Possible, but even with LSP it's a lot of work to do something well. And, we still have tons of room for improvement just with Go.
For now, we're 100% focused on delivering a great Go experience.
Offering high-quality language support takes a lot of work, per-language and even per-server.
However, Chime still contains a huge amount of custom language handling stuff, and will for the foreseeable future. LSP on its own is just insufficient for a good experience.
And, it was a huge amount of work to get the AppKit tabs to work in Chime, even though they are supplied by the framework. All the NSWindod tabbing stuff just wasn't built to be flexible for apps that need consistent UI across tabs, like our file navigator widget.
BBEdit is an incredible text editor. If you are working with text on macOS, it's hard to beat. But, I've struggled to use it for even basic programming work. It's just not built for that specific use case so much as general text manipulation.
That's one reason exactly. TextMate is a phenomenal piece of software, and I've used it for years. Will continue to use it probably. In many ways, it was an inspiration for Chime. It can do many things Chime cannot. But, TextMate does not offer the same language-level support, syntax highlighting accuracy and speed. And, I like to think Chime has a more refined UI, but that's a personal thing :)
To be honest, I think the multi-platform products available today are super-compelling. One of the reasons they are so immensely popular. But, I'm glad you're into what we're doing :)
I agree that language-specific tools can seem like a funny choice. But, it's just really hard to support one language well. This is probably why jetbrains does what it does. Of course, they surely have a large shared base, but tooling customized for one language and environment can work well.
We haven't discounted the possibility of expanding to other languages, but the general editor market is so well served that specialized tools just seemed like a better fit for what we were trying to do.
It is true, we're still not quite ready for general availability, but getting Real Close Now. If you'd like to check out the beta, we have contact info at chimehq.com.
As for our design goals, it's true that it can be very hard to put those kinds of things into words. We've tried to convey our aesthetic goals better on our website. Usually, this kind of thing is easier to show than to tell.
We're shooting for fewer features, built with more polish and style. Lots of people don't prioritize that kind of thing from their editor. But, I hope that we can connect with the few that are.
Interesting, clang actually did this too - it itself is a C/ObjC/C++ parser library, which can be used to make a tool.
LLVM is fantastic because, as a language developer, you can focus on your parsing and language-specific features without needing to concern yourself with machine code generation. LLVM does that all for you.