qlue-ls 3.2.1

A language server for SPARQL
Documentation
use crate::server::{
    lsp::{CodeAction, textdocument::TextDocumentItem},
    state::ServerState,
};
use ll_sparql_parser::ast::Var;
mod add_aggregate_to_result;
mod add_label;
mod add_to_result;
mod filter_var;
mod filter_var_lang;

pub(super) fn code_actions(
    var: Var,
    server_state: &ServerState,
    document: &TextDocumentItem,
) -> Vec<CodeAction> {
    let mut code_actions = Vec::new();
    if let Some(code_action) = add_to_result::code_action(&var, document) {
        code_actions.push(code_action)
    }
    if let Some(code_action) = add_label::code_action(&var, server_state, document) {
        code_actions.push(code_action)
    }
    if let Some(code_action) = filter_var_lang::code_action(&var, document) {
        code_actions.push(code_action)
    }
    if let Some(code_action) = filter_var::code_action(&var, document) {
        code_actions.push(code_action)
    }
    if let Some(code_action_vec) = add_aggregate_to_result::code_actions(&var, document) {
        for code_action in code_action_vec {
            code_actions.push(code_action)
        }
    }
    code_actions
}