Created attachment 9735 [details] Пример Если регистр буквы подлежащей замене отличается от регистра букв этого слова, то плагин выводит ошибку. Обнаружена ошибка при обработке function CorrectYo: строка 4: Traceback (most recent call last): File "<string>", line 2, in <module> File "/usr/share/vim/vimfiles/plugin/yospellchecker/spellchecker.py", line 225, in main spellchecker.necessary_correction() File "/usr/share/vim/vimfiles/plugin/yospellchecker/spellchecker.py", line 93, in necessary_correction self.buffer[matches[i].start():matches[i].end()] = replacement.encode() AttributeError: 'NoneType' object has no attribute 'encode'
Ошибка подтверждается анализом актуальных исходников yospellchecker-0.0-alt1, которые не менялись после регистрации бага. В spellchecker.py функция __fix_case() возвращает None, если регистр исходного слова не распознан как lower, upper или title. Результат затем без проверки используется в строке: self.buffer[...] = replacement.encode() Это непосредственно приводит к указанной ошибке: AttributeError: 'NoneType' object has no attribute 'encode' Предлагаю оставить баг открытым. Исправление должно явно обрабатывать смешанный или иной неподдерживаемый регистр до вызова encode(), после чего необходим тест с примером из бага.