Files
sourcekit-lsp/Sources/SwiftSourceKitClientPlugin/ClientPlugin.swift
Alex Hoppen 5709e1a864 Add a SourceKit plugin to handle code completion requests
This adds a sourcekitd plugin that drives the code completion requests. It also includes a `CompletionScoring` module that’s used to rank code completion results based on their contextual match, allowing us to show more relevant code completion results at the top.
2025-01-03 14:21:54 +01:00

33 lines
1.1 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2024 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 SourceKitD
import SwiftSourceKitPluginCommon
#if compiler(>=6)
public import Csourcekitd
#else
import Csourcekitd
#endif
@_cdecl("sourcekitd_plugin_initialize")
public func sourcekitd_plugin_initialize(_ params: sourcekitd_api_plugin_initialize_params_t) {
let skd = DynamicallyLoadedSourceKitD.relativeToPlugin
let customBufferStart = skd.pluginApi.plugin_initialize_custom_buffer_start(params)
let arrayBuffKind = customBufferStart
skd.pluginApi.plugin_initialize_register_custom_buffer(
params,
arrayBuffKind,
CompletionResultsArray.arrayFuncs.rawValue
)
}