LuaSpell — проверка орфографии в редакторе

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

LuaSpell — проверка орфографии в редакторе

Post by HaRT » Wed 29 Jun, 2016 19:16

Latest post of the previous page:

Aidar wrote: Выложил
Жаль, что Вы не включили в свой код предложенные мною исправления предупреждений luacheck (или не исправили их иным, лучшим образом). Даже исправления окончания слова „строк_“ не взяли.
Эффективный способ демотивировать контрибьюторов.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

LuaSpell — проверка орфографии в редакторе

Post by Aidar » Wed 29 Jun, 2016 19:55

HaRT wrote:Жаль, что Вы не включили в свой код предложенные мною исправления предупреждений luacheck (или не исправили их иным, лучшим образом). Даже исправления окончания слова „строк_“ не взяли.
Эффективный способ демотивировать контрибьюторов.
Ну, проигнорированные мной предупреждения являются (в данном случае) всего лишь подсказками — с моей точки зрения, конечно.
Например, код вида — не решение, а"костыль" для исключения предупреждения, усложняющий код. Предупреждение о неиспользуемых параметрах функции говорит о том, что внутри функции может быть опечатка, из-за которой вместо параметра используется некорректная переменная.
Возможно, следует разобрать полезность предупреждений на странице luacheck.

User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

LuaSpell — проверка орфографии в редакторе

Post by HaRT » Wed 29 Jun, 2016 20:05

Aidar wrote: не решение, а"костыль" для исключения предупреждения, усложняющий код
Да, согласен; потому я и упомянул иные, лучшие способы исправления.
Но я в упор не понимаю, зачем в коде повсеместно конструкции вида local k = k (если уж так хочется, можно присвоить новое значение прямо аргументу, не объявляя новую переменную с тем же именем) — и luacheck на них тоже ругается.
А конструкция вида local _,_ = paramM,paramN — это как раз то, что в коде на Си выглядело бы (void)paramM; (void)paramN; или при использовании соответствующего макроса UNUSED(paramM); UNUSED(paramN); — именно чтобы не было предупреждений компилятора и чтобы новые, которые по существу и потенциально полезны, сразу привлекали к себе внимание.
Aidar wrote: Возможно, следует разобрать полезность предупреждений на странице luacheck.
Я отлично понимаю, зачем выдаётся каждое из предупреждений, которые я подавил/исправил, и когда оно полезно. Без понимания я такими вещами не занимаюсь.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

LuaSpell — проверка орфографии в редакторе

Post by HaRT » Thu 30 Jun, 2016 12:45

Aidar, теперь, когда есть полноценная поддержка пользовательских словарей, открывается прямая дорога к реализации важной недостающей возможности: добавление туда слова. Как мне это видится:
1. Внизу списка вариантов (пусть прежде и пустого) добавляется пункт «Добавить в словарь»/“Add to dictionary” (наверно, перед ним лучше разделитель). Когда он разрешён, а когда запрещён, потребует уточнения в дальнейшем.
2. При выборе этого пункта из подключенных пользовательских словарей отбираются те, которые подходят по языку (т.е. либо на том же языке, либо всеязыкие). Если подходящих словарей несколько, пользователю предлагается выбрать, в который добавлять.
3. Слово дописывается отдельной строкой в конец выбранного словаря (желательно не забыть EOL в конце) и подгружается в проверку. Вопрос, какие концы строк использовать в файле словаря, может потребовать дальнейшей проработки.

Как Вам?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

LuaSpell — проверка орфографии в редакторе

Post by Aidar » Thu 30 Jun, 2016 13:07

HaRT wrote:Aidar, теперь, когда есть полноценная поддержка пользовательских словарей, открывается прямая дорога к реализации важной недостающей возможности: добавление туда слова.
К этому и развиваю. И схема реализации в чём-то похожа.
Но есть особенности: например, для OOoUserDict необходимо добавлять не в конец, а сразу в правильную позицию, иначе LibreOffice перестаёт корректно обрабатывать такой словарь, а сортировка слов там с нюансами.
Ну и было бы неплохо реализовать поддержку работы с гибридными словами, т.к. не все могут редактировать Colorer-схемы.

User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

LuaSpell — проверка орфографии в редакторе

Post by HaRT » Thu 30 Jun, 2016 13:32

Aidar wrote: для OOoUserDict необходимо добавлять не в конец, а сразу в правильную позицию
Можно было бы для начала реализовать добавление в WordList как более простое, а уж затем и в OOoUserDict. Так ценность (value) появится раньше.
Aidar wrote: реализовать поддержку работы с гибридными словами
Мне кажется, это менее востребованная возможность, чем добавление в пользовательский словарь.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

LuaSpell — проверка орфографии в редакторе

Post by Aidar » Sat 02 Jul, 2016 17:56

HaRT wrote:3. Выставлена скрытая прежде возможность вызвать перехода на предыдущее ошибочное слово...
Дореализовал (правда, пока частичный) поиск и переход на предыдущее ошибочное слово.
MacroKey Misspelling переименован в FindNext. .
Предложенные по умолчанию сочетания клавиш оказались удобными. Спасибо.

User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

LuaSpell — проверка орфографии в редакторе

Post by HaRT » Wed 06 Jul, 2016 17:38

Натолкнулся тут на ложные срабатывания на словах, в середине которых законно расположен апостроф: isn't doesn't hasn't wouldn't shouldn't couldn't. (На некоторые: won't don't haven't — не ругается, поскольку части до апострофа являются в свою очередь существующими словами.)
Как бы эту ситуацию побороть, чтобы ничего другого не сломать?

Конфигурация у меня прежняя с одной поправкой.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

LuaSpell — проверка орфографии в редакторе

Post by Aidar » Thu 07 Jul, 2016 19:00

HaRT wrote:Натолкнулся тут на ложные срабатывания на словах, в середине которых законно расположен апостроф...
Надо подправить файл конфигурации .

User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

LuaSpell — проверка орфографии в редакторе

Post by HaRT » Thu 07 Jul, 2016 19:20

Aidar wrote: Надо подправить файл конфигурации
Спасибо, помогло.

А вот сегодня у меня появилось обоснованное подозрение, что слова из пользовательского словаря не попадают в меню вариантов исправления. Почему я так считаю? Оставляем в пользовательском словаре единственное слово, притом такое, которого нет в основных словарях, например, эйяфьядлайёкюдляция. Перегружаем словари (путём перезагрузки макросов), открываем пользовательский словарь на редактирование, включаем подсветку ошибок — ничего не подсвечивается (пока всё правильно). Удаляем из середины слова одну букву (например, ‘ё’) — слово подсвечивается; вызываем меню вариантов — оно пустое! А должно-то как раз состоять из только что испорченного нами слова…
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

LuaSpell — проверка орфографии в редакторе

Post by Aidar » Thu 07 Jul, 2016 19:40

HaRT wrote:...А вот сегодня у меня появилось обоснованное подозрение, что слова из пользовательского словаря не попадают в меню вариантов исправления.
1. Для пользовательских словарей такой функционал не реализован.
2. Список слов формируется библиотекой Hunspell только из первого подходящего словаря типа Hunspell.
3. Нет понятно изложенного и легко и просто реализуемого алгоритма выбора слов для такого меню.

User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

LuaSpell — проверка орфографии в редакторе

Post by HaRT » Thu 07 Jul, 2016 19:47

Aidar, ясно, спасибо.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

Return to “Полезные макросы и скрипты”