Page 27 of 38

Posted: Fri Mar 16, 2012 2:28 pm
by FeyFre
Всегда пожалуйста.
0) Неизвестное слово нельзя сохранить в каком бы то ни было словаре, списке исключений и т. п. В форме SpellCheck::CheckSelection есть кнопки "Принять" и "Запомнить", но их использование не приводит ни к какому результату
"Принять" выполняет однократную замену текущего слова, т.е. если оно встретится ещё раз, то спросит опять. Эффект "Запомнить" действует в пределах сеанса(такая вот короткая память) проверки. При получении такого же ошибочного слова в сеансе оно будет заменено без вопросов. Это конечно не совсем идеальное поведение, но зато минимально гарантированное во всех обстоятельствах. Дело в том что Check* функции работают так сказать пассивно. Т.е. функцию вызвали, она отработала и ушла, почистив за собой бардак и выгрузив плагин(если фоновая не включена), таким образом память самоликвидируется. Перманентизацию конечно сделать можно было бы, но всему своё время.
1) Список вариантов показывается только для выбранного "Языка по умолчанию". Можно хотя бы добавить выбор языка по умолчанию в форму SpellCheck::CheckSelection.
Пока только через настройки. В следующей версии делаю переключение на ходу.(Уже с месяц делаю, когда релизну - не знаю).
2) Вариантов правильного написания предлагается очень много
Ну это ещё не полный список, он может выдать больше.

Posted: Fri Mar 16, 2012 3:14 pm
by VladSh
FeyFre wrote:"Принять" выполняет однократную замену текущего слова, т.е. если оно встретится ещё раз, то спросит опять. Эффект "Запомнить" действует в пределах сеанса(такая вот короткая память) проверки.
Это то, о чём я неоднократно тут писал - поведение неинтуитивно, и люди продолжают об этом говорить.
Надеемся на "когда-нидудь..." :)

Posted: Fri Mar 16, 2012 3:47 pm
by Tcheluskin
FeyFre wrote:Эффект "Запомнить" действует в пределах сеанса(такая вот короткая память) проверки. При получении такого же ошибочного слова в сеансе оно будет заменено без вопросов.
Я может неправильно понимаю или делаю что-то? Например:
– набираю в тексте слово "коронарография";
– оно подчёркивается красным;
– ставлю на него курсор и вызываю сочетанием клавиш форму SpellCheck::CheckSelection;
– она предлагает несколько вариантов, среди которых выбран "порнография";
– нажимаю "Начальное", "Запомнить", и…
– ничего не происходит; слово остаётся подчёркнутым.

А-а… понял: "Запомнить" действует только в процессе "CheckSelection" или "CheckDocument"; как только я закрыл форму, то "Запомнить" потеряло силу :D
Ну, это лучше чем ничего.

Posted: Fri Mar 16, 2012 4:37 pm
by Tcheluskin
FeyFre
Позвольте тогда ещё 2 непринципиальных замечания:

3) Хорошо бы сделать, чтобы это "Запомнить", после того как ему скормили слово, набранное маленькими буквами, например: "коронарография" — далее также пропускало это слово, набранное с большой, либо целиком большими буквами: "Коронарография", "КОРОНАРОГРАФИЯ".

Обратное вообще говоря неверно: если указано как правильное слово с заглавной буквы: "Кэррингтон" — это не значит, что правильно и написание с маленькой буквы: "кэррингтон" — ошибка.
Некоторые слова вообще специфически чувствительны к регистру, например: "эВ" (электронвольт) — верно; но "эв" — ошибка.

Возможное решение: в "короткой памяти" кроме слова хранить и информацию — чувствительно ли оно к регистру; а в форме "CheckSelection"/"CheckDocument" рядом с кнопкой "Запомнить" ввести соотв. галочку: "Учитывать регистр", либо вторую кнопку: "Запомнить с учётом регистра". (Но при проверке набор всеми заглавными буквами: "КЭРРИНГТОН", "ЭВ" — считать верным всегда.)

4) Если курсор стоит между словами — проверять не слово после курсора, а слово перед курсором.
Сейчас, допустим, я набрал "коронарография", оно подчеркнулось красным — мне надо сначала сдвинуть курсор влево внутрь слова; а потом уже жать клавиши вызова SpellCheck::CheckSelection.
Если сделать как я выше предлагаю, отпадёт необходимость в этом небольшом лишнем действии.

С уважением.

Posted: Fri Mar 16, 2012 4:52 pm
by VladSh
Tcheluskin
Посмотрите, в документации на плагин должно быть что-то о белых списках.
Добавление выделенного слова в белый список SpellCheckAddToWhiteList.js.

Что касается проверки слов, которые забиты в скомпилированных словарях, то даже не знаю, помогут ли галочки в плаге.. одно предположу - ждать это скоро не стоит.

Posted: Sat Mar 17, 2012 12:08 pm
by Tcheluskin
VladSh wrote:Добавление выделенного слова в белый список SpellCheckAddToWhiteList.js.
Спасибо.

К сожалению, некорректно заработало с русскими словами, т. к. SpellCheckAddToWhiteList.js пишет слово в файл "белого списка" txt.spck в кодировке ANSI, а плагин SpellCheck читает его оттуда в UTF8.

UPD: разобрался. Корректно заработало вообще, и с русскими словами (в *.txt файлах в любых кодировках) в частности после того, как сделал следующее:

Добавил файлы
\AkelPad\AkelFiles\Plugs\Scripts.dll (v10.7.0.0)
\AkelPad\AkelFiles\Plugs\Scripts\SpellCheckAddToWhiteList.js (v1.1)
\AkelPad\AkelFiles\Plugs\Scripts\Include\WordCaretSelect.js (v2.0)

Создал файл в кодировке 1251 ANSI
\AkelPad\AkelFiles\Plugs\SpellCheck\txt.spck
следующего содержания:

Code: Select all

;--
;--	Файл "белого списка" исключений для плагина SpellCheck
;--	SpellCheck's plugin whitelist definition file
;--

;extensions
+
+txt

Установил ему все права на любой доступ всем пользователям.
Установил в AkelPad кодировку по умолчанию 1251 ANSI (UPD2: последнее необязательно, если в заголовке файла txt.spck есть русский текст).

Posted: Sat Mar 17, 2012 12:55 pm
by FeyFre
Tcheluskin, ну во-первых, ВЫ всё-тики создали файл в UTF8, именно так его распознает плагин. Если Вы продолжаете писать в него как ANSI(тонее не как UTF8), то отсюда вылазит второе - плагин прочтет там только мусор,а значит ноль эффекта.

Posted: Sat Mar 17, 2012 1:25 pm
by Tcheluskin
FeyFre
Спасибо, разобрался, выше пост исправил.
Надо было
1) сделать файл txt.spck в кодировке ANSI без символов п»ї в начале файла, И
2) установить в AkelPad кодировку по умолчанию 1251 ANSI (у меня стояла почему-то UTF8).
Без п.2 плагин читал txt.spck всё равно в UTF8.

Posted: Sat Mar 17, 2012 3:12 pm
by FeyFre
Tcheluskin, просто нужно было писать туда в UTF8(это претензия к к автору скрипта не к Вам). И менять Вашу кодировку по-умолчанию тоже не нужно. Для того что-бы корректно определилась ANSI, Вам достаточно было бы в тех трех заголовочных строчках матернуться по-русски ;) тогда бы распозналась кодиорвка правильно(сама только латиница и знаки препинания не помогоают в этом деле, потому используется умолчание).

Posted: Sat Mar 17, 2012 5:00 pm
by Tcheluskin
FeyFre wrote:достаточно было бы в тех трех заголовочных строчках матернуться по-русски
Точно, работает.

Posted: Sun Mar 18, 2012 6:22 pm
by VladSh
FeyFre wrote:просто нужно было писать туда в UTF8(это претензия к к автору скрипта не к Вам).
В аргументах скрипта есть параметр format.

Posted: Tue May 29, 2012 4:31 am
by antabu
Русский словарь весит значительно больше, чем AkelPad со всеми остальными плагинами
opk44 wrote:
FeyFre wrote:Мне вот интересно 600000 слов - каких?
Оценивать емкость по аналогии с "обычным" орфографическим словарем неправильно, т.к. в отличие от оного, словарь содержит не только "существительные в именительном падеже" но еще и все словоформы:
бег - бегу, бегом, бегал, бежал, бежит, ... беглый, бегло...
Так вот 600тыс. и набегАет :)
В "самопальных" системах ИМХО для компактности добавляются некие "правила" словообразования, благодаря чему суффиксы/приставки/окончания хранятся отдельно от основного корпуса.
Опера, и предполагаю, что Мозилла используют словарь от Лебедева http://scon155.phys.msu.ru/~swan/orthography.html
У меня такой вопрос: существует ли плагин к AkelPad для проверки грамматики, альтернативный SpellCheck и использующий ispell http://www.luziusschneider.com/Speller/ ... /index.htm ?

Posted: Tue May 29, 2012 7:56 am
by FeyFre
проверки грамматики
Грамматики, не орфографии? Т.е. запятые не там расставлены? Я даже таких и не знаю библиотек.
альтернативный SpellCheck и использующий ispell
SpellCheck использует ASpell. ASpell в свою очередь является подавителем ISpell(посмотрите на дату последнего релиза). Достаточно словарей ASpell были получены из ISpell-овских, командой которая делала словари для ISpell.

Posted: Tue May 29, 2012 8:07 am
by FeyFre
Опера, и предполагаю, что Мозилла используют словарь от Лебедева
Да, Опера русский словарь - Лебедвский. Не знаю как там Панда, но Опера пользуется Hunspell-ом который в свою очередь вполне переваривает чужие словари(на стадии подготовки я так понимаю). en_GB там используется именно ASpell-овский(Аткинсона - разработчика ASpell). Так что какой движок Вы бы не предлагали, он в любом случает так или иначе много чего содержит от ASpell-а

Posted: Tue May 29, 2012 8:58 am
by antabu
Нет, я имел ввиду не запятые, а правописание.
А проблема именно в размере словаря, в ISpell отдельно корни слов и всякие суффиксы с приставками.
Более того, Опера раззиповывает словари на лету.