iterative / shtab

↔️ Automagic shell tab completion for Python CLI applications
https://docs.iterative.ai/shtab
Other
363 stars 35 forks source link

Fix subcommand/choices completion in bash #106

Closed brentyi closed 1 year ago

brentyi commented 2 years ago
  1. The choices list was formerly not being expanded correctly.
  2. Removing local IFS=$'\\n' fixed some issues as well. Wasn't totally following why this was needed.
sourcery-ai[bot] commented 2 years ago

Sourcery Code Quality Report

Merging this PR leaves code quality unchanged.

Quality metrics Before After Change
Complexity 47.11 β›” 47.11 β›” 0.00
Method Length 136.70 😞 136.70 😞 0.00
Working memory 1.67 ⭐ 1.67 ⭐ 0.00
Quality 25.93% 😞 25.93% 😞 0.00%
Other metrics Before After Change
Lines 763 764 1
Changed files Quality Before Quality After Quality Change
shtab/init.py 25.93% 😞 25.93% 😞 0.00%

Here are some functions in these files that still need a tune-up:

File Function Complexity Length Working Memory Quality Recommendation
shtab/init.py get_bash_commands 78 β›” 589 β›” 1.22% β›” Refactor to reduce nesting. Try splitting into smaller methods
shtab/init.py complete_zsh 62 β›” 909 β›” 2.38% β›” Refactor to reduce nesting. Try splitting into smaller methods
shtab/init.py complete_tcsh 53 β›” 470 β›” 4.99% β›” Refactor to reduce nesting. Try splitting into smaller methods
shtab/init.py complete_bash 2 ⭐ 106 πŸ™‚ 11 😞 64.30% πŸ™‚ Extract out complex expressions
shtab/init.py add_argument_to 4 ⭐ 89 πŸ™‚ 11 😞 64.67% πŸ™‚ Extract out complex expressions

Legend and Explanation

The emojis denote the absolute quality of the code:

The πŸ‘ and πŸ‘Ž indicate whether the quality has improved or gotten worse with this pull request.


Please see our documentation here for details on how these metrics are calculated.

We are actively working on this report - lots more documentation and extra metrics to come!

Help us improve this quality report!

codecov-commenter commented 1 year ago

Codecov Report

Base: 74.46% // Head: 74.46% // No change to project coverage :thumbsup:

Coverage data is based on head (9bfda44) compared to base (13de419). Patch has no changes to coverable lines.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #106 +/- ## ======================================= Coverage 74.46% 74.46% ======================================= Files 2 2 Lines 47 47 ======================================= Hits 35 35 Misses 12 12 ``` Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iterative). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iterative)

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

casperdcl commented 1 year ago

/tag v1.5.6 f8203d9

brentyi commented 1 year ago

Thanks @casperdcl!!

NiklasReisser commented 1 year ago

Ah, unsetting IFS in between did the trick! Thanks for fixing this!

casperdcl commented 1 year ago

Yep was unreasonably hard to figure out. Can't tell what's worse about shells - the language itself, or the (lack of) good documentation. 🀺πŸ˜