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

Здесь выкладываются готовые к использованию макросы и скрипты.
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 » Sun 04 May, 2014 20:42

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 » Sun 04 May, 2014 21:39

2useven10 wrote:длл можно попробовать взять отсюда:
http://sourceforge.net/projects/mingwbu ... z/download
Получилось.
Скачал и закинул оттуда:
libwinpthread-1.dll
libgcc_s_seh-1.dll
к hunspellx64.dll до кучи
Спасибо. Выручили.

2useven10
Posts: 3982
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 173 times

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

Post by 2useven10 » Mon 05 May, 2014 05:45

Создал issue.
уже исправлено. если перекачать архив, там x64 dll без лишних зависимостей

User avatar
John Doe
Бюрократ
Posts: 12527
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 234 times

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

Post by John Doe » Mon 05 May, 2014 10:55

Значение 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 » Mon 05 May, 2014 17:43

2useven10 wrote:... если перекачать архив, там x64 dll без лишних зависимостей
John Doe wrote:Значение colorguid наверно должно отличаться от исходного макроса
Спасибо, перевыложил на PlugRing.

iva
Posts: 126
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva » Tue 06 May, 2014 12:53

Очень полезный 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 » Tue 06 May, 2014 14:34

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 » Wed 07 May, 2014 12:14

iva wrote:... Собственно, я хотел включить в английский алфавит символ BackSlash. Тогда бы я добавил в словарь команды LaTeX, которые начинаются с этого символа, чтобы они не подсвечивались как неправильные. ...
Скачайте новую версию на плагринге и приложенный архив.
LuaSpell-tex-cfg.7z
Файл конфигурации макроса для tex-тегов и заготовка для tex-словаря.
(834 Bytes) Downloaded 58 times
P.S. Забыл дописать: с этой конфигурацией не будут подсвечиваться слова,
в которых есть как обычные латинские символы, так и латинские символы с диакритикой.

iva
Posts: 126
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva » Wed 07 May, 2014 16:46

Спасибо. С ТеХом обнаружилась еще одна проблема. Дело в том, что обратная косая черта является одновременно и разделителем команд. То есть, запись типа \alpha\beta вполне корректна.

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

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

Post by HaRT » Wed 07 May, 2014 17:01

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 » Wed 07 May, 2014 17:51

HaRT wrote:
iva wrote:обратная косая черта является одновременно и разделителем команд. То есть, запись типа \alpha\beta вполне корректна.
Так не лучше ли наоборот зачислить ‘\’ в знаки пунктуации (наряду с ‘,’, ‘;’, ‘!’, ‘?’, ‘…’, …), чтобы проверяльщик понимал, что в состав слов этот символ не входит?
1. Здесь явно нужна привязка к только tex-файлам, чтобы не было проблем с тем, что в обычном тексте "\hfill" воспринималась как корректный текст.
2. Пример с разделителем не совсем удачен: в данном случае почему бы "\alpha" и "\beta" не добавить в словарь?
3. Расширение возможностей по управлению spell отдельными словарями пока прорабатывается.
Возможно, удастся реализовать поддержку более сложной логики.

iva
Posts: 126
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva » Wed 07 May, 2014 18:00

А интересно, как в немецком? Там некоторые слова можно объединять в одно, насколько я понимаю.

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 » Wed 07 May, 2014 18:06

iva wrote:А интересно, как в немецком? Там некоторые слова можно объединять в одно, насколько я понимаю.
Судя по словарю de_DE_neu.dic (9,6 МиБ), приходится все составные слова включать в словарь.

iva
Posts: 126
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva » Wed 07 May, 2014 18:10

На самом деле, вполне устроит вариант, когда просто все последовательности, содержащие 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 » Wed 07 May, 2014 18:29

iva wrote:На самом деле, вполне устроит вариант, когда просто все последовательности, содержащие backslash, считаются правильными. ТеХ все равно проверит "правописание" при компиляции.
P.S. Я просто указываю цвет 0xB и фон 0x1 и команды ТеХа выделяться не будут.
Ясно. пока есть вариант с поддержкой пользовательских не hunspell-словарей и пользовательской spell-функцией.

iva
Posts: 126
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva » Wed 07 May, 2014 22:43

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

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 » Thu 08 May, 2014 06:52

1) Да, с поправкой: на самом деле используются InnerSet, StartSet - для определения текущего слова, CheckSet - для определения слов в строке редактора.
2-3) Проверка идёт по словарям в той последовательности, в какой они указаны в конфигурации. Для слова выполняется проверка "активности" словаря, соответствия слова образцу find и spell-проверке слова. Если слово проходит spell-проверку, смотрится следующий словарь, иначе раскрашивается слово и проверка слова заканчивается.
4) По приведённым find:
Для tex-словаря всё равно останется проверка по hunspell-словарю, и даже если слово будет в словаре, в английском словаре может не оказаться этого слова. Кроме того, для рус. и англ. языков использование таких find приведёт к тому, что будут проверяться все слова, имеющие хоты бы одну букву соответствующего алфавита.

Ситуация в том, что для tex-словаря:
- не нужна spell-проверка,
- если слово уже удовлетворяет find, необходимо прерывание процесса проверки, чтобы избежать ненужной проверки по англ. словарю.

Как раз это (и, желательно, не только это) необходимо мне реализовать.

Post Reply

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