SpellCheck plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 14
Joined: Fri Sep 04, 2009 11:38 am

Post by iroln »

FeyFre
Спасибо за объяснение. Я никогда не работал с Aspell, поэтому даже не знаю в каких библиотеках его ядро.

Может напишете в первом посте, что ядро Aspell находится в библиотеке aspell-15.dll, чтобы больше не было дурацких вопросов? :)

Ещё есть вопрос по поводу отрисовки линий подчёркивания.

Вот пример:
Image
В настройках задана пунктирная линия, но как пунктирная она не отрисовывается, выглядит как сплошная, да ещё и жирная. Это может быть связано с Win7 или со сглаживанием шрифтов?

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

iroln
Знаю, и ничего с этим сделать не могу. Эту линию рисует система, а почему она забыла что нужно пунктиром рисовать понятия не имею.
Толщина линии зависит от размера шрифта, так сделано специально(попробуйте взять версию постарше и посмотрите как смотрится тонкая линия на 32 шрифте)

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Проверка правописания

Spellchecking

Released v1.0 >>>Download<<<
Last edited by FeyFre on Wed Dec 29, 2010 4:28 pm, edited 1 time in total.

Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

Спасибо за плагин.
Подскажите, есть ли возможность использовать белые списки в тексте, который не был сохранен в файл и соответственно не имеет расширения?

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Xephon,

Есть. Почитайте внимательно SpellCheck-Rus.txt
Функция Background по-умолчанию использует белые списки ассоциированные с типом файла(исходя из расширения если такое имеется). Белый список можно выбрать принудительно, для этого нужно вызвать функцию с дополнительным аргументом строкой расширением, например из ToolBar плагина:

Code: Select all

Call("SpellCheck::Background","cpp")
:)

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

FeyFre wrote:iroln
Знаю, и ничего с этим сделать не могу. Эту линию рисует система, а почему она забыла что нужно пунктиром рисовать понятия не имею.
Толщина линии зависит от размера шрифта, так сделано специально(попробуйте взять версию постарше и посмотрите как смотрится тонкая линия на 32 шрифте)
Если до сих пор актуально: "Если ширина пера больше 1 то стили PS_DASH, PS_DOT, PS_DASHDOT и PS_DASHDOTDOT игнорируются и рисуются сплошные линии".
Т.е. можно либо отказаться от масштабирования линий, либо отказаться от задания настройки вида линий, либо придётся принимать более сложное решение.

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Т.е. можно либо отказаться от масштабирования линий
либо отказаться от задания настройки вида линий
ни в коем случае.
либо придётся принимать более сложное решение.
Брать интеграл и производные третьего порядка для рисования подчеркивания - явно лишнее. Сложнее решение может быть оправдано только быстродействием результата, чего в данном случае не будет.

Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

Xephon, RTFM
Читал, спасибо :)
Пытался заставить работать белый список вызовами Call("SpellCheck::Background", "txt") во вновь созданном файле, когда белый список содержал строки "+txt" и "AkelPad". Слово "AkelPad" оказывалось подчеркнутым.
Оказалось, надо было использовать вызов Call("SpellCheck::Background") и белый список "+" и "AkelPad".

Offline
Posts: 267
Joined: Mon Mar 12, 2007 3:45 pm

Post by [Yustas.NeO] »

Подскажите, пожалуйста, можно ли создать пункт меню, по нажатию на который в определенный SPCK-файл будет добавлено выделение или слово на котором установлен курсор?

P.S.
SpellCheck-Rus.txt:
Строка 28: палгина
Строка 49: жарног
Это сознательные опечатки для проверки работоспособности плагина? :)

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Подскажите, пожалуйста, можно ли создать пункт меню, по нажатию на который в определенный SPCK-файл будет добавлено выделение или слово на котором установлен курсор?
Scripts-плагин в полном Вашем распоряжении. :)

Offline
Posts: 267
Joined: Mon Mar 12, 2007 3:45 pm

Post by [Yustas.NeO] »

FeyFre wrote:Scripts-плагин в полном Вашем распоряжении. :)
Да, пожалуй.


Только у меня проблемы с этими списками... Отрицательный результат носит даже такой эксперимент:
Открываю файл (изменения не вносил)
%a\AkelFiles\Plugs\SpellCheck\html.spck
Нажимаю кнопку
-"Подключить белый список html" Call("SpellCheck::Background","html") Icon("%a\AkelFiles\Plugs\SpellCheck.dll", 2)
В итоге такие слова как ACCESSKEY ALINK BASEFONT BGCOLOR и т.д. - все равно остаются подчеркнутыми как неправильные. А ведь не должны - я ведь к ним применил их же белый список!

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

[Yustas.NeO], пофиксил. Ждите версию.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

FeyFre wrote:Брать интеграл и производные третьего порядка для рисования подчеркивания - явно лишнее. Сложнее решение может быть оправдано только быстродействием результата, чего в данном случае не будет.
Про интегралы я ничего не понял. Возможно был неверно истолкован мой предыдущий пост. Поэтому поясняю. Под "более сложным решением" я в данном случае имел в виду замену обычных перьев на расширенные геометрические "extended geometric pen" (и соответственно замену CreatePen на ExtCreatePen). Но этот вариант показался менее что-ли "элегантным", нежели простой отказ от масштабирования подчеркивания. (по аналогии, например, с MS Word, где при проверке правописания подчеркивание не масштабируется, не вызывая каких-либо затруднений).
Но поскольку Вы все три варианта отвергли, то теперь уже я крайне заинтригован и буду с интересом ждать новой версии чтобы узнать, каков же будет четвертый вариант. :)
Дополнительно вопрос. Не делались ли попытки использования Hunspell (http://hunspell.sourceforge.net) вместо Aspell? Выражаясь иначе, можно ли с минимальными переделками задействовать проверку правописания уже установленного OpenOffice или даный вопрос преждевременный?

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Вопрос с подчеркиваниями я пока ставлю приоритетным. Эта самая простая часть плагина. И ни о каком окончательном решении сейчас речь не идёт.(Отказаться от масштабирования нельзя. Попробуйте разглядите однопиксельное подчеркивание на 25 дюймовом мониторе.)

Вопрос с hunspell тоже пока не планирую рассматривать(уже разнюхивал, Вы не первый кто обращался). Даже если произойдет переход на него, то не рассчитывайте на автопоиск словарей в системе(не важно, Опера их "хозяин" или ООо или ещё какое приложение).
Да, получается вопрос именно преждевременный. Релиз недавно состоялся. Релиз 1.1 - багфикс на подходе. Приблизительно 5-7 последующих релизов буду только исправлять ошибки и оптимизировать код.

Offline
Posts: 267
Joined: Mon Mar 12, 2007 3:45 pm

Post by [Yustas.NeO] »

Не помогло. В смысле помогло но только частично: с html.spck и cpp.spck - работает. Пытаюсь создать свой (с одним единственным словом) AkelPad - не работает.

UPD:
Кажись понял! В файле %filename%.spck зачем-то обязательно должна быть строчка "+%filename%" ...

В догонку:
Нельзя ли что бы изменения в spck-файлах применялись без перезагрузки программы?
Post Reply