Xcode Code Completion slow when using Juce

Anyone else come across this issue?

I’ve tested this with other languages / format (Swift / Console Application) and the code completion is practically immediate. Except when I use Xcode loaded through Projucer, the code sense takes a very long time to pop up.

Any solutions / recommendations?
Thanks

5 Likes

I have the same issue on occasions. Sometimes it’s super fast, sometimes I hit escape to trigger completion and wait for a few seconds before getting anything back (and sometimes it straight up tells me there are no completions!)

Xcode was garbage for me across many libraries/frameworks in regards to autocomplete. Especially Juce and UE4. Now I’m using Visual Studio on Windows 10 for my main dev machine and autocomplete is 1000x times faster. But, I have to deal with all kinds of other quirks in Windows. You really never can win.

1 Like

I’m using Xcode daily at work with Xcode 8 and Xcode 9. (this is on 6-core fast machine)
On my laptop I’m using Xcode 10 with a modern 2018 13" MBP.

Most of my work is with JUCE while I’m now doing some personal iOS app with Swift.

Overall, Xcode is mixed-bag for completion (sometimes everything works fast, sometimes slow) I don’t know what projects you’ve used but I didn’t see that much performance difference between JUCE based cpp project and a Swift project (workspace…) with Firebase pods.

Keep in mind that JUCE default projects are with many modules. so it is indeed has A LOT of headers.

Another thing I see is conflicts between Xcode versions, If you’re using Xcode 9 and 10, you’d might be better deleting the ~/Library/Developer/Xcode/DerivedData/<slowed_down_project>
sometimes it breaks for me if I switch to much between Xcodes.

3 Likes

I just want to add the option to use a third-party IDE. I use AppCode on Mac OS and it is much much faster in terms of autocompletion than Xcode, a real pleasure to work with. “Downside” of this solution is that you obviously have to pay for it while Xcode and VS come for free, but maybe the hours of work you save thanks to productivity enhancement are worth the price you pay.

2 Likes

+1 for AppCode - much faster and more reliable auto completion. I found Xcode often takes me to the wrong class if it’s named the same as system/internal classes. Never had that issue with AppCode.

1 Like

Simply don’t use the Projucer to open your Project :wink:

All the Projucer does when clicking the Xcode button is to generate an Xcode project file in your projects Builds/MacOSX/ folder and then launch Xcode with this project file. You can do it by hand by starting AppCode and open the same .xcodeproj file you find in that folder with the File->Open dialog. Thats it!

1 Like

If you set .xcodeproj files to open with AppCode by default (right click on an xcodeproj file, click ‘get info’, under ‘open with’ click ‘change all…’), the ‘Open Xcode Project’ button in the Projucer will open AppCode instead.

4 Likes

Nice, didn‘t know that!

Thanks guys

I’ve found that Xcode works a lot faster if the JUCE modules are in a child of your project’s parent folder, for example if your Project.jucer file is in a folder called MyProject, the modules would be in MyProject/JuceLibraryCode/modules.

This can be achieved by setting “Copy the module into the project folder” in Projucer.

YMMV though.

Ok cool, I’ll check that out. Thanks Jamie