As someone with less experience with the Swift compiler and pivoted from iOS dev to compiler dev, Xcode is my preferred way of editing Swift source files. Xcode also has reasonable support for editing C++ files, which allows me to locate the code I'm trying to find using a familiar UI. I would certainly like to use the --xcode option, but most of the times I tried to use it, something about it is broken (as mentioned in the initial post). In fact, I found this post while trying to find a solution to fix --xcode for my new Mac.
I run all the unit tests through command line, but during active development I find it more convenient to setup/reuse/enable/disable breakpoints through Xcode, and quickly change which command line argument I pass to swift-frontend/other targets when I test my changes on the few small sample program I use to verify/debug the thing I'm currently working on. I can probably setup command line alias for all the things I need to do, but Xcode allows me to just click a few buttons and quickly switch between the different arguments I need to pass (especially path to the sample source files).
The ninja + Xcode workaround works, but needing to create a new target and scheme for everything I want to run is... very tedious, and I don't like the fact that I have to find/type the correct path to everything. It's also a discovery problem: with an automatically generated project through --xcode, I can see all the things I could run, and make a guess about which scheme might fit my needs. For manual setup, I have to set one up, try it, and repeat until I find the right target to run...
Some times I forgot to rebuild both ninja and Xcode and find myself debugging an old build, so in conclusion, building using ninja + auto config Xcode project for ninja would be what I wish for.