Add NODE_VERSION_CHECK_PROJECT option for conditional node version display#2353
Merged
seefood merged 2 commits intoBash-it:masterfrom Oct 7, 2025
Merged
Conversation
…ersion Adds the ability to only show node version in the prompt when inside a Node.js project (detected by presence of package.json). **Problem:** The node version was always displayed in the prompt regardless of the current directory context. This wastes space when working on non-Node.js projects (Python, Ansible, etc.). **Solution:** - New environment variable: `NODE_VERSION_CHECK_PROJECT` (default: false) - When set to 'true', node version only shows in directories with package.json - Searches current directory and parent directories up to $HOME - Applies to all node version display strategies (nvm, node, command) **Usage:** ```bash # Add to ~/.bashrc or ~/.bash_profile before sourcing bash-it export NODE_VERSION_CHECK_PROJECT=true ``` **Implementation:** - New helper function `_is_node_project()` checks for package.json - Modified `node_version_prompt()` to check NODE_VERSION_CHECK_PROJECT - Modified `node_command_version_prompt()` for consistency - Backwards compatible (disabled by default) **Testing:** - Passes shellcheck with no warnings - Passes shfmt formatting checks - Maintains backward compatibility Closes Bash-it#2216 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
seefood
added a commit
that referenced
this pull request
Oct 7, 2025
Updated all three planning documents to reflect the completed work: **Issues Fixed (6 total)**: - #2317: Auto-detect git remote (PR #2345) - #2248: Laravel artisan completion (PR #2349) - #2296: down4me URL malformation (PR #2350) - #2260: SSH completion @ sign (PR #2351) - #2238: Uninstall script backup (PR #2352) - #2216: Node version conditional display (PR #2353) **Changes to docs/plans/**: 1. bash-it-issues-comprehensive-analysis.md - Marked 5 quick wins as FIXED with PR numbers - Updated executive summary: 32 → 27 open issues - Updated work plan to show Phase 1 completed - Updated issue reference appendix 2. bash-it-quick-reference.md - Moved completed issues to "Fixed" section - Updated TL;DR metrics - Removed completed items from decision list - Updated metrics table with current progress 3. bash-it-roadmap-2025.md - Updated health metrics (32 → 27 issues) - Marked Phase 1 as COMPLETED - Listed all 6 PRs with dates - Updated success criteria checkmarks **Remaining Work**: - 1 quick fix (#2314 - todo alias rename) - 18 stale issues to close - 4 strategic decisions needed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
akinomyoga
reviewed
Oct 7, 2025
themes/base.theme.bash
Outdated
|
|
||
| # If NODE_VERSION_CHECK_PROJECT is enabled, only show version in Node.js projects | ||
| if [[ "${NODE_VERSION_CHECK_PROJECT}" == "true" ]] && ! _is_node_project; then | ||
| return |
Contributor
There was a problem hiding this comment.
Some specify the return code as return 0, while some don't. Is there a background? If not, I recommend always specifying the return code explicitly. Bash had some strange behaviors of the return statement without exit code inside trap handlers.
Add explicit return code 0 to all return statements as suggested by @akinomyoga to avoid strange behaviors in trap handlers. Co-Authored-By: akinomyoga <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the ability to only show node version in the prompt when inside a Node.js project directory.
Problem
The node version is always displayed in the prompt regardless of context. This wastes valuable prompt space when working on:
Solution
New environment variable
NODE_VERSION_CHECK_PROJECT:false(maintains current behavior)true: Node version only shows in directories containingpackage.json$HOMEUsage
Add to
~/.bashrcor~/.bash_profilebefore sourcing bash-it:export NODE_VERSION_CHECK_PROJECT=trueImplementation Details
New Helper Function:
Modified Functions:
node_version_prompt()- Main version display functionnode_command_version_prompt()- Legacy version displayCompatibility:
nvm,node,commandExample Behavior
Without
NODE_VERSION_CHECK_PROJECT(current behavior):With
NODE_VERSION_CHECK_PROJECT=true:Testing
Related
Closes #2216
Inspiration
Similar to Powerlevel10k's approach referenced in the issue.
🤖 Generated with Claude Code