allow user to customize start number when picking from misspellings interactively
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Python
- Estrelas
- 2.4k
- Forks
- 531
- Merge médio
- 15h 55min
- PRs com merge (30d)
- 17
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de codespell-project/codespell
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
codespell-project/codespell#3997 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
codespell-project/codespell#3965 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
Add "marcos"Talvez já em andamento @ekanshul assumiu há 20 dias. Abertadictionary
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
codespell-project/codespell#3920 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
question
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
codespell-project/codespell#4005 ·
Mantenedores costumam responder em até 1 dia
-
duplicate question
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/100
codespell-project/codespell#3998 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de codespell-project/codespell
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
-
Validate finite output clamping limits in StepPredictor.prepare_clamping_params to prevent silent NaN/Inf propagationTalvez já em andamento @muskan-creates352 assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
mllam/neural-lam#848 ·
Mantenedores costumam responder em até 2 dias
-
infra
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
fab-geocommuns/RNB-coeur#1166 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
deepspeedai/DeepSpeed#8951 ·
Mantenedores costumam responder em até 2 dias