/** * SpellChecker for AkelPad * Panych Y.W. aka FeyFre (c) 2010-2011 (panych.y@gmail.com) * * This piece of software is distributed under BSD license. * AkelPad is property of its copyright holders. * The New Aspell Copyright (C) 2001-2002 by Kevin Atkinson under the GNU LGPL * license version 2.0 or 2.1. */ Описание Плагин позволяет выполнить проверку орфографии текущего слова, выделения либо всего документа используя систему ASpell, а также inline подсветку слов с ошибками. Также есть возможность создавать собственные белые списки слов, которые по каким-либо причинам не попали в словари. Установка: Для работы плагин требует наличия ядра Aspell а также его словарей (Разработано и протестировано на версии 0.50.3.3 http://aspell.net/win32/) По-умолчанию установленное ядро ищется в папке \AkelFiles\Plugs\SpellCheck Установка ASpell: 1. Качаем http://ftp.gnu.org/gnu/aspell/w32/Aspell-0-50-3-3-Setup.exe 2. Устанавливаем в удобное место. 3. На странице http://aspell.net/win32/ присутствует список готових словарей, качаем оттуда нужные. 4. Устанавливаем словари(установщик в большинстве случаев может самостоятельно определить куда был установлен ASpell) ВНИМАНИЕ: в установщике словарей присуствуют ошибки: 1) Установщик создает временную папку TmpInstall возле файла установки, потому запуск с read-only носителей будет не возможен. 2) Установщик после завершения работы не удаляет временную папку TmpInstall, что может вызвать конфликт при установке нескольких словарей подряд. Желательно удалять её самостоятельно. 3) При запуске из консоли установщик в процессе работы уничтожает её, при это не закрывая процесс владелец консоли. Во избежание подобного конфуза рекомендую запускать установщик с консоли посредством команды start Плагин реализует следующие функции: CheckSelection - выполняет проверку текущего слова либо выделения, предлагая варианты ошибочных слов CheckDocument - выполняет проверку текущего редактируемого текста Settings - настройка плагина Background - включение/выключение фоновой подсветки ошибок(можно поставить на автозапуск) Suggest - отображает список вариантов исправления ошибочного слова, на котром стоит курсор(если таковые имеются). Рекомендуется назначить клавишу горячего вызова. Настраиваемые опции плагина: - язык проверки - жаргон проверки(расширение языка) - кодировка словаря - опция обработки неизвестных слов как ошибочных - опция подсветки выделением текущего исправляемого слова выделением - тип подчеркивания inline проверки - цвет подчеркивания - использование белых списков Функции CheckSelection, CheckDocument могут быть вызваны с тремя дополнительными параметрами(например из плагина ToolBar): Синтаксис Call("SpellCheck::CheckSelection",,,) - строка, язык словаря для проверки. - строка, жаргон словаря, может быть пустой строкой. Список доступных пар язык-жаргон смотрите в настройках(до скобок - язык, в скобках - жаргон) - число, кодировка словаря. ASpell поддерживает ограниченное число кодировок. В данной постройке доступны только из диапазона iso8859-1 - iso8859-15. (Соотв. значения параметра 1-15) Если они заданы, то соотв. настройки плагина игнорируются. Например: Call("SpellCheck::CheckSelection","en","",1) -- English, iso8859-1 (latin) Call("SpellCheck::CheckSelection","en_GB","",1) -- English(GB), iso8859-1 (latin) Call("SpellCheck::CheckSelection","en_GB","w-accents",1) -- English(GB) жаргон w-accents, Call("SpellCheck::CheckSelection","uk","",5) -- Ukrainian, iso8859-5 (Cyrillic) Call("SpellCheck::CheckSelection","ru","",5) -- Russian, iso8859-5 (Cyrillic) Для быстрого изменения настроек функцию Settings можно также вызывать с параметрами Call("SpellCheck::Settings",,,) - число, код настройки, которую нужно изменить , - значения настройки. тип определяется кодом = 0 язык и жаргон. - строка, язык - строка, жаргон = 1 кодировка - число, от 1 до 15 (соотв. кодировка iso8859-1 - iso8859-15) = 2 обработка неизвестных слов как ошибочных - число, 0 - выкл = 3 подсветка исправляемого слова - число, 0 - выкл = 4 стиль подчеркивания - число, цвет подчеркивания, RGB в десятичном представлении(R*1+G*256+B*256*256), например красный = RGB(255,0,0) = 255*1 + 0*256 + 0*256*256 = 255 зеленый = RGB(255,0,0) = 255*0 + 255*256 + 0*256*256 = 65280 синий = RGB(255,0,0) = 255*0 + 0*256 + 255*256*256 = 16711680 - число, значения: 0 - сплошная линия "---------" 1 - штрих "-- -- -- " 2 - пунктир ". . . . ." 3 - штрих-пунктир "- . - . -" 4 - штрих-двойной пунктир "- .. - .." 5 - пунктир(уплотнен) "........." 6 - волнистая линия "~~~~~~~~~" = 5 установка пути к ядру ASpell(изменения приступят в силу после полной перегрузки плагина) - строка, путь к ядру. = 6 разрешить применять белый список - число, 0 - выкл. Правила задания пути к ядру ASpell: 1. Если параметр пустой, то поиск выполняется в пути по умолчанию(\AkelFiles\Plugs\SpellCheck) 2. Если параметр начинается с HKLM либо HKCU то это полный путь в Реестре к ключу типа строка(REG_SZ) в котором указан путь к модулю ASpell aspell-15.dll 3. В остальных случаях это считается путем к DLL ядра ASpell на файловой системе(включительно с названием самой DLL) Для задания относительного пути(относительно папки редактора) путь должен начинаться с ".\" без кавычек, например если модуль в папке выше на уровень чем папка AkelPad и называется my_aspell.dll то настройка должна выглядеть так: .\..\my_aspell.dll Функция Background по-умолчанию использует белые списки ассоциированные с типом файла(исходя из расширения если такое имеется). Белый список можно выбрать принудительно, для этого нужно вызвать функцию с дополнительным аргументом строкой расширением, например из ToolBar плагина: Call("SpellCheck::Background","cpp") Для возврата к списку по-умолчанию можно использовать следующий вызов. Call("SpellCheck::Background",0) Создание белых списков. Поиск белых списков выполняется в папке \AkelFiles\Plugs\SpellCheck. Загружаются все файлы со специальным расширением SPCK. Синтаксис файлов следующий: Пробельные символы в начале каждой строки игнорируются Строки, первый(только первый) не пробельный символ которых ";" игнорируются(комментарий) Для того что-бы указать расширение, для которого задаются слова используется конструкция +расширение (новая строка, начинается со знака "+", за которым без ведущих и хвостовых пробелов указывается само расширение) Каждое слово занимает отдельную строку. Что-бы слово не учитывало регистр поставьте перед ним знак вертикальный слэш (|) Слова ассоциируются со всеми ранее указанными расширениями. Для исключения расширения из списка предусмотрена конструкция: -расширение (новая строка, начинается со знака "-", за которым без ведущих и хвостовых пробелов указывается само расширение) ВНИМАНИЕ: плагин требует среду WindowsXP SP2/Windows 2003 или новее