AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

SpellCheck plugin
Goto page Previous  1, 2, 3 ... 28, 29, 30, 31, 32  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
vadim



Joined: 16 Aug 2012
Posts: 9

PostPosted: Wed Nov 21, 2012 4:41 pm    Post subject: Reply with quote

Помогло, спасибо! Быстро и просто.
Эти символы: ‹›«»‘’“”‚„ взяты из таблицы 1251
Красные подчеркивания слов с этими кавычками сильно раздражали.
Сейчас - совсем другое дело!
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2704
Location: Киев, Русь

PostPosted: Wed Nov 21, 2012 5:03 pm    Post subject: Reply with quote

Не являются ошибочными:
Quote:
поможемd
наddписание
а вот наdddписание - уже ошибочное.
Странно всё это...
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Wed Nov 21, 2012 9:56 pm    Post subject: Reply with quote

Эм, у меня они все ошибочные. Или вместо "d","dd","ddd" мне нужно подобрать специальный набор символов?
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2704
Location: Киев, Русь

PostPosted: Wed Nov 21, 2012 11:09 pm    Post subject: Reply with quote

FeyFre wrote:
Эм, у меня они все ошибочные.
Ото ж я и говорю - странно, хотя Aspell у нас одинаковый и словари.. разве что у меня украинский не установлен.
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1648

PostPosted: Mon Dec 10, 2012 9:50 am    Post subject: Reply with quote

После вызова +Call("SpellCheck::Background") обновляется только активная часть разделенного окна.
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2704
Location: Киев, Русь

PostPosted: Mon Dec 10, 2012 10:19 am    Post subject: Reply with quote

FeyFre
Если будете что-то допиливать/перепиливать, то очень прошу сделать, чтобы при нажатых клавишах, влияющих на промотку страницы (Left, Right, Up, Down, PgUp, PgDown) и удаление символов (Del, Backspase) определение и прорисовка неверных слов не срабатывала. Т.е. когда нажата любая из вышеупомянутых клавиш, то не определять/прорисовывать, а делать это при только отпускании.
Может быть опционально (какой-то параметр в ini), но пожалуйста, сделайте, а то уж очень плохо работать на старых компах!
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Thu Dec 13, 2012 10:24 pm    Post subject: Reply with quote

VladSh
А попробуйте эту версию.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2704
Location: Киев, Русь

PostPosted: Fri Dec 14, 2012 10:14 am    Post subject: Reply with quote

FeyFre
Надо теперь найти слабый комп, чтобы скорость движения каретки сравнить с включенным плагином и без; это в следующий раз когда к заказчику поеду.

Вообще по работе:
1. Если в нескольких строках специально сделать ошибки, а затем установить курсор ниже, а потом просто нажать Up и держать, то проходя по отмеченным словам курсор как бы удаляет существующие отметки.
После отпускания клавиши происходит не НЕмедленная перепрорисовка неправильных слов, а с задержкой в 1-2 секунды, создаётся впечатление, что на этой операции оно подтормаживает. Если бегать курсором по одному и тому же куску текста, то при последующих "пробегах" задержка перед прорисовкой меньше.
Убирать прорисовку при нажатии клавиш Up/Down и прохождении по определённому слову не надо, это стоит делать только при клавишах Del/Backspase.
2. При нажатии Del/Backspase убираются все подчёркивания ниже этой строки, а потом, при отпускании, неправильные слова всего окна редактирования прорисовываются снова, что долго. Лучше бы это действовало на текущее подчёркнутое слово, при невозможности - на текущую строку.
3. При одиночном нажатии Up/Down вся прорисовка подёргивается (происходит сброс и прорисовка заново; это хорошо видно, когда в текущей строке рядом 2 подчёркнутых слова), что тоже не нужно. Нужна перепрорисовка только когда в результате Up/Down текст "проскролился" в окне редактирования. А лучше именно ДОпрорисовка только появляющегося текста, как, вроде бы, сделано в текущей версии.
4. Если нажимать одиночный Left, то при каждом нажатии прорисовка убирается и снова проставляется, что подтормаживает. В этом случае лучше оставить предыдущую работу, т.е. текст не должен "мигать". Должен только когда в результате Left/Right текст "проскролился" в окне редактирования. Этот пункт похож на предыдущий.

Спасибо за начинание!

Upd: сейчас поставил текущую официальную версию, так там при движении Up/Down прорисовка не подёргивается, при скроле текста в результате действия кнопок новый текст прорисовывается мгновенно(!), я не вижу никакого "подрагивания", такое ощущение, что реально прорисовывается не всё окно редактирования, а только добавляемый текст.
Вы оптимизировали прошлую версию в этом плане? А то я её не смог потестить на старых компах((
Ещё заметил: при долгом нажатии Del низлежащие "подчёркивания" становятся блёклыми, а при отпускании клавиши прорисовываются в полный цвет, - интересный эффект!

В общем, тестовая версия во многих случаях стала работать гораздо медленнее (это стало видно на моём i3 3.2), возможно из-за того, что делает ненужные действия, а возможно из-за того, что для перепрорисовки стало использоваться отключение/включение плага (почему-то возникло такое ощущение), что долго. Т.е. в текущей официальной версии на указанной конфигурации работать гораздо комфортней.
Сравнить скорость при долгом нажатии Del/Backspace не могу, т.к. пока нет доступа к слабым компам.
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Fri Dec 14, 2012 12:08 pm    Post subject: Reply with quote

VladSh,
> Вообще по работе:
Я вкурсе, грубо говоря, так специально делалось.
Давайте я объясню принцип, что изменилось, а Вы уже решите лучше или хуже:
Когда пришел пинок "перерисуй окно редактирования", тут появляюсь я и начинаю в заданой области искать слова и рисовать. Замечу, то практически после каждой операции с кнопками приходит такой пинок, ибо нужно перерисовать(либо редактирование, либо движение курсора).
Добавил:
Теперь я дополнительно ловлю все операции с кнопками. При каждой операции я взвожу некий флажок.
Рисовальщик ошибок в свою очередь смотрит "флажок поднят" значит ничего не делать, опущен - рисовать как обычно(вот Вам и ощущение отключения).
За флажком следит арбитр: он каждую секунду смотрит: опущен - ничего не делать, поднят - опустить, и перерисовать окно. Таким образом если за секунду пришло 10 нажатий, то я рисую(и проверяю) не 10 раз, а один. Но побочным эффектом является то, что те 10 раз просили перерисовывать маленькую область, фактически только ту что изменилась, а 1 раз - приходится перерисовывать всё, ибо невозможно выяснить куда за время предыдущих 9 занятий переместилась область которую нужно перерисовать(это ваш пункт 3).
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2704
Location: Киев, Русь

PostPosted: Fri Dec 14, 2012 3:11 pm    Post subject: Reply with quote

FeyFre
Спасибо за описание. Но сказать что-то по делу трудно, т.к. не знаешь, как оно раньше работало. Можно ли точно также описать, для сравнения?
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Fri Dec 14, 2012 4:48 pm    Post subject: Reply with quote

VladSh, ну дык
Quote:
Когда пришел пинок "перерисуй окно редактирования", тут появляюсь я и начинаю в заданой области искать слова и рисовать.

Техически так:
Пришел WM_PAINT - нарисовать окно. Даю АР нарисовать фон и слова. Далее я смотрю какую область окна попросили перерисовать(эта область не всегда полное окно, чаще всего строчка и нескокльо последующих), определяю диапазон текста размещенного в этой области и начинаю в этом диапазоне искать слова и проверять и подчеркивать.
Стало:
Включение функции фоновой проверки: сделать флаг=0
Кнопочное событие: сделать флаг=1
WM_PAINT - нарисовать окно: если флаг=0 то проверить и нарисовать(тем же алгоритмом).
Событие секундного таймера: если флаг=1 сделать его 0 и заставить перерисовать окно(полностью). За интервал срабатывания таймера событий WM_PAINT может прийти десятки, каждое требующее перерисовать свою область. За интервал срабатывания таймера может пройти десяток кнопочных событий, которые могут менять текст, а значит и отображение, т.е порождать WM_PAINT.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2704
Location: Киев, Русь

PostPosted: Sat Dec 15, 2012 6:21 pm    Post subject: Reply with quote

Спасибо, ясно.
Мы, "высокоуровневики" и пользователи привыкли, что оно там "как-то само всё делается")), невольно начинаешь уважать тех, кто это на низком уровне рубает.

Значит по таймеру - от него придётся отказаться. Таймеры хороши для каких-то фоновых операций, т.е. где юзер не ожидает немедленного исполнения, например то же отображение лога в реальном времени.
Тут же надо "немедленно".

Вот этот вариант идеален:
FeyFre wrote:
Пришел WM_PAINT - нарисовать окно. Даю АР нарисовать фон и слова. Далее я смотрю какую область окна попросили перерисовать(эта область не всегда полное окно, чаще всего строчка и нескокльо последующих), определяю диапазон текста размещенного в этой области и начинаю в этом диапазоне искать слова и проверять и подчеркивать.
но хотелось бы вклиниться перед рисованием подчёркиваний.
Вот, на примере нажатия PgUp: мы находимся на первой странице, жмём PgUp, перед самой отрисовкой определяем, что это PgUp (ну или то, 'какая была нажата клавиша' можно передать параметром, если там не линейный код), заходим в switch по 'кодам нажатых клавиш' и в case для PgUp делаем свою проверку "если текст в окне редактирования не проскролился (а он не проскролился, т.к. находимся на 1-й странице)", то ничего не определяем и не прорисовываем.

Т.о. то, что я предлагаю, это для некоторых клавиш поставить такие case и просто в некоторых случаях не прорисовывать - выходить, ничего не делая. А именно (добавить обработку по 2-м основным правилам):
1. Если жмутся клавиши, изменяющие содержимое окна редактирования, и клавиша нажата и не отпускается (нажали Del и держим или нажали любой символ и держим), то ничего не нужно определять и прорисовывать, пока клавиша не будет отжата.
2. Если жмутся клавиши "навигации" (не изменяющие содержимого): Left, Right, Up, Down, PgUp, PgDown), то для них нужно определять (дополнительно отлавливать событие?), проскролился ли текст в окне редактирования, и если да, то при отпускании клавиши производить определение и прорисовку.

Если же так вклиниться можно, тогда всё решаемо.

P.S. Знаю, что вариант с case плохой... Я у себя для скорости инициализирую собственные 'объекты поведения' для определённых случаев (здесь это специальные клавиши) и объект поведения для всех остальных случаев, и засовываю их в объект, аналогичный Dictionary. При нажатии любой клавиши можно получить соотв. объект поведения по коду нажатой клавиши и вызвать у него метод, выполняющий действия, который состоит из предварительного условия (условия может и не быть), определения просчитываемого текста и вызова общего метода прорисовки слов с ошибками.
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2704
Location: Киев, Русь

PostPosted: Sat Jan 19, 2013 5:22 pm    Post subject: Reply with quote

Идея: SpellCheck на Enchant.
Back to top
View user's profile Send private message Visit poster's website
Drugmix



Joined: 08 Apr 2013
Posts: 466

PostPosted: Mon Apr 08, 2013 10:01 pm    Post subject: Reply with quote

FeyFre wrote:
Magister, spellcheck x64 не существует. И не просуществует ровно столько, сколько мне понадобится времени что-бы найти для него адекватную замену. Так что предложения принимаются.

>2 лет прошло с того момента - неужели до сих пор не нашлось адекватной замены? нельзя ли просто пересобрать х32 версию имеющегося плагина под х64?
p.s.: я новичок, только приобщился к AkelPad, тему не читал, то сообщение нашёл гуглом.
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1648

PostPosted: Tue Apr 09, 2013 5:33 am    Post subject: Reply with quote

Drugmix wrote:
нельзя ли просто пересобрать х32 версию имеющегося плагина под х64?

http://akelpad.sourceforge.net/forum/viewtopic.php?p=15960#15960
FeyFre wrote:
Nizaury, плагин будеть работать на x64 как только найду ASpell x64, а пока нет. Я конечно могу выпустить x64-плагин-пустышку, который будет только подсвечивать все слова которые не находятся в белых списках, но вряд ли это будет назвать "работает".
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3 ... 28, 29, 30, 31, 32  Next
Page 29 of 32

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group