use tower_lsp::{
jsonrpc::Error,
lsp_types::{CompletionParams, CompletionResponse},
};
use crate::backend::Backend;
mod file_global_completion;
mod get_program;
mod simple_completion;
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)))
}