mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-06-24 12:21:58 +02:00
223a88cb8c
- **`sourcekit/workspace/symbolNames`** — returns a flat, deduplicated list of every symbol name in the workspace index (source and indexed system modules). Clients use this to drive their search UI locally. - **`sourcekit/workspace/symbolInfo`** — given a list of exact symbol names, returns `WorkspaceSymbolItem` for each occurrence across all workspaces, for display in the search result list. Source-file symbols get `SymbolInformation` with a `file://` location. SDK/stdlib symbols get a `WorkspaceSymbol` with `location: .uri(…)` The client must call `workspaceSymbol/resolve` after the user selects an SDK/stdlib symbol to obtain the concrete interface location. - **`workspaceSymbol/resolve`** — resolves the deferred `WorkspaceSymbol` location from `sourcekit/workspace/symbolInfo`. Parses the `?module=` value into `moduleName`/`groupName`, finds a real source file via `mainFiles(containing:)`, calls `openGeneratedInterface`, and returns the symbol with `location` replaced by a full `sourcekit-lsp://generated-swift-interface/` URI + range (or a temp `file://` path for clients without `workspace/getReferenceDocument` support).
45 lines
1.4 KiB
Swift
45 lines
1.4 KiB
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2026 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See https://swift.org/LICENSE.txt for license information
|
|
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
@_spi(SourceKitLSP) import LanguageServerProtocol
|
|
|
|
/// Metadata stored in `CallHierarchyItem.data` and `TypeHierarchyItem.data` to support
|
|
/// incoming/outgoing call and supertype/subtype lookups.
|
|
struct HierarchyItemData: Codable, Hashable, LSPAnyCodable {
|
|
var uri: DocumentURI
|
|
var usr: String
|
|
|
|
init(uri: DocumentURI, usr: String) {
|
|
self.uri = uri
|
|
self.usr = usr
|
|
}
|
|
}
|
|
|
|
/// Metadata stored in `CompletionItem.data` and `InlayHint.data` at the server level to route
|
|
/// resolve requests to the correct language service.
|
|
struct ResolveItemData: Codable, Hashable, LSPAnyCodable {
|
|
var uri: DocumentURI
|
|
|
|
init(uri: DocumentURI) {
|
|
self.uri = uri
|
|
}
|
|
}
|
|
|
|
/// Metadata stored in `WorkspaceSymbol.data` to support `workspaceSymbol/resolve` for SDK symbols.
|
|
struct WorkspaceSymbolData: Codable, Hashable, LSPAnyCodable {
|
|
var usr: String
|
|
|
|
init(usr: String) {
|
|
self.usr = usr
|
|
}
|
|
}
|