SourceKit contains indentation logic that is not exposed in the libIDE library; this is not desirable because SourceKit is not cross-platform. Here are some steps to improve on this:
- Move the indentation logic from SourceKit to libIDE. Have SourceKit just expose the functionality contained in libIDE.
- Start a 'swift-format' tool that uses the indentation mechanism from libIDE; given a file and source range it auto-indents it.
- See prior work for 'clang-format' (http://clang.llvm.org/docs/ClangFormat.html) for investigation on how to specify and provide formatting options.