#942: Add new git_branch_0v_to_dash_v rule

* fix fuckup `branch 0v` by...

...deleting branch `0v` and running `git branch -v` as the user intended

* use quotes consistently

* provide new  solution implementation based on feedback on PR

* rename files to more accurately reflect their more generic contents

* update import statement to match new file name

* update command name in README.md

* separate out matching tests so the pattern is clear for those who add matches in the future
This commit is contained in:
ProfessorTom
2021-07-01 16:07:38 -05:00
committed by GitHub
parent 373f445e9b
commit 24576b30b2
3 changed files with 59 additions and 0 deletions
@@ -0,0 +1,36 @@
from thefuck.shells import shell
from thefuck.specific.git import git_support
from thefuck.utils import memoize
'''
keys are fatfingered entry, values are two-element tuples
where the first element is "the fix" and the second element
is "what you meant to do
'''
# clunky when there's only one key, but as others get added, I _think_
# this will be cleaner
flags_and_their_fixes = dict()
flags_and_their_fixes["v"] = ('git branch -D 0v', 'git branch -v')
@memoize
def _supported_flag_fix(command):
flag = command.script_parts[2:][0]
if len(flag) == 2 and flag.startswith("0"):
return flags_and_their_fixes[flag[1]]
else:
return None
@git_support
def match(command):
return (command.script_parts
and command.script_parts[1] == 'branch'
and _supported_flag_fix(command) is not None)
@git_support
def get_new_command(command):
fix_parts = _supported_flag_fix(command)
return shell.and_(fix_parts[0], fix_parts[1])