Swift can be incorporated in CLion as the separate plugin. You can use CLion as Swift IDE on Linux and macOS.
To enable the Swift support:
- Download the plugin.
- In the Settings/Preferences dialog (Ctrl+Alt+S) box, select the Plugins option and follow the Install plugin from disk procedure to enable it in CLion.
- Download and set-up the Swift toolchain.
- In the Settings/Preferences dialog (Ctrl+Alt+S) box, expand the node and select the Swift option of the left pane.
- On the right pane, specify the Swift SDK home directory (on macOS the default is /Library/Developer/Toolchains/swift-latest.xctoolchain, and on Linux it’s empty): In the text field, type the path to the Swift SDK directory or click the button to choose.
- If you want to enable the Swift debugger, select the Use Swift debugger checkbox.
Note: currently you need to switch-off the debugger when you are working with non-Swift programs.
To create a new Swift project using a project template
- On the main menu, choose the option.
- In the dialog that opens, under Other node of the left pane select Swift Executable.
- Go to the right pain. In the text field specify the path to the project and the project's name. Do nothing to use the default settings.
- Click create to proceed.
- Upon the system prompt, tell CLion where to open your project: in the current or new window.
- The resulted CMake configuration file may look as follows:
Using CMake Live templates
Since CLion is based on CMake project model you can create a project using a special CMake live template that adds a Swift build target: where the
SWIFT_SDK variable expands to the value specified in the settings.
With Swift plugin enabled, CLion supports the set of the following features:
- Parse/resolve classes in project and standard library. Note that non-standard libraries are not resolved yet in Swift plugin for CLion
- Code highlighting and completion
- Swift code formatter with a separate set of Swift code style settings
- Navigation actions and File structure view
- Find usages
- Rename refactoring
- Override/Implement for functions and protocols