This is a very welcome improvement but I should note the title is a bit clickbaity: using Swift on e.g. Cursor was always possible, it's just that after Microsoft banned forks from accessing the official VSCode marketplace last year you started having to workaround it by downloading and installing the .vsix file manually. Having the extension on the Open VSX Registry sorts this out so you can now install it via the proper way once more. Very happy this finally happened!
Ahh good question. I had to think a while before I understood what you meant. Let me check when I can.
Nice catch.
edit: you are right. The binary version will result in a different argv[0]. Not sure what'd the best solution would be. Hardcoding doesn't make sense, as symlinks also change argv[0], so overriding is not the way to go.
This extension is for "pure" Swift development, not iOS development. I doubt the latter will ever officially happen. It's possible to make it work for iOS at an unofficial capacity though by hooking into the extension's LSP support. We did this at Spotify to enable iOS development in Cursor for Bazel iOS projects: https://github.com/spotify/sourcekit-bazel-bsp
I hate that I need to create an Apple account (with email and phone verification) just to be able download the sdk to use MacOS APIs. To make things worse I tried for like one hour to create an account and couldn't because for some reason I was no receiving the verification email.
I think swift is a really great language from the design perspective.
What makes it unusable outside the apple ecosystem imho is that while the C interop is amazing on paper, it sucks hard in practice due to the abomination of pointer types they build in.
The "all pointers are evil" attitude doesn't help when you want to use a C library and noone will write rewrite all these libraries.
Not to be that agentic coding guy, but I think this will become less of a problem than our historic biases suggest.
For context, I just built a streaming markdown renderer in Swift because there wasn’t an existing open source package that met my needs, something that would have taken me weeks/months previously (I’m not a Swift dev).
Porting all the C libraries you need isn’t necessarily an overnight task, but it’s no longer an insurmountable mountain in terms of dev time.
It's not necessary to rewrite perfectly fine libraries written by exceptional programmers. And whoever thinks it is an easy task (sorry rust guys) is severely suffering from the dunning-kruger effect.
As I understand it, though, it's really not well suited to server-side Swift development. Doesn't leverage SPM, requires Xcode, etc. I'd LOVE a revival of AppCode (or Swift support in CLion) that would facilitate server-side Swift development.
I recently started to enjoy working in Xcode more than before, using Swift. Not sure what changed, but it seems more responsive for lack of a better expression.
Little by little, Xcode is making progress. Probably a lot of the improvements come from the open-source and actual work on its build system… It’s still far from perfect, but at least it’s getting better.
Now if only they'd open up iOS development so we can get AppCode back.
The primary thing keeping me away from trying it again is I have to use Xcode instead of my beloved JetBrains IDEs where I know all the keyboard shortcuts.
Yes, But an iOS app requires a helluva lot more than just the Swift language. For example, Metal has zero support so you have to use ft=cpp and disable lsp diagnostics. And you can completely forget Xcode’s wonderful Metal debugger entirely.
Otherwise swift works just like any other clang/llvm project and the tooling is basically the same.
Yes but most people are not dropping down to Metal support unless they're doing custom effects or developing a game engine. Most apps could be developed outside of Xcode just fine.
Is there an open—source Swift IDE that can modify itself without restarting? (written in Swift) I loved Oberon µSystems Oberon/F aka Component Pascal for that capability.
TLDR: same VScode extension now listed on OpenVSX registry, for Eclipse Theia et al.
But it's unclear if they tested it. For me, it fails basic configuration steps on the simplest project. Plugin compatibility between VSCode and others seems iffy.
Couple this with Xcode 26.4 AI lacking agentic features and you get Swift programmers being left behind.
Package introspection fails with an error that there are other swiftpm processes running when there aren't in a clean project with no .folders - probably a race with itself. That means no automatic configuration for tests or executables, debugging, etc. Just "build all"
This is a very welcome improvement but I should note the title is a bit clickbaity: using Swift on e.g. Cursor was always possible, it's just that after Microsoft banned forks from accessing the official VSCode marketplace last year you started having to workaround it by downloading and installing the .vsix file manually. Having the extension on the Open VSX Registry sorts this out so you can now install it via the proper way once more. Very happy this finally happened!
I'm building iOS apps without opening Xcode. All in VSCode and CLI build tools. This is excellent!
Use swift as a scripting language without the slow start time:
Swift Caching Compiler - https://github.com/jrz/tools
Is “$0” (`argv[0]`) correct when the pre-compiled binary is launched instead of the script?
Ahh good question. I had to think a while before I understood what you meant. Let me check when I can.
Nice catch.
edit: you are right. The binary version will result in a different argv[0]. Not sure what'd the best solution would be. Hardcoding doesn't make sense, as symlinks also change argv[0], so overriding is not the way to go.
1 reply →
This is huge, long time coming. Interested to see if there is SwiftUI support.
This extension is for "pure" Swift development, not iOS development. I doubt the latter will ever officially happen. It's possible to make it work for iOS at an unofficial capacity though by hooking into the extension's LSP support. We did this at Spotify to enable iOS development in Cursor for Bazel iOS projects: https://github.com/spotify/sourcekit-bazel-bsp
You also can't do Android (app) development outside Android Studio.
15 replies →
What's the point then? Because nobody use Swift outside of iOS app development.
2 replies →
No so straightforward, but there is project that parses xcodebuild logs and pass them to lsp to provide LSP for SwiftUI projects https://github.com/SolaWing/xcode-build-server
Also I build extra tooling to facilitate iOS development in VSCode https://github.com/sweetpad-dev/sweetpad
Thanks for your great work on sweetpad. I’ve always been a bit curious where the name came from though.
1 reply →
What type of support do you mean? Language checking? Live previews?
I hate that I need to create an Apple account (with email and phone verification) just to be able download the sdk to use MacOS APIs. To make things worse I tried for like one hour to create an account and couldn't because for some reason I was no receiving the verification email.
I think swift is a really great language from the design perspective.
What makes it unusable outside the apple ecosystem imho is that while the C interop is amazing on paper, it sucks hard in practice due to the abomination of pointer types they build in.
The "all pointers are evil" attitude doesn't help when you want to use a C library and noone will write rewrite all these libraries.
Some recent fixes went into 6.2.3 which really help with C interop, this post shows what that looks like in practice https://www.swift.org/blog/improving-usability-of-c-librarie...
These look mostly like toy examples where the type of the pointer can be inferred from the return values of the functions.
How do I call this function in swift?
SDL_AudioSpec* SDL_LoadWAV_RW(SDL_RWops * src, int freesrc, SDL_AudioSpec * spec, Uint8 * * audio_buf, Uint32 * audio_len);
1 reply →
yup, it got much better recently
Not to be that agentic coding guy, but I think this will become less of a problem than our historic biases suggest.
For context, I just built a streaming markdown renderer in Swift because there wasn’t an existing open source package that met my needs, something that would have taken me weeks/months previously (I’m not a Swift dev).
Porting all the C libraries you need isn’t necessarily an overnight task, but it’s no longer an insurmountable mountain in terms of dev time.
My favorite part is the AI will still estimate projects in human-time.
“You’re looking at a multi-week refactor” aaaaand it’s done
1 reply →
It's not necessary to rewrite perfectly fine libraries written by exceptional programmers. And whoever thinks it is an easy task (sorry rust guys) is severely suffering from the dunning-kruger effect.
Very high quality comment that is being downvoted unfairly because it defends AI. HN is on the wrong side of history on this one.
1 reply →
i was hoping this was going to be AppCode rising from the grave but nah it's just more rebranded versions of VSCode. nothing new here
The free Kotlin Multiplatorm plugin provides 1st class Swift support in IntelliJ IDEA. It’s heavily based on old AppCode codebase.
As I understand it, though, it's really not well suited to server-side Swift development. Doesn't leverage SPM, requires Xcode, etc. I'd LOVE a revival of AppCode (or Swift support in CLion) that would facilitate server-side Swift development.
I recently started to enjoy working in Xcode more than before, using Swift. Not sure what changed, but it seems more responsive for lack of a better expression.
Little by little, Xcode is making progress. Probably a lot of the improvements come from the open-source and actual work on its build system… It’s still far from perfect, but at least it’s getting better.
Now if only they'd open up iOS development so we can get AppCode back.
The primary thing keeping me away from trying it again is I have to use Xcode instead of my beloved JetBrains IDEs where I know all the keyboard shortcuts.
But can I develop iOS apps with vim? As in, easy to execute commands for debugging, running app and tests?
If you’re willing to try Neovim I’ve been using xcodebuild.nvim for a couple of years (for macOS not iOS, but they’re both supported).
https://github.com/wojciech-kulik/xcodebuild.nvim
Yes, But an iOS app requires a helluva lot more than just the Swift language. For example, Metal has zero support so you have to use ft=cpp and disable lsp diagnostics. And you can completely forget Xcode’s wonderful Metal debugger entirely.
Otherwise swift works just like any other clang/llvm project and the tooling is basically the same.
Yes but most people are not dropping down to Metal support unless they're doing custom effects or developing a game engine. Most apps could be developed outside of Xcode just fine.
1 reply →
Yes, provided you are running vim on macOS, and calling into the xcode command line tooling.
Is there an open—source Swift IDE that can modify itself without restarting? (written in Swift) I loved Oberon µSystems Oberon/F aka Component Pascal for that capability.
Or am I going to have to vibe-code one.
That is a very specific set of requirements. I doubt it.
If you could reimplement Emacs in Swift that’d be great
The loss of AppCode from Jetbrains was a huge blow to my motivation to continue working with Swift. Xcode just can't compare.
Apparently most folks were happy enough with XCode and didn't bother to buy AppCode licenses, hence why JetBrains gave up on it.
I've recently been using this plugin [1], which is still under development but is an adequate stopgap until a better solution comes along.
[1]: https://plugins.jetbrains.com/plugin/22150-noctule-the-swift...
[flagged]
I don't even see the code. All I see is blonde, brunette, redhead.
What the heck type of software are you shipping that you can just avoid looking at the slop the LLM serves you?
1 reply →
We’ve used SweetPad and it worked fine for us, so this doesn’t change much.
Everyone should post to open-vsx by default.
TLDR: same VScode extension now listed on OpenVSX registry, for Eclipse Theia et al.
But it's unclear if they tested it. For me, it fails basic configuration steps on the simplest project. Plugin compatibility between VSCode and others seems iffy.
Couple this with Xcode 26.4 AI lacking agentic features and you get Swift programmers being left behind.
> Couple this with Xcode 26.4 AI lacking agentic features
A blessing, some might argue.
In what way does it fail?
Package introspection fails with an error that there are other swiftpm processes running when there aren't in a clean project with no .folders - probably a race with itself. That means no automatic configuration for tests or executables, debugging, etc. Just "build all"
1 reply →