make sure docs don't show up for globals that aren't commands

pull/8675/merge^2
Matt Paras 2025-05-19 06:56:12 -07:00
parent e6b0badcd0
commit 94927711b4
2 changed files with 28 additions and 22 deletions

24
Cargo.lock generated
View File

@ -612,7 +612,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.59.0", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -2228,7 +2228,7 @@ dependencies = [
"portable-atomic", "portable-atomic",
"portable-atomic-util", "portable-atomic-util",
"serde", "serde",
"windows-sys 0.59.0", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -2898,7 +2898,7 @@ dependencies = [
"errno", "errno",
"libc", "libc",
"linux-raw-sys 0.4.15", "linux-raw-sys 0.4.15",
"windows-sys 0.59.0", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -2911,7 +2911,7 @@ dependencies = [
"errno", "errno",
"libc", "libc",
"linux-raw-sys 0.9.4", "linux-raw-sys 0.9.4",
"windows-sys 0.59.0", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -3125,7 +3125,7 @@ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
"psm", "psm",
"windows-sys 0.59.0", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -3137,7 +3137,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]] [[package]]
name = "steel-core" name = "steel-core"
version = "0.6.0" version = "0.6.0"
source = "git+https://github.com/mattwparas/steel.git#e308663bcb50275288261a37659c9562909246e0" source = "git+https://github.com/mattwparas/steel.git#a81a2b6ca26c5cd64de908bcf1c680b49deb5710"
dependencies = [ dependencies = [
"abi_stable", "abi_stable",
"anyhow", "anyhow",
@ -3189,7 +3189,7 @@ dependencies = [
[[package]] [[package]]
name = "steel-derive" name = "steel-derive"
version = "0.5.0" version = "0.5.0"
source = "git+https://github.com/mattwparas/steel.git#e308663bcb50275288261a37659c9562909246e0" source = "git+https://github.com/mattwparas/steel.git#a81a2b6ca26c5cd64de908bcf1c680b49deb5710"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -3199,7 +3199,7 @@ dependencies = [
[[package]] [[package]]
name = "steel-doc" name = "steel-doc"
version = "0.6.0" version = "0.6.0"
source = "git+https://github.com/mattwparas/steel.git#e308663bcb50275288261a37659c9562909246e0" source = "git+https://github.com/mattwparas/steel.git#a81a2b6ca26c5cd64de908bcf1c680b49deb5710"
dependencies = [ dependencies = [
"steel-core", "steel-core",
] ]
@ -3207,7 +3207,7 @@ dependencies = [
[[package]] [[package]]
name = "steel-gen" name = "steel-gen"
version = "0.2.0" version = "0.2.0"
source = "git+https://github.com/mattwparas/steel.git#e308663bcb50275288261a37659c9562909246e0" source = "git+https://github.com/mattwparas/steel.git#a81a2b6ca26c5cd64de908bcf1c680b49deb5710"
dependencies = [ dependencies = [
"codegen", "codegen",
"serde", "serde",
@ -3216,7 +3216,7 @@ dependencies = [
[[package]] [[package]]
name = "steel-parser" name = "steel-parser"
version = "0.6.0" version = "0.6.0"
source = "git+https://github.com/mattwparas/steel.git#e308663bcb50275288261a37659c9562909246e0" source = "git+https://github.com/mattwparas/steel.git#a81a2b6ca26c5cd64de908bcf1c680b49deb5710"
dependencies = [ dependencies = [
"compact_str", "compact_str",
"fxhash", "fxhash",
@ -3291,7 +3291,7 @@ dependencies = [
"getrandom 0.3.2", "getrandom 0.3.2",
"once_cell", "once_cell",
"rustix 1.0.5", "rustix 1.0.5",
"windows-sys 0.59.0", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -3757,7 +3757,7 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [ dependencies = [
"windows-sys 0.59.0", "windows-sys 0.52.0",
] ]
[[package]] [[package]]

View File

@ -2200,15 +2200,21 @@ impl HelixConfiguration {
// Get doc from function ptr table, hack // Get doc from function ptr table, hack
fn get_doc_for_global(engine: &mut Engine, ident: &str) -> Option<String> { fn get_doc_for_global(engine: &mut Engine, ident: &str) -> Option<String> {
if engine.global_exists(ident) { if engine.global_exists(ident) {
let expr = format!("(#%function-ptr-table-get #%function-ptr-table {})", ident); let readable_globals = engine.readable_globals(*GLOBAL_OFFSET.get().unwrap());
Some(
engine for global in readable_globals {
.run(expr) if global.resolve() == ident {
.ok() let expr = format!("(#%function-ptr-table-get #%function-ptr-table {})", ident);
.and_then(|x| x.first().cloned())
.and_then(|x| x.as_string().map(|x| x.as_str().to_string())) let doc = engine.run(expr).ok().and_then(|x| x.first().cloned());
.unwrap_or_else(|| "Undocumented plugin command".to_string()),
) if let Some(doc) = doc {
return doc.as_string().map(|x| x.as_str().to_string());
}
}
}
None
} else { } else {
None None
} }
@ -3504,7 +3510,7 @@ fn configure_engine_impl(mut engine: Engine) -> Engine {
// Create directory since we can't do that in the current state // Create directory since we can't do that in the current state
engine.register_fn("hx.create-directory", create_directory); engine.register_fn("hx.create-directory", create_directory);
GLOBAL_OFFSET.set(engine.readable_globals(0).len()).unwrap(); GLOBAL_OFFSET.set(engine.globals().len()).unwrap();
engine engine
} }