allow user to customize start number when picking from misspellings interactively
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Start with ask_for_word_fix in codespell_lib/_codespell.py, where the issue shows the option numbering and selection logic. Decide whether the starting number should be configurable through an environment variable or CLI flag, then check how that choice fits the existing command-line options. Done means displayed choices and the selected correction both respect the configured start number.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
As an example,
$ cat broken.txt
OLL
When there are multiple options with -i 3 or -i 2:
$ codespell -i 3 broken.txt
OLL
Choose an option (blank for none): 0) ALL 1) OLE 2) OLD 3) OLLY 4) OIL: 0
broken.txt:1: OLL ==> ALL
It starts with 0 since the underlying code is using enumerate
When I am interactively correcting a bunch of misspellings, I have my left hand on the numbers above qwerty (1,2,3,4), and my right hand on enter.
But, whenever I have to enter 0 (which is pretty frequent) I have to move my right hand back and forth to 0 and back to enter.
It would be nice to be able to configure this to start at 1, so my hand positions don't have to change and I can just zone out and focus on the misspellings instead of having to think about where to move my fingers
The following changes (or some different version of this, configured through a CLI flag?) would let that be configurable:
diff --git a/codespell_lib/_codespell.py b/codespell_lib/_codespell.py
index ae6bc370..c0caf00c 100644
--- a/codespell_lib/_codespell.py
+++ b/codespell_lib/_codespell.py
@@ -695,6 +695,9 @@ def fix_case(word: str, fixword: str) -> str:
return fixword
+start_at = int(os.environ.get("CODESPELL_START_AT", "0"))
+
+
def ask_for_word_fix(
line: str,
match: Match[str],
@@ -735,7 +738,7 @@ def ask_for_word_fix(
opt = [w.strip() for w in misspelling.data.split(",")]
while not r:
print(f"{line_ui} Choose an option (blank for none): ", end="")
- for i, o in enumerate(opt):
+ for i, o in enumerate(opt, start_at):
fixword = fix_case(wrongword, o)
print(f" {i}) {fixword}", end="")
print(": ", end="", flush=True)
@@ -746,7 +749,7 @@ def ask_for_word_fix(
try:
i = int(n)
- r = opt[i]
+ r = opt[i - start_at]
except (ValueError, IndexError):
print("Not a valid option\n")
$ CODESPELL_START_AT=1 codespell -i 3
OLL
Choose an option (blank for none): 1) ALL 2) OLE 3) OLD 4) OLLY 5) OIL: 1
./broken.txt:1: OLL ==> OLE
Am willing to make a PR if this is something that is wanted, would just need to know if it should be a CLI flag or something else
- Langage dominant
- Python
- Étoiles
- 2.4k
- Forks
- 531
- Merge moyen
- 15 h 55 min
- PR mergées (30 j)
- 17
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de codespell-project/codespell
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
codespell-project/codespell#3997 ·
Les mainteneurs répondent en général sous 1 jour
-
No error when beginning with 'Ouverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
codespell-project/codespell#3965 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Add "marcos"Peut-être pris @ekanshul l’a pris il y a 22 jours. Ouvertedictionary
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
codespell-project/codespell#3920 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
question
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
codespell-project/codespell#4005 ·
Les mainteneurs répondent en général sous 1 jour
-
duplicate question
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
codespell-project/codespell#3998 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de codespell-project/codespell
Issues similaires
-
good first issue test
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
ANCORATE/EncryptHome#8 ·
-
PluginProvider.storeInstance races and clobbers the dedup cache for concurrent loadsPeut-être pris @Wilson0511 l’a pris aujourd’hui. Ouverteneeds-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 2 jours
-
Bug: failed Together chat calls do not record operation duration or error.typePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
community documentation good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100