{"version":"2.1.186","anchor":"shell-variable-tracking-more-zsh-variables-covered","canonical_anchor":"shell-variable-tracking-more-zsh-variables-covered","heading":"Shell Variable Tracking: More zsh Variables Covered","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.186\/e\/shell-variable-tracking-more-zsh-variables-covered","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.186","markdown":"### Shell Variable Tracking: More zsh Variables Covered\n\nThe shell variable static tracker now recognizes additional zsh-specific variables and handles several edge cases correctly.\n\n**Details**\n\n- Added to the safe-to-track list: `FIGNORE`\/`fignore`, `PSVAR`\/`psvar`, `WATCH`\/`watch`, `HISTCHARS`\/`histchars`, `PS1`\/`PROMPT`\/`prompt`, `PS2`\/`PROMPT2`, `PS3`\/`PROMPT3`, `PS4`.\n- `PROMPT4` is now correctly recognized as equivalent to `PS4` and treated the same way.\n- The `-T` flag (zsh tied variable pairs) is now correctly flagged as too complex to track statically.\n- Shell negation (`!cmd`) parsing now properly emits a `negated_command` AST node instead of silently returning `null`, preventing misclassification of negated commands.\n\n**Evidence**\n\nExtended variable list and parser fix (search for `\"FIGNORE\"` in the structural changes and `\"' with -i\/-E\/-F flag\"`)"}