Skip to content

vknabel/vscode-swiftformat

Repository files navigation

SwiftFormat for VS Code

Prettify your Swift code automatically via SwiftFormat. You can use SwiftFormat installed globally or via the Swift Package Manager.

There are two formatters for Swift code. Use this extension if you wish to use nicklockwood/SwiftFormat. Use apple-swift-format if you want to use apple/swift-format.

Global Installation

You can install SwiftFormat globally using Homebrew or Mint

# Using Homebrew
$ brew update && brew install swiftformat
# Using Mint
$ mint install nicklockwood/SwiftFormat

Local Installation

Add the package to your dependencies in Package.swift:

// swift-tools-version:4.2

import PackageDescription

let package = Package(
    name: "Komondor",
    products: [ ... ],
    dependencies: [
        // My dependencies
        .package(url: "https://github.com/orta/PackageConfig.git", from: "0.0.1"),
        // Dev deps
        .package(url: "https://github.com/orta/Komondor.git", from: "0.0.1"),
+        .package(url: "https://github.com/nicklockwood/SwiftFormat.git", from: "0.35.8"),
    ],
    targets: [...]
)

Configuration

Config Type Default Description
swiftformat.enable Bool true Whether SwiftFormat should actually do something.
swiftformat.onlyEnableOnSwiftPMProjects Bool false Requires and uses a SwiftFormat as SwiftPM dependency.
swiftformat.onlyEnableWithConfig Bool false Only format if config present.
swiftformat.path [String] or String swiftformat The location of the globally installed SwiftFormat (resolved with the current path if only a filename).
swiftformat.options [String] [] Additional options for SwiftFormat.
swiftformat.configSearchPaths [String] [".swiftformat"] Possible paths for SwiftFormat config.

FAQs

How do I enable formatting on type?

To enable formatting on while typing code without saving, simply enable the setting "editor.formatOnType": true. In case you only want to enable it when editing Swift files, you can override as [swift] language specific setting.

License

vscode-swiftformat is available under the MIT license.