qlue-ls 3.0.1

A language server for SPARQL
Documentation
use crate::server::lsp::errors::{ErrorCode, LSPError};

#[derive(Debug)]
pub(super) enum CompletionError {
    Localization(String),
    Resolve(String),
    Template(String, tera::Error),
    Request(String),
}

pub(super) fn to_lsp_error(completion_error: CompletionError) -> LSPError {
    match completion_error {
        CompletionError::Localization(message) => LSPError::new(
            ErrorCode::InternalError,
            &format!(
                "Could not localize cursor while handeling Completion-request:\n{}",
                message
            ),
        ),
        CompletionError::Resolve(message) => {
            tracing::error!("Could not resolve completions\n{}", message);
            LSPError::new(ErrorCode::InternalError, &message)
        }
        CompletionError::Template(template, error) => {
            let message = format!("Could not render template \"{}\"\n{:?}", template, error);
            tracing::error!("{}", message);
            LSPError::new(ErrorCode::InternalError, &message)
        }
        CompletionError::Request(error) => {
            let message = format!("Completion query request failed\n{:?}", error);
            tracing::error!("{}", message);
            LSPError::new(ErrorCode::InternalError, &message)
        }
    }
}