From 1bab9e3ed54476d0b4a47da84693a2e4e50effc6 Mon Sep 17 00:00:00 2001 From: Jonas Maier <> Date: Tue, 10 Mar 2026 16:37:07 +0100 Subject: variable completion --- src/completion.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/completion.rs') diff --git a/src/completion.rs b/src/completion.rs index 237e956..61dce76 100644 --- a/src/completion.rs +++ b/src/completion.rs @@ -1,5 +1,5 @@ use crate::*; -use std::fs; +use std::{env, fs}; pub struct Suggestion { pub display: BString, @@ -55,3 +55,27 @@ pub fn path_completion(prefix: BString) -> Vec { } } } + +pub fn variable_completion(session: Arc>, prefix: BString) -> Vec { + let se = session.lock().unwrap(); + let mut out = Vec::new(); + for var in se.vars.keys() { + if var.starts_with(&prefix) { + out.push(Suggestion { + display: var.to_vec(), + delta: var[prefix.len()..].to_vec(), + }); + } + } + drop(se); + for var in env::vars_os() { + let var = var.0.as_bytes(); + if var.starts_with(&prefix) { + out.push(Suggestion { + display: var.to_vec(), + delta: var[prefix.len()..].to_vec(), + }); + } + } + out +} -- cgit v1.2.3