My tweet was inflammatory, so excuse me (I was actually mad at Travis and 
vented about this instead).

However, I think deeper integration with SourceKit formatting and Xcode would 
be beneficial, though I don’t know how much useful discussion about this can 
take place on the lists given that it’s really up to the IDE team to implement 
this feature.

~Robert Widmann


> On Jan 17, 2017, at 12:25 PM, Daniel Martín via swift-dev 
> <swift-dev@swift.org> wrote:
> 
> Hi, all:
> 
> I've been planning the implementation of per-project code style support for 
> Swift. Hopefully, if implemented correctly, this tweet would not be true 
> anymore: https://twitter.com/CodaFi_/status/821142027077238784
> 
> As I understand it, right now we have two possible kind of clients for 
> formatting Swift code (both are exercising code inside the swiftIDE library):
> 
> - Xcode: IDELanguageSupportUI, which is a plugin installed by default with 
> Xcode, is responsible for sending a message to SourceKit with the 
> "format.usetabs", "format.indentwidth", "format.tabwidth" parameters, among 
> others. SwiftIDE simply formats the region and updates the buffer. I suppose 
> other third party editors also use this mechanism.
> 
> - Swift-format: This little internal tool only uses a single function from 
> Formatting.cpp, passing the desired format options as a parameter.
> 
> In order to support different code styles per project, we need to make, at 
> least, the following changes:
> 
> - Create some factory methods for the CodeFormatOptions struct, one for each 
> supported style (initially, only "Default", or "Apple", ie. no tabs, 4 
> spaces, no case label indentation in switch statements).
> 
> - Add support for reading an optional .swift-format file inside the current 
> directory. This file would be a simple YAML file with key-value pairs like 
> this:
> 
> ---- .swift-format ----
> 
> Style: Apple
> 
> IndentWidth: 2
> 
> Does it make sense? I'll try to maintain the same SourceKit interface so that 
> Xcode and other editors don't break and at the same time it's easy for them 
> to opt-in this feature.
> 
> Opinions?
> 
> Thanks,
> 
> Daniel Martín
> 
> _______________________________________________
> swift-dev mailing list
> swift-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to