mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
According to the LSP specification, arbitrary URIs can be used as document identifiers. Instead of internally assuming that all URIs are URLs, use a DocumentURI enum to represent URIs. These can either be file URLs or other URIs whose value as treated as an opaque string.
42 lines
1.2 KiB
Swift
42 lines
1.2 KiB
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2018 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
/// The content and metadata of a text document.
|
|
public struct TextDocumentItem: Hashable {
|
|
|
|
public var uri: DocumentURI
|
|
|
|
public var language: Language
|
|
|
|
/// The version number of this document, which increases after each edit.
|
|
public var version: Int
|
|
|
|
/// The content of the document.
|
|
public var text: String
|
|
|
|
public init(uri: DocumentURI, language: Language, version: Int, text: String) {
|
|
self.uri = uri
|
|
self.language = language
|
|
self.version = version
|
|
self.text = text
|
|
}
|
|
}
|
|
|
|
extension TextDocumentItem: Codable {
|
|
private enum CodingKeys: String, CodingKey {
|
|
case uri
|
|
case language = "languageId"
|
|
case version
|
|
case text
|
|
}
|
|
}
|