Сам макрос тут.
для его работы нужны:
1. dll от проекта nhunspell. отсюда берётся архив с последней версией и из него нужны либо Hunspellx86.dll, либо Hunspellx64.dll. именно эти dll чисто нативные, никакого .net-а в них нет. положить их нужно куда-нибудь, откуда они загрузятся, например в папку с фаром.
2. словари. по умолчанию макрос настроен на вот этот русский словарь (нужны файлы ru_RU_yo.aff и ru_RU_yo.dic), и вот этот английский словарь (нужны файлы en_US.aff и en_US.dic). по умолчанию словари ожидаются в %FARPROFILE%\Dictionaries\.
все настройки словарей лежат в начале макроса.
F3 — показать меню с вариантами замены.
ShiftF3 — включить/выключить подсветку неправильных слов.
выглядит это примерно так:
Макрос для проверки орфографии в редакторе
Posted: Tue 14 Jun, 2016 20:10
by HaRT
Latest post of the previous page:
Такая же ошибка: 0. Запускаем Фар без прочих макросов и плагинов (только LuaMacro). 1. Открываем на редактирование какой-нибудь текстовый файл (например, [b][i]%FarHome%\File_id.diz[/i][/b]), включаем в нём подсветку ошибок. 2. Переходим в панели ([b]F12 1[/b]) и выполняем из командной строки какую-нибудь команду (например, cd).
Внезапно получаем
╔══════════════════════════════════════════════════ Error ═══════════════════════════════════════════════════╗
║ C:\Program Files (x86)\Far Manager\Plugins\LuaMacro\LuaMacro.dll: ║
║ ...ming\Far Manager\Profile\Macros\scripts\Editor_Spell.lua:192: attempt to index local 'ei' (a nil value) ║
║ stack traceback: ║
║ ...ming\Far Manager\Profile\Macros\scripts\Editor_Spell.lua:192: in function 'CheckSpellAll' ║
║ ...ming\Far Manager\Profile\Macros\scripts\Editor_Spell.lua:226: in function 'action' ║
║ ...ogram Files (x86)\Far Manager\Plugins\LuaMacro\utils.lua:192: in function <...ogram Files (x86)\Far ║
║ Manager\Plugins\LuaMacro\utils.lua:165> ║
╟────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
(номера строк слегка отличаются из-за добавленного локально комментария), притом трижды подряд.
Ту же ошибку получаем, если при включенной подсветке ошибок закрываем редактор и пытаемся открыть снова (неважно, с тем же самым файлом или с другим), — но тут уже единожды. Far Manager, version 3.0 (build 4695) x86
Добавление в начало ф-ии CheckSpellAll(ei) строки if not ei then return end вроде бы устраняет ошибку. Вообще же предлагаю
-- 1. dll от проекта http://nhunspell.sourceforge.net/
-- отсюда http://sourceforge.net/projects/nhunspell/files/ берётся архив с последней версией и из него нужны либо Hunspellx86.dll, либо Hunspellx64.dll.
-- именно эти dll чисто нативные, никакого .net-а в них нет. положить их нужно куда-нибудь, откуда они загрузятся, например в папку с фаром.
@@ -69,7 +70,7 @@ local function Init()
Init=function() end
end
-function GetData(id)
+local function GetData(id)
local data=editors[id]
if not data then
editors[id]={start=0,finish=-1}
@@ -124,7 +125,7 @@ local function ShowMenu(strings,wordLen)
...\Roaming\Far Manager\Profile\Macros\modules\hunspell.lua:198: cannot resolve symbol 'Hunspell_create': The specified procedure could not be
found.♪
stack traceback:
[C]: in function '__index'
...\Roaming\Far Manager\Profile\Macros\modules\hunspell.lua:198: in function 'new'
...Far Manager\Profile\Macros\scripts\LuaSpell\LuaSpell.lua:215: in function 'NewHunspell'
...Far Manager\Profile\Macros\scripts\LuaSpell\LuaSpell.lua:238: in function 'InitHunspell'
...Far Manager\Profile\Macros\scripts\LuaSpell\LuaSpell.lua:324: in function 'InitDictionary'
...Far Manager\Profile\Macros\scripts\LuaSpell\LuaSpell.lua:351: in function 'Init'
...Far Manager\Profile\Macros\scripts\LuaSpell\LuaSpell.lua:468: in function <...Far Manager\Profile\Macros\scripts\LuaSpell\LuaSpell.lua:462>
══ C:\Users\Volodya\AppData\Roaming\Far Manager\Profile\Macros\modules ═6:49 P
n Name │ Size │ Date │Time
.. │ Up │07/22/16│18:11
SimSU │Folder│06/27/15│10:45
date lua│ 33612│06/02/16│06:53
hunspell lua│ 6499│06/15/16│09:03
macroEx lua│ 2010│07/21/14│06:12
userdict lua│ 2658│06/15/16│09:51
Far 3.0.4743x86, Windows 7 (64)
Что не правильно?
Макрос для проверки орфографии в редакторе
Posted: Sat 23 Jul, 2016 11:30
by zg
hunspellx**.dll не та, что нужна.
Макрос для проверки орфографии в редакторе
Posted: Mon 21 Jun, 2021 10:03
by fps
Начиная с билда 5821 макрос работать перестал.
Видимо связано с
Removed the workaround for plugins that erroneously add transparent editor highlighting.
Transparency is now taken into account.
If your plugin/script suddenly stopped working - fill the colors properly.
Подскажите как починить?
Макрос для проверки орфографии в редакторе
Posted: Mon 21 Jun, 2021 21:04
by Tim Sobolev
fps wrote: ↑Mon 21 Jun, 2021 10:03
Начиная с билда 5821 макрос работать перестал.
Видимо связано с
Removed the workaround for plugins that erroneously add transparent editor highlighting.
Transparency is now taken into account.
If your plugin/script suddenly stopped working - fill the colors properly.
Вместо color={Flags=bit64.bor(F.FCF_FG_4BIT,F.FCF_BG_4BIT),ForegroundColor=0xff00000f,BackgroundColor=0xff000004}
с тем же успехом можно записать color=0x4f, соответственно и во втором случае.