junolsp 0.1.7

Language Server for JunoLang
use tower_lsp::{jsonrpc::Error, lsp_types::{CompletionParams, CompletionResponse}};

use crate::backend::Backend;
mod get_program;
mod simple_completion;
mod file_global_completion;


pub (self) use get_program::get_program;
pub async fn completion(
    backend: &Backend,
    params: CompletionParams
) -> Result<Option<CompletionResponse>, Error> {
    let mut items = simple_completion::keywords();
    items.append(&mut simple_completion::builtins());
    items.append(&mut simple_completion::snippets());
    items.append(&mut file_global_completion::file_global_completion(backend, params).await.unwrap());
    Ok(Some(CompletionResponse::Array(items)))
}