about summary refs log tree commit diff
path: root/alpine-river/config/fish/functions/_fzf_extract_var_info.fish
diff options
context:
space:
mode:
Diffstat (limited to 'alpine-river/config/fish/functions/_fzf_extract_var_info.fish')
-rw-r--r--alpine-river/config/fish/functions/_fzf_extract_var_info.fish15
1 files changed, 15 insertions, 0 deletions
diff --git a/alpine-river/config/fish/functions/_fzf_extract_var_info.fish b/alpine-river/config/fish/functions/_fzf_extract_var_info.fish
new file mode 100644
index 0000000..dd4e952
--- /dev/null
+++ b/alpine-river/config/fish/functions/_fzf_extract_var_info.fish
@@ -0,0 +1,15 @@
+# helper function for _fzf_search_variables
+function _fzf_extract_var_info --argument-names variable_name set_show_output --description "Extract and reformat lines pertaining to \$variable_name from \$set_show_output."
+    # Extract only the lines about the variable, all of which begin with either
+    # $variable_name: ...or... $variable_name[
+    string match --regex "^\\\$$variable_name(?::|\[).*" <$set_show_output |
+
+        # Strip the variable name prefix, including ": " for scope info lines
+        string replace --regex "^\\\$$variable_name(?:: )?" '' |
+
+        # Distill the lines of values, replacing...
+        #   [1]: |value|
+        # ...with...
+        #   [1] value
+        string replace --regex ": \|(.*)\|" ' $1'
+end