allow user to customize start number when picking from misspellings interactively
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- Python
- Star
- 2.4k
- Fork
- 531
- Merge trung bình
- 15 giờ 55 phút
- Pull request đã merge (30 ngày)
- 17
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của codespell-project/codespell
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
codespell-project/codespell#3997 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
No error when beginning with 'Đang mởenhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
codespell-project/codespell#3965 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add "marcos"Có thể đã có người làm @ekanshul đã nhận 24 ngày trước. Đang mởdictionary
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
codespell-project/codespell#3920 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
question
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
codespell-project/codespell#4005 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
duplicate question
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
codespell-project/codespell#3998 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của codespell-project/codespell
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
aws/sagemaker-python-sdk#6554 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
huggingface/diffusers#15170 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG] LLM conflict check ignores MNEMOSYNE_LLM_MAX_TOKENS, so reasoning models return empty repliesĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
mnemosyne-oss/mnemosyne#1325 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement meshtastic-2.8
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
pskillen/meshflow-api#459 ·