allow user to customize start number when picking from misspellings interactively
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- Python
- Sterne
- 2.4k
- Forks
- 531
- Ø Merge
- 15 Std. 55 Min.
- Gemergte PRs (30 T.)
- 17
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus codespell-project/codespell
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
codespell-project/codespell#3997 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
codespell-project/codespell#3965 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Add "marcos"Evtl. vergeben @ekanshul hat das vor 22 Tagen übernommen. Offendictionary
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
codespell-project/codespell#3920 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
question
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
codespell-project/codespell#4005 ·
Maintainer antworten meist innerhalb von 1 Tag
-
duplicate question
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
codespell-project/codespell#3998 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in codespell-project/codespell
Ähnliche Issues
-
Keybind quest outdatedOffenStatus: Triage Type: Quest
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
GTNewHorizons/GT-New-Horizons-Modpack#27490 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
retentioneering/retentioneering-tools#231 ·
Maintainer antworten meist innerhalb von 1 Tag
-
backend bug documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
geolens-io/geolens#3568 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
mprov-ng/mprov_control_center#450 ·
Maintainer antworten meist innerhalb von 1 Tag