Skip to content

Unexpected behaviour of ignore-words-list when handling cases #3584

@DanielYang59

Description

@DanielYang59

Behaviour of ignore-words-list seems different than a single ignore pattern (the latter has to match its case as in the dictionarty):

-L WORDS, --ignore-words-list WORDS
comma-separated list of words to be ignored by
codespell. Words are case sensitive based on how they
are written in the dictionary file.

Say I have typo titel in target file, and using pattern titel works while TITEL doesn't (as expected). Then I have another typo Mater in target file, and using both Mater/mater seems to work (why? the dict entry is mater and I didn't find another entry as Mater).

For example for test file (as .py):

titel = 0

Mater = 1
# Expected behaviour
>>> codespell --ignore-words-list titel test_words_list.py
test_words_list.py:3: Mater ==> Matter, Master, Mother

>>> codespell --ignore-words-list TITEL test_words_list.py 
test_words_list.py:1: titel ==> title
test_words_list.py:3: Mater ==> Matter, Master, Mother


# Unexpected, why both Mater and mater work (dict entry is "mater")
>>> codespell --ignore-words-list Mater test_words_list.py 
test_words_list.py:1: titel ==> title

>>> codespell --ignore-words-list mater test_words_list.py 
test_words_list.py:1: titel ==> title

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions