mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Previously, when creating a `SourceKit::CodeCompletion::Completion`, we needed to copy all fields from the underlying `SwiftResult` (aka `swift::ide::CodeCompletionResult`). The arena in which the `SwiftResult` was allocated still needed to be kept alive for the references stored in the `SwiftResult`. To avoid this unnecessary copy, make `SourceKit::CodeCompletion::Completion` store a reference to the underlying `SwiftResult`.
//===----------------------------------------------------------------------===//
// SourceKit README
//===----------------------------------------------------------------------===//
Welcome to SourceKit! SourceKit is a framework for supporting IDE features like
indexing, syntax-coloring, code-completion, etc. In general it provides the
infrastructure that an IDE needs for excellent language support.
SourceKit currently only supports the Swift language.
//===----------------------------------------------------------------------===//
// Linking to the SourceKit C API
//===----------------------------------------------------------------------===//
The stable C API for SourceKit is provided via the sourcekitd.framework which
uses an XPC service for process isolation and the libsourcekitdInProc.dylib
library which is in-process.
libsourcekitdInProc.dylib is more convenient for debugging. To use it either:
-Link to this library instead of the framework ("-lsourcekitdInProc" instead
of "-framework sourcekitd")
-Run the binary that linked to the framework using these environment variables:
DYLD_INSERT_LIBRARIES=/path/to/libsourcekitdInProc.dylib DYLD_FORCE_FLAT_NAMESPACE=1 <...>
//===----------------------------------------------------------------------===//