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:

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

Post by Aidar »

Latest post of the previous page:

2useven10 wrote:длл можно попробовать взять отсюда:
http://sourceforge.net/projects/mingwbu ... z/download
Спасибо, выложил на PlugRing (файл LuaSpell_x64dlls.7z).
Скопировал dll в каталог FAR, после чего у меня макрос заработал.
Capri200
Posts: 51
Joined: Fri 25 Mar, 2011 08:50

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

Post by Capri200 »

2useven10 wrote:длл можно попробовать взять отсюда:
http://sourceforge.net/projects/mingwbu ... z/download
Получилось.
Скачал и закинул оттуда:
libwinpthread-1.dll
libgcc_s_seh-1.dll
к hunspellx64.dll до кучи
Спасибо. Выручили.
2useven10
Posts: 5210
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

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

Post by 2useven10 »

Создал issue.
уже исправлено. если перекачать архив, там x64 dll без лишних зависимостей
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

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

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

Post by Aidar »

2useven10 wrote:... если перекачать архив, там x64 dll без лишних зависимостей
John Doe wrote:Значение colorguid наверно должно отличаться от исходного макроса
Спасибо, перевыложил на PlugRing.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva »

Очень полезный script. Спасибо.
А нельзя ли получить пояснения, как он устроен, и что в нем можно изменить?
Собственно, я хотел включить в английский алфавит символ BackSlash. Тогда бы я добавил в словарь команды LaTeX, которые начинаются с этого символа, чтобы они не подсвечивались как неправильные.
Пробовал играть с CharSet (из 189 строки) и find (из 63). Но не вышло.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

iva wrote:Очень полезный script. Спасибо.
Рад, что скрипт оказался полезным.
iva wrote:А нельзя ли получить пояснения, как он устроен, и что в нем можно изменить?
Собственно, я хотел включить в английский алфавит символ BackSlash. Тогда бы я добавил в словарь команды LaTeX, которые начинаются с этого символа, чтобы они не подсвечивались как неправильные.
Пробовал играть с CharSet (из 189 строки) и find (из 63). Но не вышло.
Только CharSet не поможет, подумаю, что можно сделать.
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 »

iva wrote:... Собственно, я хотел включить в английский алфавит символ BackSlash. Тогда бы я добавил в словарь команды LaTeX, которые начинаются с этого символа, чтобы они не подсвечивались как неправильные. ...
Скачайте новую версию на плагринге и приложенный архив.
LuaSpell-tex-cfg.7z
Файл конфигурации макроса для tex-тегов и заготовка для tex-словаря.
(834 Bytes) Downloaded 98 times
P.S. Забыл дописать: с этой конфигурацией не будут подсвечиваться слова,
в которых есть как обычные латинские символы, так и латинские символы с диакритикой.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva »

Спасибо. С ТеХом обнаружилась еще одна проблема. Дело в том, что обратная косая черта является одновременно и разделителем команд. То есть, запись типа \alpha\beta вполне корректна.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

iva wrote:обратная косая черта является одновременно и разделителем команд. То есть, запись типа \alpha\beta вполне корректна.
Так не лучше ли наоборот зачислить ‘\’ в знаки пунктуации (наряду с ‘,’, ‘;’, ‘!’, ‘?’, ‘…’, …), чтобы проверяльщик понимал, что в состав слов этот символ не входит?
Фар есть инструмент, а не нянька. © 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:
iva wrote:обратная косая черта является одновременно и разделителем команд. То есть, запись типа \alpha\beta вполне корректна.
Так не лучше ли наоборот зачислить ‘\’ в знаки пунктуации (наряду с ‘,’, ‘;’, ‘!’, ‘?’, ‘…’, …), чтобы проверяльщик понимал, что в состав слов этот символ не входит?
1. Здесь явно нужна привязка к только tex-файлам, чтобы не было проблем с тем, что в обычном тексте "\hfill" воспринималась как корректный текст.
2. Пример с разделителем не совсем удачен: в данном случае почему бы "\alpha" и "\beta" не добавить в словарь?
3. Расширение возможностей по управлению spell отдельными словарями пока прорабатывается.
Возможно, удастся реализовать поддержку более сложной логики.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva »

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

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

Post by Aidar »

iva wrote:А интересно, как в немецком? Там некоторые слова можно объединять в одно, насколько я понимаю.
Судя по словарю de_DE_neu.dic (9,6 МиБ), приходится все составные слова включать в словарь.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva »

На самом деле, вполне устроит вариант, когда просто все последовательности, содержащие backslash, считаются правильными. ТеХ все равно проверит "правописание" при компиляции.
P.S. Я просто указываю цвет 0xB и фон 0x1 и команды ТеХа выделяться не будут.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

iva wrote:На самом деле, вполне устроит вариант, когда просто все последовательности, содержащие backslash, считаются правильными. ТеХ все равно проверит "правописание" при компиляции.
P.S. Я просто указываю цвет 0xB и фон 0x1 и команды ТеХа выделяться не будут.
Ясно. пока есть вариант с поддержкой пользовательских не hunspell-словарей и пользовательской spell-функцией.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva »

Хочется все таки понять как настраивать конфигурацию.
Правильно ли я понимаю, что логика действий скрипта такая:
1) Текст разделяется на слова, т.е. последовательности символов из CharEnum.
2) К каждому слову применяется поиск по образцу из find в той последовательности, как заданы языки.
3) Если поиск увенчался успехом, считается, что слово принадлежит соответствующему языку, и оно проверяется по словарю.
Если так, то почему бы для русского, английского и ТеХа не задать такие список и образцы:
local CharEnum = [[\\A-Za-zА-Яа-яЁё0-9]], для ТеХа find = [[/^\\/]], для русского find = [[/[А-Яа-яЁё]/]] и для английского find = [[/[A-Za-z]/]] ?
На первый взгляд все работает, но может я мало тестировал.
Post Reply

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