<NME> CHANGELOG.md
<BEF> ## Main

##### Breaking

* None.

##### Enhancements

* Add a `File.clearCaches()` function to clear a file's cached data.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* None.

## 0.33.0

##### Breaking

* SourceKitten now requires Swift 5.6 or higher to build, and macOS 12
  or higher to run.  
  [JP Simard](https://github.com/jpsim)

* SourceKitten now always uses the in-process version of sourcekitd on
  [Norio Nomura](https://github.com/norio-nomura)
  [#111](https://github.com/jpsim/SourceKitten/pull/111)

## 0.6.2

##### Breaking
* Support docs generation with Xcode 14 projects.  
  [John Fairhurst](https://github.com/johnfairh)

##### Bug Fixes

* None.

## 0.32.0

##### Breaking

* SourceKitten now requires Swift 5.3 or higher to build.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* Support docs generation on Swift 5.6.  
  [John Fairhurst](https://github.com/johnfairh)

* Added `SwiftDeclarationAttributeKind` values introduced in Swift 5.6.  
  [JP Simard](https://github.com/jpsim)

* Add `IN_PROCESS_SOURCEKIT` environment variable, which causes to use
  the in-process version of sourcekitd on macOS. This avoids the use of
  XPC, which is prohibited in some sandboxed environments, such as in
  Swift Package Manager plugins.  
  [Juozas Valancius](https://github.com/juozasvalancius)

##### Bug Fixes

* None.

## 0.31.1

##### Breaking

* None.

##### Enhancements

* Objective C Union support.  
  [Brian Osborn](https://github.com/bosborn)
  [#705](https://github.com/jpsim/SourceKitten/issues/705)

* Add `key.attributes` and `key.attribute` enum cases to `SwiftDocKey`.  
  [Erick Sanchez](https://github.com/ErickESGoogle)

* Add `--prettify` and `--sort-keys` flags to complete command, both of
  which default to false. Previously these options were hardcoded to be
  enabled, which slowed down the command when processing large inputs.  
  [Paul Taykalo](https://github.com/PaulTaykalo)
  [#710](https://github.com/jpsim/SourceKitten/issues/710)

* Add new `SwiftDeclarationAttributeKind` members available starting
  with Swift 5.4/5.5.  
  [John Fairhurst](https://github.com/johnfairh)

##### Bug Fixes

* None.

## 0.31.0

##### Breaking

* SourceKitten now requires Swift 5.2 or higher to build.  
  [JP Simard](https://github.com/jpsim)

* SourceKittenFramework can no longer be integrated as a Carthage
  depdendency.  
  [JP Simard](https://github.com/jpsim)

* `SourceKitten.xcworkspace` and `sourcekitten.xcproject` have been
  completely removed. You can still use Xcode to develop SourceKitten by
  opening it as a Swift Package by typing `xed .` or `xed Package.swift`
  from your shell.  
  [JP Simard](https://github.com/jpsim)

* The command line syntax has slightly changed due to migrating from the
  Commandant command line parsing library to swift-argument-parser.
  For the most part the breaking changes are all to make the syntax more
  unix compliant and intuitive to use. For example, commands such as
  `sourcekitten --help` or `sourcekitten -h` now work as expected.
  The help output from various commands has greatly improved as well.
  A few notable breaking changes:
    * `doc --spm-module` was removed (use `--spm --module-name` instead)
    * `sourcekitten module_info` is now `sourcekitten module-info`  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* None.

##### Bug Fixes

* Always bypass codesigning when building Xcode projects.  
  [John Fairhurst](https://github.com/johnfairh)
  [#1183](https://github.com/realm/jazzy/issues/1183)

## 0.30.1

##### Breaking

* None.

##### Enhancements

* Add `SwiftDeclarationAttributeKind` values introduced in Swift 5.3.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* None.

## 0.30.0

##### Breaking

* SourceKitten now requires Swift 5.1 or higher to build.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* Update Yams to 4.0.0.  
  [Keith Smiley](https://github.com/keith)
  [JP Simard](https://github.com/jpsim)

* Add `SwiftDeclarationAttributeKind` values introduced in Swift 5.2.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fix crashes when parsing .m files.  
  [Joe Laws](https://github.com/jlaws)

* Stop the program immediately if the `xcodebuild` command fails.  
  [John Fairhurst](https://github.com/johnfairh)
  [#643](https://github.com/jpsim/SourceKitten/issues/643)

## 0.29.0

##### Breaking

* Replace all uses of `Int`/`Int64`/`NSRange` representing byte offsets
  to use newly introduced `ByteCount` and `ByteRange` values instead.
  This will minimize the risk of accidentally using a byte-based offset
  in character-based contexts.  
  [Paul Taykalo](https://github.com/PaulTaykalo)
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* None.

##### Bug Fixes

* Improve `key.parsed_declaration` in Swift 5.1+ for declarations on
  multiple lines without a body.  
  [John Fairhurst](https://github.com/johnfairh)
  [#633](https://github.com/jpsim/SourceKitten/issues/633)

## 0.28.0

##### Breaking

* Replace many of the public extensions on String, and its internal
  caching mechanism `CacheContainer`, with a new `StringView` type.  
  [Paul Taykalo](https://github.com/PaulTaykalo)

##### Enhancements

* Allow inline html tags in ObjC doc comments.  
  [Chris Williams](https://github.com/ultramiraculous)
  [#409](https://github.com/jpsim/SourceKitten/issues/409)
  [realm/jazzy#976](https://github.com/realm/jazzy/issues/976)

* Support code formatting in ObjC doc comments with `@c`, `@code` and
  `@endcode`.  
  [Bryce Pauken](https://github.com/brycepauken)
  [#631](https://github.com/jpsim/SourceKitten/issues/631)

##### Bug Fixes

* Fix crash when SourceKit returns out of bounds string byte offsets.  
  [JP Simard](https://github.com/jpsim)

## 0.27.0

##### Breaking

* Update Commandant dependency to version 0.17.0, removing the
  `antitypical/Result` dependency in favor of the Swift standard
  library's `Result` type.  
  [JP Simard](https://github.com/jpsim)
  [#623](https://github.com/jpsim/SourceKitten/issues/623)

##### Enhancements

* None.

##### Bug Fixes

* None.

## 0.26.0

##### Breaking

* SourceKitten now requires Swift 5.0 or higher to build.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* Support building SourceKitten with Swift 5.1.  
  [Pedro Larroy](https://github.com/larroy)

* Add new libclang types introduced between 0.49 and 0.59.  
  [JP Simard](https://github.com/jpsim)

* Add new `SwiftDeclarationAttributeKind` and `SwiftDeclarationKind` members
  introduced in Swift 5.1.  
  [JP Simard](https://github.com/jpsim)

* `SyntaxKind` now conforms to `CaseIterable`.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fix Swift response files for paths including special characters.  
  [John Fairhurst](https://github.com/johnfairh)

## 0.25.0

##### Breaking

* None.

##### Enhancements

* Add `--spm` option to guess the name of a Swift Package Manager module
  for documentation generation.  
  [John Fairhurst](https://github.com/johnfairh)

* Support doc generation for modules built with Xcode 11.  
  [John Fairhurst](https://github.com/johnfairh)

* Add `Module.init?(spmArguments:spmName:inPath)` and use in `doc` command
  to ensure Swift Package Manager module documentation is up to date.  
  [John Fairhurst](https://github.com/johnfairh)

##### Bug Fixes

* Fix crash with misplaced documentation comment.  
  [John Fairhurst](https://github.com/johnfairh)

## 0.24.0

##### Breaking

* Change `Module.init?(spmName:)` to `Module.init?(spmName:inPath:)`.  
  [Norio Nomura](https://github.com/norio-nomura)

* `SourceKitObjectConvertible` now has `SourceKitObject` parameter requirement
  instead of `sourcekitd_object_t`. SourceKitObject isn't publicly
  initializable (this helps memory management).  
  [Colton Schlosser](https://github.com/cltnschlosser)

* `Dictionary` and `Array` now conditionally conform to
  `SourceKitObjectConvertible`, instead of crashing when using
  unexpected types.  
  [Colton Schlosser](https://github.com/cltnschlosser)

##### Enhancements

* Add `cursorInfoUSR` case to the `Request`.  
  [Timofey Solonin](https://github.com/biboran)

* Add a `Dictionary<String, SourceKitRepresentable>.referencedUSRs`
  computed property to retrieve referenced USRs from a SourceKit cursor info
  response.  
  [Colton Schlosser](https://github.com/cltnschlosser)

##### Bug Fixes

* Fix `testCommandantDocsSPM` failed on using Swift Package in Xcode 11, because
  Xcode 11 does not use `SRCROOT` as current directory on executing tests in
  `Package.swift`.  
  [Norio Nomura](https://github.com/norio-nomura)

* Release memory created for sourcekitd requests.  
  [Colton Schlosser](https://github.com/cltnschlosser)
  [realm/SwiftLint#2812](https://github.com/realm/SwiftLint/issues/2812)

## 0.23.2

##### Breaking

* None.

##### Enhancements

* Add parsed extension declarations to Swift docs.  
  [John Fairhurst](https://github.com/johnfairh)

* Make `File` conform to `Equatable` and `Hashable`.  
  [Elliott Williams](https://github.com/elliottwilliams)

##### Bug Fixes

* None.

## 0.23.1

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* Fix warnings or errors when compiling in Swift 5 language mode.  
  [Yi Wang](https://github.com/neakor)
  [JP Simard](https://github.com/jpsim)

## 0.23.0

##### Breaking

* None.

##### Enhancements

* Introduce `XcodeBuildSetting` for interacting with project build settings.  
  [Chris Zielinski](https://github.com/chriszielinski)

* Improve module name inference for `Module`.  
  [Chris Zielinski](https://github.com/chriszielinski)

* Add Swift 5 support. Add new `SwiftDeclarationAttributeKind` and
  `SwiftDeclarationKind` members and make those enums conform to
  `CaseIterable`.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Bug Fixes

* “.swift”-suffixed directory in xcodebuild arguments no longer detected as
  Swift file.  
  [Minh Nguyễn](https://github.com/1ec5)
  [#574](https://github.com/jpsim/SourceKitten/issues/574)

* Fix `xcodebuild clean` path for new build system and Xcode 10.2.  
  [John Fairhurst](https://github.com/johnfairh)
  [realm/jazzy#1057](https://github.com/realm/jazzy/issues/1057)

* Pathnames containing shell-escaped characters in xcodebuild arguments no
  longer prevent documentation generation.  
  [John Fairhurst](https://github.com/johnfairh)

* `swiftc` no longer passed as a compiler argument when using `doc` and
  the new build system.  
  [John Fairhurst](https://github.com/johnfairh)

## 0.22.0

##### Breaking

* SourceKitten now requires Swift 4.2 or higher to build.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* Add `Request.syntaxTree` to get a serialized representation of the file's
  SwiftSyntax tree.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fix crash in `NSString.location(fromByteOffset:)` when using unicode
  characters.  
  [JP Simard](https://github.com/jpsim)
  [realm/SwiftLint#2276](https://github.com/realm/SwiftLint/issues/2276)

## 0.21.3

This is the last release to support building with Swift 4.0 and Swift 4.1.

##### Breaking

* None.

##### Enhancements

* If New Build System is enabled on Xcode, the `doc` command does not need to
  use the `clean` action on `xcodebuild`.  
  [Norio Nomura](https://github.com/norio-nomura)

* Use 'as' bridging on Linux when using Swift 4.2.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* None.

## 0.21.2

##### Breaking

* None.

##### Enhancements

* Add support for C-language annotations
  (e.g. `__attribute__((annotate("This is an annotation")))`).  
  [Jeff Verkoeyen](https://github.com/jverkoey)

* Improve support for building & running with Swift 4.2.  
  [Norio Nomura](https://github.com/norio-nomura)

* Add new values for `SwiftDeclarationAttributeKind` and `SyntaxKind` with
  Swift 4.2.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* None.

## 0.21.1

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* Support building with Swift 4.2. There are still runtime issues to resolve.  
  [Norio Nomura](https://github.com/norio-nomura)

* Fix a crash when running with Swift 4.2.  
  [Norio Nomura](https://github.com/norio-nomura)
  [SR-7954](https://bugs.swift.org/browse/SR-7954)

## 0.21.0

##### Breaking

* SourceKitten now requires Swift 4.0 or higher to build.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* Make all `SwiftDeclarationAttributeKind` cases available no matter
  which version of Swift was used to compile SourceKitten.  
  [Marcelo Fabri](https://github.com/marcelofabri)

##### Bug Fixes

* Fix issue locating `libsourcekitdInProc.so` on some Linux distributions.  
  [Mike Hovan](https://github.com/mhovan)
  [#513](https://github.com/jpsim/SourceKitten/issues/513)

## 0.20.0

This is the last release to support Swift 3.2 and Swift 3.3.
The next release will require Swift 4.0 or higher.

##### Breaking

* Change type of parameter from `sourcekitd_object_t` to `SourceKitObject?`.  
  - `File.process(dictionary:cursorInfoRequest:syntaxMap:)`
  - `Request.customRequest(request:)`
  - `SwiftDocs.init(file:dictionary:cursorInfoRequest:)`
  [Norio Nomura](https://github.com/norio-nomura)

* Remove `File.lines:setter`.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Enhancements

* Add `SwiftDeclarationAttributeKind` that represents declaration attributes in
  Swift.  
  [Daniel Metzing](https://github.com/dirtydanee)
  [#504](https://github.com/jpsim/SourceKitten/issues/504)

* Add `SourceKitObject` that represents `sourcekitd_object_t` in Swift.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#489](https://github.com/jpsim/SourceKitten/issues/489)

* Replaced linear index search with binary search in NSString extension.  
  [Tamas Lustyik](https://github.com/lvsti)

* SourceKit search strategy improved on Linux. Supports swiftenv.  
  [Alexander Lash](https://github.com/abl)

* Add `elements` case to `SwiftDocKey`.  
  [Sho Ikeda](https://github.com/ikesyo)

* Added `module_info` command to `sourcekitten` CLI.  
  [Erik Abair](https://github.com/abaire)

##### Bug Fixes

* Fix `index` command fails using filename with spaces in compiler arguments.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#480](https://github.com/jpsim/SourceKitten/issues/480)

* Only allow U+000A and U+000D as line break tokens.  
  [Marcelo Fabri](https://github.com/marcelofabri)
  [#475](https://github.com/jpsim/SourceKitten/issues/475)

* Fix ThreadSanitizer reports data race warning in SwiftLint.  
  [Norio Nomura](https://github.com/norio-nomura)
  [realm/SwiftLint#2089](https://github.com/realm/SwiftLint/issues/2089)

## 0.19.1

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* Fix Swift Package Manager warnings when using SourceKitten targets as
  dependencies.  
  [JP Simard](https://github.com/jpsim)
  [#478](https://github.com/jpsim/SourceKitten/issues/478)

## 0.19.0

##### Breaking

* SourceKitten now requires Xcode 9 and Swift 3.2+ to build.  
  [Norio Nomura](https://github.com/norio-nomura)

* Deprecated `Request.failableSend()`. Please use `Request.send()` instead.  
  [Norio Nomura](https://github.com/norio-nomura)

* Some APIs changed to `throws`.  
  * `File.format(trimmingTrailingWhitespace:useTabs:indentWidth:) throws`
  * `Structure.init(file:) throws`
  * `SyntaxMap.init(file:) throws`
  [Norio Nomura](https://github.com/norio-nomura)

##### Enhancements

* Return `SWIFT_NAME` when generating Objective-C docs.  
  [Ibrahim Ulukaya](https://github.com/ulukaya)

##### Bug Fixes

* Fix Swift declarations when generating Objective-C docs for generic types.  
  [John Fairhurst](https://github.com/johnfairh)

## 0.18.4

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* Fix Swift 4.0.2 deprecation warnings in dependencies, specifically
  SWXMLHash.  
  [Norio Nomura](https://github.com/norio-nomura)

## 0.18.3

##### Breaking

* None.

##### Enhancements

* Support Swift 4.0.2.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#435](https://github.com/jpsim/SourceKitten/issues/435)

##### Bug Fixes

* Preserve horizontal alignment in multi-line Swift declarations.  
  [John Fairhurst](https://github.com/johnfairh)

## 0.18.2

##### Breaking

* None.

##### Enhancements

* Add `tabWidth` parameter (default: `1`) for `lineAndCharacter`.  
  [Marcel Jackwerth](https://github.com/sirlantis)

* Add `File(pathDeferringReading:)` initializer.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fix Swift declarations when generating Objective-C docs being truncated where
  ampersands were included.  
  [JP Simard](https://github.com/jpsim)

## 0.18.1

##### Breaking

* None.

##### Enhancements

* Updates to support Xcode 9 beta 5 & accompanying versions of Swift 3.2/4.0.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fix compilation failures due to long debug times by removing compiler flag:
  `-warn-long-function-bodies=200`.  
  [Marcelo Fabri](https://github.com/marcelofabri)

## 0.18.0

##### Breaking

* Xcode 8.3 or later and Swift 3.1 or later are required to build.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Enhancements

* Cache `NSString.CacheContainer` on Linux, matching behavior on Darwin,
  speeding up many repeated operations on `NSString` on Linux.  
  [JP Simard](https://github.com/jpsim)
  [realm/SwiftLint#1577](https://github.com/realm/SwiftLint/issues/1577)

* Process Swift 3.2/4 doc comments.  
  [John Fairhurst](https://github.com/johnfairh)

* Support building with Xcode 9 beta 3 and the latest Swift 4 snapshots.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* None.

## 0.17.6

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* Fix handling of Swift extensions of nested types.  
  [John Fairhurst](https://github.com/johnfairh)

## 0.17.5

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* Improve quality & accuracy of Swift interfaces for Objective-C declarations
  when generating Objective-C docs.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#385](https://github.com/jpsim/SourceKitten/issues/385)

## 0.17.4

##### Breaking

* None.

##### Enhancements

* Generate Swift declaration for more Objective-C methods.  
  [Zheng Li](https://github.com/ainopara)
  [#376](https://github.com/jpsim/SourceKitten/issues/376)

##### Bug Fixes

* Fix running `sourcekitten version` when building with Swift Package Manager.  
  [JP Simard](https://github.com/jpsim)

* Fix crash in `lineAndCharacter(forByteOffset:)` with strings including
  multi-byte unicode characters.  
  [Marcelo Fabri](https://github.com/marcelofabri)
  [realm/SwiftLint#1006](https://github.com/realm/SwiftLint/issues/1006)

* Fix compilation with latest Swift 4 snapshots.  
  [Norio Nomura](https://github.com/norio-nomura)

## 0.17.3

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* More accurate doc comment association in Swift.  
  [John Fairhurst](https://github.com/johnfairh)
  [#368](https://github.com/jpsim/SourceKitten/issues/368)

* Fix crashes when parsing XML with Swift 3.1.1 on Linux.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#379](https://github.com/jpsim/SourceKitten/issues/379)

* Fix compilation with latest Swift 4 snapshots.  
  [Norio Nomura](https://github.com/norio-nomura)

## 0.17.2

##### Breaking

* None.

##### Enhancements

* Update `Cartfile.resolved` & corresponding git submodule to point to Yams
  0.3.1. Also loosen the Yams version dependency in `Package.swift` to only
  specify `~> 0.3` and not `= 0.3.0`.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Bug Fixes

* None.

## 0.17.1

##### Breaking

* None.

##### Enhancements

* Added a new field `numBytesToErase` in `CodeCompletionItem` to indicate how
  many bytes should be deleted prior to the cursor in order to finish the
  completion.  
  [@KelvinJin](https://github.com/KelvinJin)

* Support Swift 3.1 on macOS. `sourcekitInProc` appears to be broken on Linux
  as of Swift 3.1.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#348](https://github.com/jpsim/SourceKitten/issues/348)

##### Bug Fixes

* Fix a crash that occurred when a documentation comment ended with an extended
  grapheme cluster.  
  [Lukas Stührk](https://github.com/Lukas-Stuehrk)
  [#350](https://github.com/jpsim/SourceKitten/issues/350)

## 0.17.0

##### Breaking

* Change `Text` enum case names to match Swift 3 API guidelines.  
  [@istx25](https://github.com/istx25)

##### Enhancements

* None.

##### Bug Fixes

* Make sending `Request`s safer in concurrent environments.  
  [@krzysztofzablocki](https://github.com/krzysztofzablocki)

## 0.16.0

##### Breaking

* The `SourceKitten` CocoaPods podspec used to actually refer to
  SourceKittenFramework, so it has been renamed. Existing pushes to CocoaPods
  trunk will be preserved, but from now on if you use SourceKittenFramework via
  CocoaPods, please specify to use the `SourceKittenFramework` pod.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* Add `Request.yaml` API to create a sourcekit request from yaml
  and expose as a `request --yaml [file|text]` CLI command.  
  [Keith Smiley](https://github.com/keith)
  [#312](https://github.com/jpsim/SourceKitten/issues/312)

##### Bug Fixes

* None.

## 0.15.3

##### Breaking

* None.

##### Enhancements

* Reduce compilation time.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Bug Fixes

* None.

## 0.15.2

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* Fix Objective-C enum cases not being documented.  
  [JP Simard](https://github.com/jpsim)
  [#304](https://github.com/jpsim/SourceKitten/issues/304)

## 0.15.1

##### Breaking

* None.

##### Enhancements

* Improve performance of Yaml parsing.  
  [JP Simard](https://github.com/jpsim)
  [#289](https://github.com/jpsim/SourceKitten/issues/289)

##### Bug Fixes

* `CXComment.commandName()` was returning nil on custom code comments
  since Xcode 8.1. This caused a force unwrap when generating
  documentation. Inline command comment is now used as a
  fallback to catch this edge case.  
  [Jérémie Girault](https://github.com/jeremiegirault)

## 0.15.0

##### Breaking

* SourceKitten now requires Xcode 8.0 and Swift 3.0 to build.
  APIs have been adapted to conform to the Swift 3 API Design Guidelines.  
  [JP Simard](https://github.com/jpsim)
  [Norio Nomura](https://github.com/norio-nomura)

##### Enhancements

* Add `--spm-module [ModuleName]` flag to `complete` to automatically detect
  compiler flags for Swift Package Manager modules. `swift build` must be run
  prior to support detection.  
  [vdka](https://github.com/vdka)
  [#270](https://github.com/jpsim/SourceKitten/issues/270)

* Now builds and passes most tests on Linux using the Swift Package Manager with
  Swift 3.0. This requires `libsourcekitdInProc.so` to be built and located in
  `/usr/lib`, or in another location specified by the `LINUX_SOURCEKIT_LIB_PATH`
  environment variable. A preconfigured Docker image is available on Docker Hub
  by the ID of `norionomura/sourcekit:30`.  
  [JP Simard](https://github.com/jpsim)
  [Norio Nomura](https://github.com/norio-nomura)
  [#179](https://github.com/jpsim/SourceKitten/issues/179)

* Now supports Swift Package Manager on macOS and Linux.  
  [JP Simard](https://github.com/jpsim)

* Now supports docinfo requests for sourcetext and module keys.  
  [Erik Abair](https://github.com/abaire)

* Now supports Objective-C class properties.  
  [Jérémie Girault](https://github.com/jeremiegirault)
  [JP Simard](https://github.com/jpsim)
  [#243](https://github.com/jpsim/SourceKitten/issues/243)

* Add podspec to support using SourceKittenFramework with CocoaPods.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* `NSString.lines()` generated surplus line when string ended with newline
  character.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#259](https://github.com/jpsim/SourceKitten/issues/259)

## 0.14.1

##### Breaking

* None.

##### Enhancements

* None.

##### Bug Fixes

* Fixed Homebrew distribution.  
  [Norio Nomura](https://github.com/norio-nomura)

## 0.14.0

This is the last release to support Swift 2.2 and Swift 2.3.
The next release will require Swift 3.0.

##### Breaking

* Embedding frameworks needed by `sourcekitten` was moved from
  SourceKittenFramework Xcode target to the sourcekitten target.
  The `SourceKittenFramework.framework` product built by the
  SourceKittenFramework target no longer contains unnecessary frameworks or
  multiple copies of the Swift libraries.  
  [Norio Nomura](https://github.com/norio-nomura)

* Require passing compiler arguments to `index` command.  
  [Brian Gesiak](https://github.com/modocache)

* Remove `--compilerargs` CLI flag. Arguments are now passed after `--`.  
  [Keith Smiley](https://github.com/keith)

##### Enhancements

* Refactor to unite swift lang syntax types with SwiftLangSyntax protocol.

* Make SwiftDocKey public.  
  [Evgeny Suvorov](https://github.com/esuvorov)

* Swift 2.3 support.  
  [Syo Ikeda](https://github.com/ikesyo)

* The following availability and deprecation values are now exposed for Objective-C APIs.

  * key.always_deprecated
  * key.always_unavailable
  * key.deprecation_message
  * key.unavailable_message  
  [Jeff Verkoeyen](https://github.com/jverkoey)

* Add `SwiftDeclarationKind.PrecedenceGroup`.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fix issue where single-line declaration+bodies would include the body in the
  parsed declaration when generating docs.  
  [JP Simard](https://github.com/jpsim)
  [#45](https://github.com/jpsim/SourceKitten/issues/45)
  [realm/jazzy#226](https://github.com/realm/jazzy/issues/226)

* Fix issue where directories ending with `.swift` would be considered Swift
  source files.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#586](https://github.com/realm/jazzy/issues/586)

## 0.13.0

##### Breaking

* None.

##### Enhancements

* Add `format` command that re-indents a Swift file much like pasting into
  Xcode would. This command optionally takes the following parameters:

  * `--file (string)`: relative or absolute path of Swift file to format
  * `--no-trim-whitespace`: trim trailing whitespace
  * `--use-tabs`: use tabs to indent
  * `--indent-width (integer)`: number of spaces to indent  
  [JP Simard](https://github.com/jpsim)

* Add `--spm-module [ModuleName]` flag to `doc` to document Swift Package
  Manager modules. Need to run `swift build` prior to running
  `sourcekitten doc`. The right Swift toolchain version must also be selected
  (by setting `TOOLCHAIN_DIR` or similar).  
  [JP Simard](https://github.com/jpsim)

* Add support `TOOLCHAINS` environment variable to selecting alternative
  toolchains for loading SourceKitService.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Bug Fixes

* Add support for handling `CXCursor_UnexposedDecl` declarations when
  documenting Objective-C.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#543](https://github.com/realm/jazzy/issues/543)

## 0.12.2

##### Breaking

* None.

##### Enhancements

* Add `index` command.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* None.

## 0.12.1

##### Breaking

* None.

##### Enhancements

* Swift declarations are included when generating Objective-C documentation.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#136](https://github.com/realm/jazzy/issues/136)

##### Bug Fixes

* Fixed situations where the wrong documentation comment was found for a
  declaration, or when documentation comments were further than a single line
  away from their declaration and the declaration would be incorrectly
  considered undocumented.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#454](https://github.com/realm/jazzy/issues/454)
  [realm/jazzy#502](https://github.com/realm/jazzy/issues/502)

## 0.12.0

##### Breaking

* Updated for Xcode 7.3.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* None.

##### Bug Fixes

* None.

## 0.11.0

##### Breaking

* Now `libclang.dylib` and `sourcekitd.framework` are dynamically loaded at
  runtime by SourceKittenFramework to use the versions included in the Xcode
  version specified by `xcode-select -p` or custom toolchains. If
  SourceKittenFramework clients previously accessed either of these libraries
  directly using their APIs, those are no longer available.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#167](https://github.com/jpsim/SourceKitten/issues/167)

##### Enhancements

* Simplify the process of generating library wrappers and validate library
  wrappers in unit tests.  
  [JP Simard](https://github.com/jpsim)

* Support `swift test` on OS X.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Bug Fixes

* Fix crash on DOS newlines.  
  [Norio Nomura](https://github.com/norio-nomura)
  [realm/SwiftLint#315](https://github.com/realm/SwiftLint/issues/315)

* Fix doc.comment blank for many declarations, causing missing Jazzy docs.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#142](https://github.com/jpsim/SourceKitten/issues/142)

* Fix "Unrecognized arguments:" error on `doc` command.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#174](https://github.com/jpsim/SourceKitten/issues/174)

* Fix "illegal hardware instruction" error when SourceKitService returns
  string in other than `NSUTF8StringEncoding`.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#184](https://github.com/jpsim/SourceKitten/issues/184)

## 0.10.0

##### Breaking

* Change `SwiftDocs.init(file:arguments:)` to
  `SwiftDocs.init?(file:arguments:)`.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Enhancements

* Add `Request.failableSend()` that can handle SourceKitService crashes.
  `sourcekitten doc` does not stop when SourceKitService crashes.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Bug Fixes

* Fix crash when offset points end of string.  
  [Norio Nomura](https://github.com/norio-nomura)
  [realm/SwiftLint#164](https://github.com/realm/SwiftLint/issues/164)

## 0.9.0

##### Breaking

* Change `Line` from tuple to struct with extra properties `range` and
  `byteRange`.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Enhancements

* None.

##### Bug Fixes

* None.

## 0.8.0

##### Breaking

* Replaced all uses of `XPCDictionary`, `XPCArray`, `XPCRepresentable` &
  `xpc_object_t` with SourceKit equivalents.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* Supports building with Swift 2.2 snapshot & Swift Package Manager on OS X.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fix crash when file contains NULL character.  
  [Norio Nomura](https://github.com/norio-nomura)
  [realm/SwiftLint#379](https://github.com/realm/SwiftLint/issues/379)

## 0.7.4

##### Breaking

* None.

##### Enhancements

* Add `Structure.init(sourceKitResponse:)`.  
  [Norio Nomura](https://github.com/norio-nomura)

* Improve performance of `Request.send()`.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Bug Fixes

* Add support for parsing module imports in Objective-C.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#452](https://github.com/realm/jazzy/issues/452)

## 0.7.3

##### Breaking

* None.

##### Enhancements

* Add `NSString.lineAndCharacterForByteOffset`.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fixed multi-byte character handling in `File.getDocumentationCommentBody`.  
  [JP Simard](https://github.com/jpsim)

## 0.7.2

##### Breaking

* None.

##### Enhancements

* Optimize `NSString.lineAndCharacterForCharacterOffset(...)`,
  `NSString.NSRangeToByteRange(...)` and
  `SyntaxMap.commentRangeBeforeOffset(_:)`.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#119](https://github.com/jpsim/SourceKitten/issues/119)

* Fix unicode handling of `String.commentBody(range:)`.  
  [Norio Nomura](https://github.com/norio-nomura)

##### Bug Fixes

* None.

## 0.7.1

##### Enhancements

* Optimize `NSRange` operation.  
  [Norio Nomura](https://github.com/norio-nomura)
  [#119](https://github.com/jpsim/SourceKitten/issues/119)

## 0.7.0

##### Breaking

* `File` is now a `final class` instead of a `struct` and `contents` & `lines`
  are now marked as `var`. This was done so that mutations to the underlying
  file on disk can be mirrored in a `File` instance.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

None.

##### Bug Fixes

* Fix issue where Swift extensions would pick up documentation from previous
  tokens.  
  [JP Simard](https://github.com/jpsim)
  [#65](https://github.com/jpsim/SourceKitten/issues/65)

* Fix `String.stringByTrimmingTrailingCharactersInSet(_:)` returning full string
  when all characters matched character set.  
  [JP Simard](https://github.com/jpsim)

* Fix `indexOfByteOffset(offset:)` failing when string include some emoji.  
  [Norio Nomura](https://github.com/norio-nomura)

* Fix pragma mark extraction with multibyte characters.  
  [1ec5](https://github.com/1ec5)
  [#114](https://github.com/jpsim/SourceKitten/issues/114)

## 0.6.2

##### Breaking

None.

##### Enhancements

* Increase robustness of file path handling.  
  [Boris Bügling](https://github.com/neonichu)
  [#86](https://github.com/jpsim/SourceKitten/issues/86)

##### Bug Fixes

* Add support for C/C++ struct, field & ivar types.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#374](https://github.com/realm/jazzy/issues/374)
  [realm/jazzy#387](https://github.com/realm/jazzy/issues/387)


## 0.6.1

##### Breaking

None.

##### Enhancements

* Support "wall of asterisk" documentation comments.  
  [Jeff Verkoeyen](https://github.com/jverkoey)

##### Bug Fixes

* Fix a string interpolation issue when generating completion options.  
  [Benedikt Terhechte](https://github.com/terhechte)
  [#97](https://github.com/jpsim/SourceKitten/issues/97)

* Fix an out-of-bounds exception when generating pragma marks.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#370](https://github.com/realm/jazzy/issues/370)


## 0.6.0

##### Breaking

None.

##### Enhancements

* Ability to generate Objective-C documentation.  
  [Thomas Goyne](https://github.com/tgoyne)
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Don't process SourceKit's response when building Structure.  
  [JP Simard](https://github.com/jpsim)
  [#82](https://github.com/jpsim/SourceKitten/issues/82)


## 0.5.2

##### Breaking

None.

##### Enhancements

* Add `compilerargs` option to complete command.  
  [Masayuki Yamaya](https://github.com/yamaya)

* Add support for Xcode 7.1.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fix a bug where documentation inside a function would crash SourceKitten.  
  [JP Simard](https://github.com/jpsim)
  [#75](https://github.com/jpsim/SourceKitten/issues/75)


## 0.5.1

##### Breaking

None.

##### Enhancements

* Improve error reporting when compiler arguments can't be parsed and log
  `xcodebuild` output to file instead of stderr.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

None.


## 0.5.0

##### Breaking

* Updated to Swift 2.0.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

* Update `File` `lines` convenience property to be immutable.  
  [Keith Smiley](https://github.com/keith)

* Added the ability to generate code completion options (`complete` command).  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

None.


## 0.4.5

##### Breaking

None.

##### Enhancements

* Add `lines` convenience property to `File`  
  [Keith Smiley](https://github.com/keith)

##### Bug Fixes

None.


## 0.4.4

##### Breaking

* Simplified rpath's.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

None.

##### Bug Fixes

* Fixed a crash when parsing an empty documentation comment.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#236](https://github.com/realm/jazzy/issues/236)


## 0.4.3

##### Breaking

None.

##### Enhancements

None.

##### Bug Fixes

* Fixed issue when installing 0.4.2 via Homebrew.  
  [JP Simard](https://github.com/jpsim)


## 0.4.2

##### Breaking

None.

##### Enhancements

None.

##### Bug Fixes

* SourceKitten can now be installed alongside Carthage because
  SourceKittenFramework now nests its Commandant and LlamaKit frameworks.  
  [JP Simard](https://github.com/jpsim)


## 0.4.1

##### Breaking

* SwiftDocs now prints its file path in its `description`.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

None.

##### Bug Fixes

None.


## 0.4.0

##### Breaking

* Requires Swift 1.2 to build.  
  [JP Simard](https://github.com/jpsim)

##### Enhancements

None.

##### Bug Fixes

None.


## 0.3.2

##### Breaking

None.

##### Enhancements

* Added definition line ranges to declarations.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#198](https://github.com/realm/jazzy/issues/198)

* Parse `doc.full_as_xml`.  
  [JP Simard](https://github.com/jpsim)
  [#37](https://github.com/jpsim/SourceKitten/issues/37)

* Parse documentation comments.  
  [JP Simard](https://github.com/jpsim)

##### Bug Fixes

* Fixed out-of-bounds exception when parsing the declaration in files starting
  with a declaration.  
  [JP Simard](https://github.com/jpsim)
  [#30](https://github.com/jpsim/SourceKitten/issues/30)

* Fixed out-of-bounds exception and inaccurate parsed declarations when using
  multibyte characters.  
  [JP Simard](https://github.com/jpsim)
  [#35](https://github.com/jpsim/SourceKitten/issues/35)

* Fixed parsing issues with keyword functions such as `subscript`, `init` and
  `deinit`.  
  [JP Simard](https://github.com/jpsim)
  [#27](https://github.com/jpsim/SourceKitten/issues/27)

* Fixed issues where USR wasn't accurate because dependencies couldn't be
  resolved.  
  [JP Simard](https://github.com/jpsim)


## 0.3.0

##### Breaking

* Everything. No, seriously lots has changed in this release and you should
  consider SourceKitten entirely rewritten. SourceKitten now uses dynamic
  frameworks for the bulk of its functionality, which means that everything is
  now much more modular and testable.  
  [JP Simard](https://github.com/jpsim)
  [#17](https://github.com/jpsim/SourceKitten/issues/17)

##### Enhancements

* Consolidated error generation.  
  [JP Simard](https://github.com/jpsim)
  [#24](https://github.com/jpsim/SourceKitten/issues/24)

##### Bug Fixes

None.

## 0.2.8

##### Breaking

None.

##### Enhancements

None.

##### Bug Fixes

* Fixed issue where certain Swift files wouldn't be parsed.  
  [JP Simard](https://github.com/jpsim)
  [#18](https://github.com/jpsim/SourceKitten/issues/18)

## 0.2.7

##### Breaking

None.

##### Enhancements

None.

##### Bug Fixes

* Fixed improper UTF8 parsing of MARK comments.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#131](https://github.com/realm/jazzy/issues/131)

## 0.2.6

##### Breaking

None.

##### Enhancements

* Added CHANGELOG.md.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#125](https://github.com/realm/jazzy/issues/125)

* Include parse errors in the JSON output.  
  [JP Simard](https://github.com/jpsim)
  [#16](https://github.com/jpsim/SourceKitten/issues/16)

##### Bug Fixes

* Fixed crash when files contained a declaration on the first line.  
  [JP Simard](https://github.com/jpsim)
  [#14](https://github.com/jpsim/SourceKitten/issues/14)

* Fixed invalid JSON issue when last file in an Xcode project failed to parse.  
  [JP Simard](https://github.com/jpsim)

* Fixed crash when attempting to parse the declaration of `extension Array`.  
  [JP Simard](https://github.com/jpsim)
  [realm/jazzy#126](https://github.com/realm/jazzy/issues/126)

<MSG> add CHANGELOG entry for #115

<DFF> @@ -25,6 +25,10 @@ None.
   [Norio Nomura](https://github.com/norio-nomura)
   [#111](https://github.com/jpsim/SourceKitten/pull/111)
 
+* Fix pragma mark extraction with multibyte characters.  
+  [1ec5](https://github.com/1ec5)
+  [#114](https://github.com/jpsim/SourceKitten/pull/114)
+
 ## 0.6.2
 
 ##### Breaking

{'commit': 'diff --git a/CHANGELOG.md b/CHANGELOG.md\nindex 1b0a2ed..a86b47d 100644\n--- a/CHANGELOG.md\n+++ b/CHANGELOG.md\n@@ -25,6 +25,10 @@ None.\n   [Norio Nomura](https://github.com/norio-nomura)\n   [#111](https://github.com/jpsim/SourceKitten/pull/111)\n \n+* Fix pragma mark extraction with multibyte characters.  \n+  [1ec5](https://github.com/1ec5)\n+  [#114](https://github.com/jpsim/SourceKitten/pull/114)\n+\n ## 0.6.2\n \n ##### Breaking\n', 'commit_subject': 'add CHANGELOG entry for #115', 'repo_name': 'jpsim/SourceKitten', 'committer': {'name': 'JP Simard', 'email': '0f41a0b3b760b54df703e860e40fef1c388ed2c5@jpsim.com', 'time_sec': '1449695464', 'tz_offset': '-480', 'date': {'seconds': '1449695464'}}, 'commit_tree': 'f8ebd26a6e096c5f9d625683f95fd1118bc44c60', 'commit_message': 'add CHANGELOG entry for #115\n', 'language_name': 'Swift', 'license': 'mit', 'hunks': '@@ -25,6 +25,10 @@ None.\n   [Norio Nomura](https://github.com/norio-nomura)\n   [#111](https://github.com/jpsim/SourceKitten/pull/111)\n \n+* Fix pragma mark extraction with multibyte characters.  \n+  [1ec5](https://github.com/1ec5)\n+  [#114](https://github.com/jpsim/SourceKitten/pull/114)\n+\n ## 0.6.2\n \n ##### Breaking\n', 'addition_count': 4, 'deletion_count': 0, 'src_file': 'a/CHANGELOG.md', 'tgt_file': 'b/CHANGELOG.md', 'file_extension': '.md', 'before_file': '## Main\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add a `File.clearCaches()` function to clear a file\'s cached data.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* None.\n\n## 0.33.0\n\n##### Breaking\n\n* SourceKitten now requires Swift 5.6 or higher to build, and macOS 12\n  or higher to run.  \n  [JP Simard](https://github.com/jpsim)\n\n* SourceKitten now always uses the in-process version of sourcekitd on\n  [Norio Nomura](https://github.com/norio-nomura)\n  [#111](https://github.com/jpsim/SourceKitten/pull/111)\n\n## 0.6.2\n\n##### Breaking\n* Support docs generation with Xcode 14 projects.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n##### Bug Fixes\n\n* None.\n\n## 0.32.0\n\n##### Breaking\n\n* SourceKitten now requires Swift 5.3 or higher to build.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* Support docs generation on Swift 5.6.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n* Added `SwiftDeclarationAttributeKind` values introduced in Swift 5.6.  \n  [JP Simard](https://github.com/jpsim)\n\n* Add `IN_PROCESS_SOURCEKIT` environment variable, which causes to use\n  the in-process version of sourcekitd on macOS. This avoids the use of\n  XPC, which is prohibited in some sandboxed environments, such as in\n  Swift Package Manager plugins.  \n  [Juozas Valancius](https://github.com/juozasvalancius)\n\n##### Bug Fixes\n\n* None.\n\n## 0.31.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Objective C Union support.  \n  [Brian Osborn](https://github.com/bosborn)\n  [#705](https://github.com/jpsim/SourceKitten/issues/705)\n\n* Add `key.attributes` and `key.attribute` enum cases to `SwiftDocKey`.  \n  [Erick Sanchez](https://github.com/ErickESGoogle)\n\n* Add `--prettify` and `--sort-keys` flags to complete command, both of\n  which default to false. Previously these options were hardcoded to be\n  enabled, which slowed down the command when processing large inputs.  \n  [Paul Taykalo](https://github.com/PaulTaykalo)\n  [#710](https://github.com/jpsim/SourceKitten/issues/710)\n\n* Add new `SwiftDeclarationAttributeKind` members available starting\n  with Swift 5.4/5.5.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n##### Bug Fixes\n\n* None.\n\n## 0.31.0\n\n##### Breaking\n\n* SourceKitten now requires Swift 5.2 or higher to build.  \n  [JP Simard](https://github.com/jpsim)\n\n* SourceKittenFramework can no longer be integrated as a Carthage\n  depdendency.  \n  [JP Simard](https://github.com/jpsim)\n\n* `SourceKitten.xcworkspace` and `sourcekitten.xcproject` have been\n  completely removed. You can still use Xcode to develop SourceKitten by\n  opening it as a Swift Package by typing `xed .` or `xed Package.swift`\n  from your shell.  \n  [JP Simard](https://github.com/jpsim)\n\n* The command line syntax has slightly changed due to migrating from the\n  Commandant command line parsing library to swift-argument-parser.\n  For the most part the breaking changes are all to make the syntax more\n  unix compliant and intuitive to use. For example, commands such as\n  `sourcekitten --help` or `sourcekitten -h` now work as expected.\n  The help output from various commands has greatly improved as well.\n  A few notable breaking changes:\n    * `doc --spm-module` was removed (use `--spm --module-name` instead)\n    * `sourcekitten module_info` is now `sourcekitten module-info`  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Always bypass codesigning when building Xcode projects.  \n  [John Fairhurst](https://github.com/johnfairh)\n  [#1183](https://github.com/realm/jazzy/issues/1183)\n\n## 0.30.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add `SwiftDeclarationAttributeKind` values introduced in Swift 5.3.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* None.\n\n## 0.30.0\n\n##### Breaking\n\n* SourceKitten now requires Swift 5.1 or higher to build.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* Update Yams to 4.0.0.  \n  [Keith Smiley](https://github.com/keith)\n  [JP Simard](https://github.com/jpsim)\n\n* Add `SwiftDeclarationAttributeKind` values introduced in Swift 5.2.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fix crashes when parsing .m files.  \n  [Joe Laws](https://github.com/jlaws)\n\n* Stop the program immediately if the `xcodebuild` command fails.  \n  [John Fairhurst](https://github.com/johnfairh)\n  [#643](https://github.com/jpsim/SourceKitten/issues/643)\n\n## 0.29.0\n\n##### Breaking\n\n* Replace all uses of `Int`/`Int64`/`NSRange` representing byte offsets\n  to use newly introduced `ByteCount` and `ByteRange` values instead.\n  This will minimize the risk of accidentally using a byte-based offset\n  in character-based contexts.  \n  [Paul Taykalo](https://github.com/PaulTaykalo)\n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Improve `key.parsed_declaration` in Swift 5.1+ for declarations on\n  multiple lines without a body.  \n  [John Fairhurst](https://github.com/johnfairh)\n  [#633](https://github.com/jpsim/SourceKitten/issues/633)\n\n## 0.28.0\n\n##### Breaking\n\n* Replace many of the public extensions on String, and its internal\n  caching mechanism `CacheContainer`, with a new `StringView` type.  \n  [Paul Taykalo](https://github.com/PaulTaykalo)\n\n##### Enhancements\n\n* Allow inline html tags in ObjC doc comments.  \n  [Chris Williams](https://github.com/ultramiraculous)\n  [#409](https://github.com/jpsim/SourceKitten/issues/409)\n  [realm/jazzy#976](https://github.com/realm/jazzy/issues/976)\n\n* Support code formatting in ObjC doc comments with `@c`, `@code` and\n  `@endcode`.  \n  [Bryce Pauken](https://github.com/brycepauken)\n  [#631](https://github.com/jpsim/SourceKitten/issues/631)\n\n##### Bug Fixes\n\n* Fix crash when SourceKit returns out of bounds string byte offsets.  \n  [JP Simard](https://github.com/jpsim)\n\n## 0.27.0\n\n##### Breaking\n\n* Update Commandant dependency to version 0.17.0, removing the\n  `antitypical/Result` dependency in favor of the Swift standard\n  library\'s `Result` type.  \n  [JP Simard](https://github.com/jpsim)\n  [#623](https://github.com/jpsim/SourceKitten/issues/623)\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* None.\n\n## 0.26.0\n\n##### Breaking\n\n* SourceKitten now requires Swift 5.0 or higher to build.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* Support building SourceKitten with Swift 5.1.  \n  [Pedro Larroy](https://github.com/larroy)\n\n* Add new libclang types introduced between 0.49 and 0.59.  \n  [JP Simard](https://github.com/jpsim)\n\n* Add new `SwiftDeclarationAttributeKind` and `SwiftDeclarationKind` members\n  introduced in Swift 5.1.  \n  [JP Simard](https://github.com/jpsim)\n\n* `SyntaxKind` now conforms to `CaseIterable`.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fix Swift response files for paths including special characters.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n## 0.25.0\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add `--spm` option to guess the name of a Swift Package Manager module\n  for documentation generation.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n* Support doc generation for modules built with Xcode 11.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n* Add `Module.init?(spmArguments:spmName:inPath)` and use in `doc` command\n  to ensure Swift Package Manager module documentation is up to date.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n##### Bug Fixes\n\n* Fix crash with misplaced documentation comment.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n## 0.24.0\n\n##### Breaking\n\n* Change `Module.init?(spmName:)` to `Module.init?(spmName:inPath:)`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* `SourceKitObjectConvertible` now has `SourceKitObject` parameter requirement\n  instead of `sourcekitd_object_t`. SourceKitObject isn\'t publicly\n  initializable (this helps memory management).  \n  [Colton Schlosser](https://github.com/cltnschlosser)\n\n* `Dictionary` and `Array` now conditionally conform to\n  `SourceKitObjectConvertible`, instead of crashing when using\n  unexpected types.  \n  [Colton Schlosser](https://github.com/cltnschlosser)\n\n##### Enhancements\n\n* Add `cursorInfoUSR` case to the `Request`.  \n  [Timofey Solonin](https://github.com/biboran)\n\n* Add a `Dictionary<String, SourceKitRepresentable>.referencedUSRs`\n  computed property to retrieve referenced USRs from a SourceKit cursor info\n  response.  \n  [Colton Schlosser](https://github.com/cltnschlosser)\n\n##### Bug Fixes\n\n* Fix `testCommandantDocsSPM` failed on using Swift Package in Xcode 11, because\n  Xcode 11 does not use `SRCROOT` as current directory on executing tests in\n  `Package.swift`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Release memory created for sourcekitd requests.  \n  [Colton Schlosser](https://github.com/cltnschlosser)\n  [realm/SwiftLint#2812](https://github.com/realm/SwiftLint/issues/2812)\n\n## 0.23.2\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add parsed extension declarations to Swift docs.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n* Make `File` conform to `Equatable` and `Hashable`.  \n  [Elliott Williams](https://github.com/elliottwilliams)\n\n##### Bug Fixes\n\n* None.\n\n## 0.23.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Fix warnings or errors when compiling in Swift 5 language mode.  \n  [Yi Wang](https://github.com/neakor)\n  [JP Simard](https://github.com/jpsim)\n\n## 0.23.0\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Introduce `XcodeBuildSetting` for interacting with project build settings.  \n  [Chris Zielinski](https://github.com/chriszielinski)\n\n* Improve module name inference for `Module`.  \n  [Chris Zielinski](https://github.com/chriszielinski)\n\n* Add Swift 5 support. Add new `SwiftDeclarationAttributeKind` and\n  `SwiftDeclarationKind` members and make those enums conform to\n  `CaseIterable`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Bug Fixes\n\n* “.swift”-suffixed directory in xcodebuild arguments no longer detected as\n  Swift file.  \n  [Minh Nguyễn](https://github.com/1ec5)\n  [#574](https://github.com/jpsim/SourceKitten/issues/574)\n\n* Fix `xcodebuild clean` path for new build system and Xcode 10.2.  \n  [John Fairhurst](https://github.com/johnfairh)\n  [realm/jazzy#1057](https://github.com/realm/jazzy/issues/1057)\n\n* Pathnames containing shell-escaped characters in xcodebuild arguments no\n  longer prevent documentation generation.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n* `swiftc` no longer passed as a compiler argument when using `doc` and\n  the new build system.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n## 0.22.0\n\n##### Breaking\n\n* SourceKitten now requires Swift 4.2 or higher to build.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* Add `Request.syntaxTree` to get a serialized representation of the file\'s\n  SwiftSyntax tree.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fix crash in `NSString.location(fromByteOffset:)` when using unicode\n  characters.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/SwiftLint#2276](https://github.com/realm/SwiftLint/issues/2276)\n\n## 0.21.3\n\nThis is the last release to support building with Swift 4.0 and Swift 4.1.\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* If New Build System is enabled on Xcode, the `doc` command does not need to\n  use the `clean` action on `xcodebuild`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Use \'as\' bridging on Linux when using Swift 4.2.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* None.\n\n## 0.21.2\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add support for C-language annotations\n  (e.g. `__attribute__((annotate("This is an annotation")))`).  \n  [Jeff Verkoeyen](https://github.com/jverkoey)\n\n* Improve support for building & running with Swift 4.2.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Add new values for `SwiftDeclarationAttributeKind` and `SyntaxKind` with\n  Swift 4.2.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* None.\n\n## 0.21.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Support building with Swift 4.2. There are still runtime issues to resolve.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Fix a crash when running with Swift 4.2.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [SR-7954](https://bugs.swift.org/browse/SR-7954)\n\n## 0.21.0\n\n##### Breaking\n\n* SourceKitten now requires Swift 4.0 or higher to build.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* Make all `SwiftDeclarationAttributeKind` cases available no matter\n  which version of Swift was used to compile SourceKitten.  \n  [Marcelo Fabri](https://github.com/marcelofabri)\n\n##### Bug Fixes\n\n* Fix issue locating `libsourcekitdInProc.so` on some Linux distributions.  \n  [Mike Hovan](https://github.com/mhovan)\n  [#513](https://github.com/jpsim/SourceKitten/issues/513)\n\n## 0.20.0\n\nThis is the last release to support Swift 3.2 and Swift 3.3.\nThe next release will require Swift 4.0 or higher.\n\n##### Breaking\n\n* Change type of parameter from `sourcekitd_object_t` to `SourceKitObject?`.  \n  - `File.process(dictionary:cursorInfoRequest:syntaxMap:)`\n  - `Request.customRequest(request:)`\n  - `SwiftDocs.init(file:dictionary:cursorInfoRequest:)`\n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Remove `File.lines:setter`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Enhancements\n\n* Add `SwiftDeclarationAttributeKind` that represents declaration attributes in\n  Swift.  \n  [Daniel Metzing](https://github.com/dirtydanee)\n  [#504](https://github.com/jpsim/SourceKitten/issues/504)\n\n* Add `SourceKitObject` that represents `sourcekitd_object_t` in Swift.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#489](https://github.com/jpsim/SourceKitten/issues/489)\n\n* Replaced linear index search with binary search in NSString extension.  \n  [Tamas Lustyik](https://github.com/lvsti)\n\n* SourceKit search strategy improved on Linux. Supports swiftenv.  \n  [Alexander Lash](https://github.com/abl)\n\n* Add `elements` case to `SwiftDocKey`.  \n  [Sho Ikeda](https://github.com/ikesyo)\n\n* Added `module_info` command to `sourcekitten` CLI.  \n  [Erik Abair](https://github.com/abaire)\n\n##### Bug Fixes\n\n* Fix `index` command fails using filename with spaces in compiler arguments.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#480](https://github.com/jpsim/SourceKitten/issues/480)\n\n* Only allow U+000A and U+000D as line break tokens.  \n  [Marcelo Fabri](https://github.com/marcelofabri)\n  [#475](https://github.com/jpsim/SourceKitten/issues/475)\n\n* Fix ThreadSanitizer reports data race warning in SwiftLint.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [realm/SwiftLint#2089](https://github.com/realm/SwiftLint/issues/2089)\n\n## 0.19.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Fix Swift Package Manager warnings when using SourceKitten targets as\n  dependencies.  \n  [JP Simard](https://github.com/jpsim)\n  [#478](https://github.com/jpsim/SourceKitten/issues/478)\n\n## 0.19.0\n\n##### Breaking\n\n* SourceKitten now requires Xcode 9 and Swift 3.2+ to build.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Deprecated `Request.failableSend()`. Please use `Request.send()` instead.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Some APIs changed to `throws`.  \n  * `File.format(trimmingTrailingWhitespace:useTabs:indentWidth:) throws`\n  * `Structure.init(file:) throws`\n  * `SyntaxMap.init(file:) throws`\n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Enhancements\n\n* Return `SWIFT_NAME` when generating Objective-C docs.  \n  [Ibrahim Ulukaya](https://github.com/ulukaya)\n\n##### Bug Fixes\n\n* Fix Swift declarations when generating Objective-C docs for generic types.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n## 0.18.4\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Fix Swift 4.0.2 deprecation warnings in dependencies, specifically\n  SWXMLHash.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n## 0.18.3\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Support Swift 4.0.2.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#435](https://github.com/jpsim/SourceKitten/issues/435)\n\n##### Bug Fixes\n\n* Preserve horizontal alignment in multi-line Swift declarations.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n## 0.18.2\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add `tabWidth` parameter (default: `1`) for `lineAndCharacter`.  \n  [Marcel Jackwerth](https://github.com/sirlantis)\n\n* Add `File(pathDeferringReading:)` initializer.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fix Swift declarations when generating Objective-C docs being truncated where\n  ampersands were included.  \n  [JP Simard](https://github.com/jpsim)\n\n## 0.18.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Updates to support Xcode 9 beta 5 & accompanying versions of Swift 3.2/4.0.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fix compilation failures due to long debug times by removing compiler flag:\n  `-warn-long-function-bodies=200`.  \n  [Marcelo Fabri](https://github.com/marcelofabri)\n\n## 0.18.0\n\n##### Breaking\n\n* Xcode 8.3 or later and Swift 3.1 or later are required to build.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Enhancements\n\n* Cache `NSString.CacheContainer` on Linux, matching behavior on Darwin,\n  speeding up many repeated operations on `NSString` on Linux.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/SwiftLint#1577](https://github.com/realm/SwiftLint/issues/1577)\n\n* Process Swift 3.2/4 doc comments.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n* Support building with Xcode 9 beta 3 and the latest Swift 4 snapshots.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* None.\n\n## 0.17.6\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Fix handling of Swift extensions of nested types.  \n  [John Fairhurst](https://github.com/johnfairh)\n\n## 0.17.5\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Improve quality & accuracy of Swift interfaces for Objective-C declarations\n  when generating Objective-C docs.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#385](https://github.com/jpsim/SourceKitten/issues/385)\n\n## 0.17.4\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Generate Swift declaration for more Objective-C methods.  \n  [Zheng Li](https://github.com/ainopara)\n  [#376](https://github.com/jpsim/SourceKitten/issues/376)\n\n##### Bug Fixes\n\n* Fix running `sourcekitten version` when building with Swift Package Manager.  \n  [JP Simard](https://github.com/jpsim)\n\n* Fix crash in `lineAndCharacter(forByteOffset:)` with strings including\n  multi-byte unicode characters.  \n  [Marcelo Fabri](https://github.com/marcelofabri)\n  [realm/SwiftLint#1006](https://github.com/realm/SwiftLint/issues/1006)\n\n* Fix compilation with latest Swift 4 snapshots.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n## 0.17.3\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* More accurate doc comment association in Swift.  \n  [John Fairhurst](https://github.com/johnfairh)\n  [#368](https://github.com/jpsim/SourceKitten/issues/368)\n\n* Fix crashes when parsing XML with Swift 3.1.1 on Linux.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#379](https://github.com/jpsim/SourceKitten/issues/379)\n\n* Fix compilation with latest Swift 4 snapshots.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n## 0.17.2\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Update `Cartfile.resolved` & corresponding git submodule to point to Yams\n  0.3.1. Also loosen the Yams version dependency in `Package.swift` to only\n  specify `~> 0.3` and not `= 0.3.0`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Bug Fixes\n\n* None.\n\n## 0.17.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Added a new field `numBytesToErase` in `CodeCompletionItem` to indicate how\n  many bytes should be deleted prior to the cursor in order to finish the\n  completion.  \n  [@KelvinJin](https://github.com/KelvinJin)\n\n* Support Swift 3.1 on macOS. `sourcekitInProc` appears to be broken on Linux\n  as of Swift 3.1.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#348](https://github.com/jpsim/SourceKitten/issues/348)\n\n##### Bug Fixes\n\n* Fix a crash that occurred when a documentation comment ended with an extended\n  grapheme cluster.  \n  [Lukas Stührk](https://github.com/Lukas-Stuehrk)\n  [#350](https://github.com/jpsim/SourceKitten/issues/350)\n\n## 0.17.0\n\n##### Breaking\n\n* Change `Text` enum case names to match Swift 3 API guidelines.  \n  [@istx25](https://github.com/istx25)\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Make sending `Request`s safer in concurrent environments.  \n  [@krzysztofzablocki](https://github.com/krzysztofzablocki)\n\n## 0.16.0\n\n##### Breaking\n\n* The `SourceKitten` CocoaPods podspec used to actually refer to\n  SourceKittenFramework, so it has been renamed. Existing pushes to CocoaPods\n  trunk will be preserved, but from now on if you use SourceKittenFramework via\n  CocoaPods, please specify to use the `SourceKittenFramework` pod.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* Add `Request.yaml` API to create a sourcekit request from yaml\n  and expose as a `request --yaml [file|text]` CLI command.  \n  [Keith Smiley](https://github.com/keith)\n  [#312](https://github.com/jpsim/SourceKitten/issues/312)\n\n##### Bug Fixes\n\n* None.\n\n## 0.15.3\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Reduce compilation time.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Bug Fixes\n\n* None.\n\n## 0.15.2\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Fix Objective-C enum cases not being documented.  \n  [JP Simard](https://github.com/jpsim)\n  [#304](https://github.com/jpsim/SourceKitten/issues/304)\n\n## 0.15.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Improve performance of Yaml parsing.  \n  [JP Simard](https://github.com/jpsim)\n  [#289](https://github.com/jpsim/SourceKitten/issues/289)\n\n##### Bug Fixes\n\n* `CXComment.commandName()` was returning nil on custom code comments\n  since Xcode 8.1. This caused a force unwrap when generating\n  documentation. Inline command comment is now used as a\n  fallback to catch this edge case.  \n  [Jérémie Girault](https://github.com/jeremiegirault)\n\n## 0.15.0\n\n##### Breaking\n\n* SourceKitten now requires Xcode 8.0 and Swift 3.0 to build.\n  APIs have been adapted to conform to the Swift 3 API Design Guidelines.  \n  [JP Simard](https://github.com/jpsim)\n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Enhancements\n\n* Add `--spm-module [ModuleName]` flag to `complete` to automatically detect\n  compiler flags for Swift Package Manager modules. `swift build` must be run\n  prior to support detection.  \n  [vdka](https://github.com/vdka)\n  [#270](https://github.com/jpsim/SourceKitten/issues/270)\n\n* Now builds and passes most tests on Linux using the Swift Package Manager with\n  Swift 3.0. This requires `libsourcekitdInProc.so` to be built and located in\n  `/usr/lib`, or in another location specified by the `LINUX_SOURCEKIT_LIB_PATH`\n  environment variable. A preconfigured Docker image is available on Docker Hub\n  by the ID of `norionomura/sourcekit:30`.  \n  [JP Simard](https://github.com/jpsim)\n  [Norio Nomura](https://github.com/norio-nomura)\n  [#179](https://github.com/jpsim/SourceKitten/issues/179)\n\n* Now supports Swift Package Manager on macOS and Linux.  \n  [JP Simard](https://github.com/jpsim)\n\n* Now supports docinfo requests for sourcetext and module keys.  \n  [Erik Abair](https://github.com/abaire)\n\n* Now supports Objective-C class properties.  \n  [Jérémie Girault](https://github.com/jeremiegirault)\n  [JP Simard](https://github.com/jpsim)\n  [#243](https://github.com/jpsim/SourceKitten/issues/243)\n\n* Add podspec to support using SourceKittenFramework with CocoaPods.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* `NSString.lines()` generated surplus line when string ended with newline\n  character.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#259](https://github.com/jpsim/SourceKitten/issues/259)\n\n## 0.14.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* Fixed Homebrew distribution.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n## 0.14.0\n\nThis is the last release to support Swift 2.2 and Swift 2.3.\nThe next release will require Swift 3.0.\n\n##### Breaking\n\n* Embedding frameworks needed by `sourcekitten` was moved from\n  SourceKittenFramework Xcode target to the sourcekitten target.\n  The `SourceKittenFramework.framework` product built by the\n  SourceKittenFramework target no longer contains unnecessary frameworks or\n  multiple copies of the Swift libraries.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Require passing compiler arguments to `index` command.  \n  [Brian Gesiak](https://github.com/modocache)\n\n* Remove `--compilerargs` CLI flag. Arguments are now passed after `--`.  \n  [Keith Smiley](https://github.com/keith)\n\n##### Enhancements\n\n* Refactor to unite swift lang syntax types with SwiftLangSyntax protocol.\n\n* Make SwiftDocKey public.  \n  [Evgeny Suvorov](https://github.com/esuvorov)\n\n* Swift 2.3 support.  \n  [Syo Ikeda](https://github.com/ikesyo)\n\n* The following availability and deprecation values are now exposed for Objective-C APIs.\n\n  * key.always_deprecated\n  * key.always_unavailable\n  * key.deprecation_message\n  * key.unavailable_message  \n  [Jeff Verkoeyen](https://github.com/jverkoey)\n\n* Add `SwiftDeclarationKind.PrecedenceGroup`.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fix issue where single-line declaration+bodies would include the body in the\n  parsed declaration when generating docs.  \n  [JP Simard](https://github.com/jpsim)\n  [#45](https://github.com/jpsim/SourceKitten/issues/45)\n  [realm/jazzy#226](https://github.com/realm/jazzy/issues/226)\n\n* Fix issue where directories ending with `.swift` would be considered Swift\n  source files.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#586](https://github.com/realm/jazzy/issues/586)\n\n## 0.13.0\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add `format` command that re-indents a Swift file much like pasting into\n  Xcode would. This command optionally takes the following parameters:\n\n  * `--file (string)`: relative or absolute path of Swift file to format\n  * `--no-trim-whitespace`: trim trailing whitespace\n  * `--use-tabs`: use tabs to indent\n  * `--indent-width (integer)`: number of spaces to indent  \n  [JP Simard](https://github.com/jpsim)\n\n* Add `--spm-module [ModuleName]` flag to `doc` to document Swift Package\n  Manager modules. Need to run `swift build` prior to running\n  `sourcekitten doc`. The right Swift toolchain version must also be selected\n  (by setting `TOOLCHAIN_DIR` or similar).  \n  [JP Simard](https://github.com/jpsim)\n\n* Add support `TOOLCHAINS` environment variable to selecting alternative\n  toolchains for loading SourceKitService.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Bug Fixes\n\n* Add support for handling `CXCursor_UnexposedDecl` declarations when\n  documenting Objective-C.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#543](https://github.com/realm/jazzy/issues/543)\n\n## 0.12.2\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add `index` command.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* None.\n\n## 0.12.1\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Swift declarations are included when generating Objective-C documentation.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#136](https://github.com/realm/jazzy/issues/136)\n\n##### Bug Fixes\n\n* Fixed situations where the wrong documentation comment was found for a\n  declaration, or when documentation comments were further than a single line\n  away from their declaration and the declaration would be incorrectly\n  considered undocumented.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#454](https://github.com/realm/jazzy/issues/454)\n  [realm/jazzy#502](https://github.com/realm/jazzy/issues/502)\n\n## 0.12.0\n\n##### Breaking\n\n* Updated for Xcode 7.3.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* None.\n\n## 0.11.0\n\n##### Breaking\n\n* Now `libclang.dylib` and `sourcekitd.framework` are dynamically loaded at\n  runtime by SourceKittenFramework to use the versions included in the Xcode\n  version specified by `xcode-select -p` or custom toolchains. If\n  SourceKittenFramework clients previously accessed either of these libraries\n  directly using their APIs, those are no longer available.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#167](https://github.com/jpsim/SourceKitten/issues/167)\n\n##### Enhancements\n\n* Simplify the process of generating library wrappers and validate library\n  wrappers in unit tests.  \n  [JP Simard](https://github.com/jpsim)\n\n* Support `swift test` on OS X.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Bug Fixes\n\n* Fix crash on DOS newlines.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [realm/SwiftLint#315](https://github.com/realm/SwiftLint/issues/315)\n\n* Fix doc.comment blank for many declarations, causing missing Jazzy docs.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#142](https://github.com/jpsim/SourceKitten/issues/142)\n\n* Fix "Unrecognized arguments:" error on `doc` command.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#174](https://github.com/jpsim/SourceKitten/issues/174)\n\n* Fix "illegal hardware instruction" error when SourceKitService returns\n  string in other than `NSUTF8StringEncoding`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#184](https://github.com/jpsim/SourceKitten/issues/184)\n\n## 0.10.0\n\n##### Breaking\n\n* Change `SwiftDocs.init(file:arguments:)` to\n  `SwiftDocs.init?(file:arguments:)`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Enhancements\n\n* Add `Request.failableSend()` that can handle SourceKitService crashes.\n  `sourcekitten doc` does not stop when SourceKitService crashes.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Bug Fixes\n\n* Fix crash when offset points end of string.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [realm/SwiftLint#164](https://github.com/realm/SwiftLint/issues/164)\n\n## 0.9.0\n\n##### Breaking\n\n* Change `Line` from tuple to struct with extra properties `range` and\n  `byteRange`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Enhancements\n\n* None.\n\n##### Bug Fixes\n\n* None.\n\n## 0.8.0\n\n##### Breaking\n\n* Replaced all uses of `XPCDictionary`, `XPCArray`, `XPCRepresentable` &\n  `xpc_object_t` with SourceKit equivalents.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* Supports building with Swift 2.2 snapshot & Swift Package Manager on OS X.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fix crash when file contains NULL character.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [realm/SwiftLint#379](https://github.com/realm/SwiftLint/issues/379)\n\n## 0.7.4\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add `Structure.init(sourceKitResponse:)`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Improve performance of `Request.send()`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Bug Fixes\n\n* Add support for parsing module imports in Objective-C.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#452](https://github.com/realm/jazzy/issues/452)\n\n## 0.7.3\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Add `NSString.lineAndCharacterForByteOffset`.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fixed multi-byte character handling in `File.getDocumentationCommentBody`.  \n  [JP Simard](https://github.com/jpsim)\n\n## 0.7.2\n\n##### Breaking\n\n* None.\n\n##### Enhancements\n\n* Optimize `NSString.lineAndCharacterForCharacterOffset(...)`,\n  `NSString.NSRangeToByteRange(...)` and\n  `SyntaxMap.commentRangeBeforeOffset(_:)`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#119](https://github.com/jpsim/SourceKitten/issues/119)\n\n* Fix unicode handling of `String.commentBody(range:)`.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n##### Bug Fixes\n\n* None.\n\n## 0.7.1\n\n##### Enhancements\n\n* Optimize `NSRange` operation.  \n  [Norio Nomura](https://github.com/norio-nomura)\n  [#119](https://github.com/jpsim/SourceKitten/issues/119)\n\n## 0.7.0\n\n##### Breaking\n\n* `File` is now a `final class` instead of a `struct` and `contents` & `lines`\n  are now marked as `var`. This was done so that mutations to the underlying\n  file on disk can be mirrored in a `File` instance.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\nNone.\n\n##### Bug Fixes\n\n* Fix issue where Swift extensions would pick up documentation from previous\n  tokens.  \n  [JP Simard](https://github.com/jpsim)\n  [#65](https://github.com/jpsim/SourceKitten/issues/65)\n\n* Fix `String.stringByTrimmingTrailingCharactersInSet(_:)` returning full string\n  when all characters matched character set.  \n  [JP Simard](https://github.com/jpsim)\n\n* Fix `indexOfByteOffset(offset:)` failing when string include some emoji.  \n  [Norio Nomura](https://github.com/norio-nomura)\n\n* Fix pragma mark extraction with multibyte characters.  \n  [1ec5](https://github.com/1ec5)\n  [#114](https://github.com/jpsim/SourceKitten/issues/114)\n\n## 0.6.2\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\n* Increase robustness of file path handling.  \n  [Boris Bügling](https://github.com/neonichu)\n  [#86](https://github.com/jpsim/SourceKitten/issues/86)\n\n##### Bug Fixes\n\n* Add support for C/C++ struct, field & ivar types.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#374](https://github.com/realm/jazzy/issues/374)\n  [realm/jazzy#387](https://github.com/realm/jazzy/issues/387)\n\n\n## 0.6.1\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\n* Support "wall of asterisk" documentation comments.  \n  [Jeff Verkoeyen](https://github.com/jverkoey)\n\n##### Bug Fixes\n\n* Fix a string interpolation issue when generating completion options.  \n  [Benedikt Terhechte](https://github.com/terhechte)\n  [#97](https://github.com/jpsim/SourceKitten/issues/97)\n\n* Fix an out-of-bounds exception when generating pragma marks.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#370](https://github.com/realm/jazzy/issues/370)\n\n\n## 0.6.0\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\n* Ability to generate Objective-C documentation.  \n  [Thomas Goyne](https://github.com/tgoyne)\n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Don\'t process SourceKit\'s response when building Structure.  \n  [JP Simard](https://github.com/jpsim)\n  [#82](https://github.com/jpsim/SourceKitten/issues/82)\n\n\n## 0.5.2\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\n* Add `compilerargs` option to complete command.  \n  [Masayuki Yamaya](https://github.com/yamaya)\n\n* Add support for Xcode 7.1.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fix a bug where documentation inside a function would crash SourceKitten.  \n  [JP Simard](https://github.com/jpsim)\n  [#75](https://github.com/jpsim/SourceKitten/issues/75)\n\n\n## 0.5.1\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\n* Improve error reporting when compiler arguments can\'t be parsed and log\n  `xcodebuild` output to file instead of stderr.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\nNone.\n\n\n## 0.5.0\n\n##### Breaking\n\n* Updated to Swift 2.0.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\n* Update `File` `lines` convenience property to be immutable.  \n  [Keith Smiley](https://github.com/keith)\n\n* Added the ability to generate code completion options (`complete` command).  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\nNone.\n\n\n## 0.4.5\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\n* Add `lines` convenience property to `File`  \n  [Keith Smiley](https://github.com/keith)\n\n##### Bug Fixes\n\nNone.\n\n\n## 0.4.4\n\n##### Breaking\n\n* Simplified rpath\'s.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\nNone.\n\n##### Bug Fixes\n\n* Fixed a crash when parsing an empty documentation comment.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#236](https://github.com/realm/jazzy/issues/236)\n\n\n## 0.4.3\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\nNone.\n\n##### Bug Fixes\n\n* Fixed issue when installing 0.4.2 via Homebrew.  \n  [JP Simard](https://github.com/jpsim)\n\n\n## 0.4.2\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\nNone.\n\n##### Bug Fixes\n\n* SourceKitten can now be installed alongside Carthage because\n  SourceKittenFramework now nests its Commandant and LlamaKit frameworks.  \n  [JP Simard](https://github.com/jpsim)\n\n\n## 0.4.1\n\n##### Breaking\n\n* SwiftDocs now prints its file path in its `description`.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\nNone.\n\n##### Bug Fixes\n\nNone.\n\n\n## 0.4.0\n\n##### Breaking\n\n* Requires Swift 1.2 to build.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Enhancements\n\nNone.\n\n##### Bug Fixes\n\nNone.\n\n\n## 0.3.2\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\n* Added definition line ranges to declarations.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#198](https://github.com/realm/jazzy/issues/198)\n\n* Parse `doc.full_as_xml`.  \n  [JP Simard](https://github.com/jpsim)\n  [#37](https://github.com/jpsim/SourceKitten/issues/37)\n\n* Parse documentation comments.  \n  [JP Simard](https://github.com/jpsim)\n\n##### Bug Fixes\n\n* Fixed out-of-bounds exception when parsing the declaration in files starting\n  with a declaration.  \n  [JP Simard](https://github.com/jpsim)\n  [#30](https://github.com/jpsim/SourceKitten/issues/30)\n\n* Fixed out-of-bounds exception and inaccurate parsed declarations when using\n  multibyte characters.  \n  [JP Simard](https://github.com/jpsim)\n  [#35](https://github.com/jpsim/SourceKitten/issues/35)\n\n* Fixed parsing issues with keyword functions such as `subscript`, `init` and\n  `deinit`.  \n  [JP Simard](https://github.com/jpsim)\n  [#27](https://github.com/jpsim/SourceKitten/issues/27)\n\n* Fixed issues where USR wasn\'t accurate because dependencies couldn\'t be\n  resolved.  \n  [JP Simard](https://github.com/jpsim)\n\n\n## 0.3.0\n\n##### Breaking\n\n* Everything. No, seriously lots has changed in this release and you should\n  consider SourceKitten entirely rewritten. SourceKitten now uses dynamic\n  frameworks for the bulk of its functionality, which means that everything is\n  now much more modular and testable.  \n  [JP Simard](https://github.com/jpsim)\n  [#17](https://github.com/jpsim/SourceKitten/issues/17)\n\n##### Enhancements\n\n* Consolidated error generation.  \n  [JP Simard](https://github.com/jpsim)\n  [#24](https://github.com/jpsim/SourceKitten/issues/24)\n\n##### Bug Fixes\n\nNone.\n\n## 0.2.8\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\nNone.\n\n##### Bug Fixes\n\n* Fixed issue where certain Swift files wouldn\'t be parsed.  \n  [JP Simard](https://github.com/jpsim)\n  [#18](https://github.com/jpsim/SourceKitten/issues/18)\n\n## 0.2.7\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\nNone.\n\n##### Bug Fixes\n\n* Fixed improper UTF8 parsing of MARK comments.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#131](https://github.com/realm/jazzy/issues/131)\n\n## 0.2.6\n\n##### Breaking\n\nNone.\n\n##### Enhancements\n\n* Added CHANGELOG.md.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#125](https://github.com/realm/jazzy/issues/125)\n\n* Include parse errors in the JSON output.  \n  [JP Simard](https://github.com/jpsim)\n  [#16](https://github.com/jpsim/SourceKitten/issues/16)\n\n##### Bug Fixes\n\n* Fixed crash when files contained a declaration on the first line.  \n  [JP Simard](https://github.com/jpsim)\n  [#14](https://github.com/jpsim/SourceKitten/issues/14)\n\n* Fixed invalid JSON issue when last file in an Xcode project failed to parse.  \n  [JP Simard](https://github.com/jpsim)\n\n* Fixed crash when attempting to parse the declaration of `extension Array`.  \n  [JP Simard](https://github.com/jpsim)\n  [realm/jazzy#126](https://github.com/realm/jazzy/issues/126)\n', 'message': 'add CHANGELOG entry for #115\n', 'author_name': 'JP Simard', 'lang': 'md'}