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

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

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

Пакет поддерживает словари, используемые Hunspell, а также словари OOoUserDict1 (пользовательский словарь OpenOffice) и WordList (список слов).
Для Hunspell‑словарей используется библиотека hunspell из проекта luapower.

На PlugRing также выложены:
  • LuaSpell-hunspell-1.3.2.7z — библиотека hunspell v.1.3.2.
  • LuaSpell-Dictionaries.7z — русский (с "ё") и английский словари в кодировке UTF‑8.
Перед установкой прочтите LuaSpell\doc\Install.rus.

Последнюю версию библиотеки hunspell можно также скачать здесь.

Внимание:
Все файлы словарей должны быть в кодировке UTF-8 без BOM,
а в первой строке aff-файлов нужно прописать "SET UTF-8" (без кавычек).

Текущая версия: PlugRing.
Ссылки:
Описание, GitHub, tags, zipball, master.zip.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Latest post of the previous page:

Dennis_Moore wrote:...Мне кажется строки... попали в LuaSpell.lua по недосмотру.
Точно, недосмотрел, спасибо.
LuaSpell-3.2.0.1.7z
(11.66 KiB) Downloaded 206 times
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

Интересно, получится ли найти Hunspellx86.dll, которая была бы совместима с обоими макросами проверки и с плагином. Пока что все варианты, которые я пробовал, с кем-то одним несовместимы, выдают ошибки наподобии «cannot resolve symbol 'Hunspell_create': Не найдена указанная процедура.» или что-то в этом роде.
А, есть же ещё модуль для FarDotNet.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Wave wrote: получится ли найти Hunspellx86.dll, которая была бы совместима с обоими макросами проверки и с плагином
А зачем? Какие сценарии использования являются уникальными для каждого плагина/скрипта?
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлена ссылка на плагин Hunspell
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Wave wrote: Интересно, получится ли найти Hunspellx86.dll, которая была бы совместима с обоими макросами проверки и с плагином.
Нет
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

HaRT wrote:
Wave wrote: получится ли найти Hunspellx86.dll, которая была бы совместима с обоими макросами проверки и с плагином
А зачем? Какие сценарии использования являются уникальными для каждого плагина/скрипта?
Плагин не умеет подсвечивать все слова с ошибками. Скрипты подсвечивают, но не умеют прыгать к следующему ошибочному слову. Если, конечно, я не слепой.
Итого, оптимальней всего использовать скрипт (один из двух) для подсветки и плагин для исправления. Вот и выбираю, какой скрипт мне больше нравится.

All-in-one получается Far.NET.RightWords, но модуль RightWords — единственный, ради которого я бы вообще захотел иметь Far.NET. А так — не хочу.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Wave wrote:Интересно, получится ли найти Hunspellx86.dll, которая была бы совместима с обоими макросами проверки и с плагином...
Можно поступить так: в modules\hunspell.luaизменяете строку

Code: Select all

local lib_name = "hunspell"..(win.GetEnv("PROCESSOR_ARCHITECTURE"):gsub("AMD64","x64"))
например, на

Code: Select all

local lib_name = "hunspell_"..(win.GetEnv("PROCESSOR_ARCHITECTURE"):gsub("AMD64","x64"))
и переименовываете Hunspellx86.dll, нужный для LuaSpell, на Hunspell_x86.dll.
Но изменять строку придётся каждый раз при обновлении макроса.
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Wave wrote: с обоими макросами проверки и с плагином
Кстати, про какой плагин идёт речь? Что-то я не нашёл…
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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

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

Post by Aidar »

Wave wrote:...Скрипты подсвечивают, но не умеют прыгать к следующему ошибочному слову...
Добавил возможность перехода на следующее ошибочное слово.
В %FARPROFILE%\data\macros\LuaSpell.cfg добавьте строку с названием клавиши для нового действия, чтобы получилось
LuaSpell-3.2.1.0.7z
(11.99 KiB) Downloaded 176 times
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

Aidar wrote:Можно поступить так: в modules\hunspell.lua изменяете строку
Но изменять строку придётся каждый раз при обновлении макроса.
Спасибо! Изменять каждый раз — не самая большая проблема — у меня профиль с макросами и всем таким лежит в Git-репозитории.
Aidar wrote:Добавил возможность перехода на следующее ошибочное слово.
В %FARPROFILE%\data\macros\LuaSpell.cfg добавьте строку с названием клавиши для нового действия, чтобы получилось
Опс! Спасибо!
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Добавил поддержку подключения дополнительных пользовательских словарей.

Макрос выложил на PlugRing.

P.S. Аналогично можно подключать дополнительные словари Hunspell (но пока не проверял, работает ли это).
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Aidar wrote:Добавил поддержку подключения дополнительных пользовательских словарей.
Спасибо. А что значит дополнительных? В чём различие "User_Dict" и "Dict1", "Dict2"? Как они соотносятся?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

В случае UserDict они ничем не отличаются. В LibreOffice есть возможность подключать несколько словарей - для разных языков и разной тематики. Вместо подключения их в LuaSpell по одному можно использовать новый функционал.
Ну и проверка слова будет идти сразу по единой таблице слов, а не по нескольким (для каждого словаря).

В библиотеке Hunspell есть функция добавления дополнительного словаря. Скорее всего, эта возможность используется также для подключения специализированных словарей помимо основного словаря.
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Aidar wrote: Более подробно можно посмотреть в LuaSpell.cfg.user.example.
Если на этот файл (предварительно переименовав его в .lua) натравить LuaCheck, то вылезает , в т.ч. одно, возможно свидетельствующее о логической ошибке.
PS
А в самом LuaSpell.lua этого добра .
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

@Aidar
Со второй попытки пользовательский словарь прикрутить удалось — спасибо!
Неочевидным моментом оказалось требуемое расположение файла LuaSpell.cfg. Сложно ли сделать, чтобы он искался также прямо в %FARPROFILE% рядом с FarMenu.ini?
И ещё желательно либо включить в документацию описание формата файлов UserDict (кодировка, заголовок, сортировка?), либо привести ссылку на имеющуюся. В частности, у меня работает и с lang: <none>.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

HaRT wrote:
Aidar wrote: Более подробно можно посмотреть в LuaSpell.cfg.user.example.
Если на этот файл (предварительно переименовав его в .lua) натравить LuaCheck, то вылезает ряд предупреждений..., в т.ч. одно, возможно свидетельствующее о логической ошибке.
Спасибо, я не успел повторно прогнать lua-файлы своих пакетов через ZBS. Среди предупреждений лишь одно полезное:

Code: Select all

unused variable 'NonesSet'
HaRT wrote:...А в самом LuaSpell.lua этого добра
А здесь важны следующие:

Code: Select all

setting non-standard global variable 'actprofiler'
setting non-standard global variable 'v'
unused variable 'h'
Эти ошибки я исправил, спасибо.
Post Reply

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