mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
Change a l public declarations to the `package` access level, accept for: - The `LanguageServerProtocol` module - The `BuildServerProtocol` module - `InProcessClient.InProcessSourceKitLSPClient` - `LanguageServerProtocolJSONRPC` (I would like to create a more ergonomic API for this like `InProcessSourceKitLSPClient` in the future, but for now, we’ll leave it public) Unfortunately, our pattern of marking functions as `@_spi(Testing) public` no longer works with the `package` access level because declarations at the `package` access level cannot be marked as SPI. I have decided to just mark these functions as `package`. Alternatives would be: - Add an underscore to these functions, like we did for functions exposed for testing before the introduction of `SPI` - Use `@testable` import in the test targets and mark the methods as `internal` Resolves #1315 rdar://128295618
94 lines
6.0 KiB
Swift
94 lines
6.0 KiB
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2020 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
import Csourcekitd
|
|
|
|
extension sourcekitd_api_functions_t {
|
|
package init(_ sourcekitd: DLHandle) throws {
|
|
func loadRequired<T>(_ symbol: String) throws -> T {
|
|
guard let sym: T = dlsym(sourcekitd, symbol: symbol) else {
|
|
throw SKDError.missingRequiredSymbol(symbol)
|
|
}
|
|
return sym
|
|
}
|
|
|
|
func loadOptional<T>(_ symbol: String) -> T? {
|
|
return dlsym(sourcekitd, symbol: symbol)
|
|
}
|
|
|
|
self.init(
|
|
initialize: try loadRequired("sourcekitd_initialize"),
|
|
shutdown: try loadRequired("sourcekitd_shutdown"),
|
|
uid_get_from_cstr: try loadRequired("sourcekitd_uid_get_from_cstr"),
|
|
uid_get_from_buf: try loadRequired("sourcekitd_uid_get_from_buf"),
|
|
uid_get_length: try loadRequired("sourcekitd_uid_get_length"),
|
|
uid_get_string_ptr: try loadRequired("sourcekitd_uid_get_string_ptr"),
|
|
request_retain: try loadRequired("sourcekitd_request_retain"),
|
|
request_release: try loadRequired("sourcekitd_request_release"),
|
|
request_dictionary_create: try loadRequired("sourcekitd_request_dictionary_create"),
|
|
request_dictionary_set_value: try loadRequired("sourcekitd_request_dictionary_set_value"),
|
|
request_dictionary_set_string: try loadRequired("sourcekitd_request_dictionary_set_string"),
|
|
request_dictionary_set_stringbuf: try loadRequired("sourcekitd_request_dictionary_set_stringbuf"),
|
|
request_dictionary_set_int64: try loadRequired("sourcekitd_request_dictionary_set_int64"),
|
|
request_dictionary_set_uid: try loadRequired("sourcekitd_request_dictionary_set_uid"),
|
|
request_array_create: try loadRequired("sourcekitd_request_array_create"),
|
|
request_array_set_value: try loadRequired("sourcekitd_request_array_set_value"),
|
|
request_array_set_string: try loadRequired("sourcekitd_request_array_set_string"),
|
|
request_array_set_stringbuf: try loadRequired("sourcekitd_request_array_set_stringbuf"),
|
|
request_array_set_int64: try loadRequired("sourcekitd_request_array_set_int64"),
|
|
request_array_set_uid: try loadRequired("sourcekitd_request_array_set_uid"),
|
|
request_int64_create: try loadRequired("sourcekitd_request_int64_create"),
|
|
request_string_create: try loadRequired("sourcekitd_request_string_create"),
|
|
request_uid_create: try loadRequired("sourcekitd_request_uid_create"),
|
|
request_create_from_yaml: try loadRequired("sourcekitd_request_create_from_yaml"),
|
|
request_description_dump: try loadRequired("sourcekitd_request_description_dump"),
|
|
request_description_copy: try loadRequired("sourcekitd_request_description_copy"),
|
|
response_dispose: try loadRequired("sourcekitd_response_dispose"),
|
|
response_is_error: try loadRequired("sourcekitd_response_is_error"),
|
|
response_error_get_kind: try loadRequired("sourcekitd_response_error_get_kind"),
|
|
response_error_get_description: try loadRequired("sourcekitd_response_error_get_description"),
|
|
response_get_value: try loadRequired("sourcekitd_response_get_value"),
|
|
variant_get_type: try loadRequired("sourcekitd_variant_get_type"),
|
|
variant_dictionary_get_value: try loadRequired("sourcekitd_variant_dictionary_get_value"),
|
|
variant_dictionary_get_string: try loadRequired("sourcekitd_variant_dictionary_get_string"),
|
|
variant_dictionary_get_int64: try loadRequired("sourcekitd_variant_dictionary_get_int64"),
|
|
variant_dictionary_get_bool: try loadRequired("sourcekitd_variant_dictionary_get_bool"),
|
|
variant_dictionary_get_uid: try loadRequired("sourcekitd_variant_dictionary_get_uid"),
|
|
variant_array_get_count: try loadRequired("sourcekitd_variant_array_get_count"),
|
|
variant_array_get_value: try loadRequired("sourcekitd_variant_array_get_value"),
|
|
variant_array_get_string: try loadRequired("sourcekitd_variant_array_get_string"),
|
|
variant_array_get_int64: try loadRequired("sourcekitd_variant_array_get_int64"),
|
|
variant_array_get_bool: try loadRequired("sourcekitd_variant_array_get_bool"),
|
|
variant_array_get_uid: try loadRequired("sourcekitd_variant_array_get_uid"),
|
|
variant_int64_get_value: try loadRequired("sourcekitd_variant_int64_get_value"),
|
|
variant_bool_get_value: try loadRequired("sourcekitd_variant_bool_get_value"),
|
|
variant_string_get_length: try loadRequired("sourcekitd_variant_string_get_length"),
|
|
variant_string_get_ptr: try loadRequired("sourcekitd_variant_string_get_ptr"),
|
|
variant_data_get_size: loadOptional("sourcekitd_variant_data_get_size"),
|
|
variant_data_get_ptr: loadOptional("sourcekitd_variant_data_get_ptr"),
|
|
variant_uid_get_value: try loadRequired("sourcekitd_variant_uid_get_value"),
|
|
response_description_dump: try loadRequired("sourcekitd_response_description_dump"),
|
|
response_description_dump_filedesc: try loadRequired("sourcekitd_response_description_dump_filedesc"),
|
|
response_description_copy: try loadRequired("sourcekitd_response_description_copy"),
|
|
variant_description_dump: try loadRequired("sourcekitd_variant_description_dump"),
|
|
variant_description_dump_filedesc: try loadRequired("sourcekitd_variant_description_dump_filedesc"),
|
|
variant_description_copy: try loadRequired("sourcekitd_variant_description_copy"),
|
|
send_request_sync: try loadRequired("sourcekitd_send_request_sync"),
|
|
send_request: try loadRequired("sourcekitd_send_request"),
|
|
cancel_request: try loadRequired("sourcekitd_cancel_request"),
|
|
set_notification_handler: try loadRequired("sourcekitd_set_notification_handler"),
|
|
set_uid_handlers: try loadRequired("sourcekitd_set_uid_handlers")
|
|
)
|
|
|
|
}
|
|
}
|