use crate::{
SpanCache,
Uri,
database::PartitionWriteContextRef,
protocol::jsonrpc,
scheduler::{
lanes::{
DEFAULT_LANE,
Lane,
},
task::TaskContext,
},
source::SourceKey,
};
#[trait_variant::make(Send)]
pub trait LaburnumHooks<
P: crate::database::storage::Partitions,
T: crate::protocol::lsp::LanguageServer<P>,
>: Send + Sync + 'static
{
#[allow(unused_variables)]
async fn on_initialize(
ctx: &mut TaskContext<P, T>,
writer: &mut PartitionWriteContextRef<'_, P>,
capabilities: &mut crate::protocol::lsp::ServerCapabilities,
) -> Result<(), jsonrpc::Error> {
async move { Ok(()) }
}
const SERVER_NAME: Option<&'static str> = None;
const SERVER_VERSION: Option<&'static str> = None;
#[allow(unused_variables)]
async fn on_file_version(
uri: Uri,
source_key: SourceKey,
src: &str,
span_cache: &mut SpanCache,
ctx: TaskContext<P, T>,
writer: &mut PartitionWriteContextRef<'_, P>,
) -> Result<(), crate::LaburnumError> {
async { Ok(()) }
}
const ON_FILE_VERSION_LANE: Lane = DEFAULT_LANE;
#[allow(unused_variables)]
async fn get_document_symbols(
source_key: SourceKey,
ctx: &TaskContext<P, T>,
) -> Vec<
std::sync::Arc<
dyn crate::partitions::document_symbols::DocumentSymbolRecord,
>,
> {
async { Vec::new() }
}
const GET_DOCUMENT_SYMBOLS_LANE: Lane = DEFAULT_LANE;
}