Page 1 of 4

FarSpell — проверка правописания во встроенном редакторе

Posted: Sun 26 Feb, 2006 22:33
by t-rex
Здесь обсуждается плагин FarSpell.

Кроме того что я тебе уже говорил, хотелось бы отключения фичи сохранения настроек для каждого файла - а просто иметь глобальную опцию on/off.

Posted: Mon 27 Feb, 2006 07:41
by Skirda
И... слетает подсветка после правки слова... (когла исправленное по длине отличается от неправильного)

Posted: Mon 27 Feb, 2006 08:41
by Kildor
Вопрос по словарю — понимает ли он словари Aspell? (если нет, то качать не вижу для себя смысла…)

Posted: Mon 27 Feb, 2006 19:46
by dayosh_unicode
Kildor wrote:Вопрос по словарю — понимает ли он словари Aspell? (если нет, то качать не вижу для себя смысла…)
Aspell большой. Но в принципе можно приделать и распространять как Aspell Build.
На всякий случай, загляните сюда: http://hunspell.sourceforge.net "Aspell dictionaries in Hunspell format".

Posted: Mon 27 Feb, 2006 19:51
by dayosh_unicode
Skirda wrote:И... слетает подсветка после правки слова... (когла исправленное по длине отличается от неправильного)
Другие плагины с раскраской есть?
(см. общие настройки FarSpell)

Posted: Mon 27 Feb, 2006 20:00
by Kildor
Понятно…
Меня интересовал именно аспелловский формат.
не хочу плодить словарных дублей на своём компе.

Posted: Sun 05 Mar, 2006 16:28
by Centaur
Поставил FarSpell 20060304 и словарь en-US. Он мне красит didn’t, hasn’t и прочие подобные сокращения. Это как-нибудь обходится?

Также было бы интересно уметь переходить на следующую/предыдущую ошибку.

Posted: Sun 05 Mar, 2006 19:43
by t-rex
В новой версии добился глобального он\офф выставив маску * и используя [ ] Plugin Enable - но это вроде как то не очень тривиально.

И когда уже будет работать проверка сразу двух языков в одном файле?

Posted: Sun 05 Mar, 2006 19:45
by dayosh_unicode
Centaur wrote:Поставил FarSpell 20060304 и словарь en-US. Он мне красит didn’t, hasn’t и прочие подобные сокращения. Это как-нибудь обходится?

Также было бы интересно уметь переходить на следующую/предыдущую ошибку.
В словаре такое есть. Значит, бага в плагине или Hunspell. Буду исправлять.

Второе, тоже, в todo.txt.

Posted: Sun 05 Mar, 2006 20:16
by Centaur
dayosh_unicode
Тут ещё такая специфика. Я запускаю FAR таким .cmd’шником:

Code: Select all

chcp 1251
far.exe %*
и использую в качестве апострофа символ с кодом 0x92. Есть большое подозрение, что, чтобы заставить это работать в такой постановке, придётся приделывать поддержку кодовых страниц… впрочем, сейчас и с 0x27 не работает.

Posted: Wed 08 Mar, 2006 19:31
by dayosh_unicode
Centaur wrote:Тут ещё такая специфика. Я запускаю FAR таким .cmd’шником:

Code: Select all

chcp 1251
far.exe %*
и использую в качестве апострофа символ с кодом 0x92. Есть большое подозрение, что, чтобы заставить это работать в такой постановке, придётся приделывать поддержку кодовых страниц… впрочем, сейчас и с 0x27 не работает.
chcp 1251 у меня криво показывает FAR. Что подкрутить?

Символ с кодом 146(0x92) в таблице Windows-1251 имеет следующее определение:

Code: Select all

0x92    0x2019  #RIGHT SINGLE QUOTATION MARK
Хм... Странный выбор для апострофа.
Какие могут быть ещё применения для таблицы замены символов? А ради одного символа можно сделать TechInfo #XX.

Уже вышла 20060308.

Posted: Thu 09 Mar, 2006 09:56
by Centaur
dayosh_unicode wrote:chcp 1251 у меня криво показывает FAR. Что подкрутить?
Если FAR из ветки alpha6, то у него есть ключик против юникодного вывода в консоль.

Code: Select all

chcp 1251
far.exe /8 %*
То, что рамки при этом превращаются в не разбери чего — это фича :) Пока редактор не юникодный, с этим придётся мириться.
dayosh_unicode wrote:Символ с кодом 146(0x92) в таблице Windows-1251 имеет следующее определение:

Code: Select all

0x92    0x2019  #RIGHT SINGLE QUOTATION MARK
Хм... Странный выбор для апострофа.
Священный Стандарт Unicode 4.0, глава 6, стих 6.2 General Punctuation/Apostrophes, гласит:
Punctuation Apostrophe. U+2019 RIGHT SINGLE QUOTATION MARK is preferred where the character is to represent a punctuation mark, as for contractions: “We’ve been here before.” In this latter case, U+2019 is also referred to as a punctuation apostrophe.
dayosh_unicode wrote:Уже вышла 20060308.
Вечером потестирую.

Posted: Thu 09 Mar, 2006 19:14
by Centaur
Ооо, прелесть. В 0308 он подсвечивает одинокие минусы :) А что, в каких-нибудь русских/английских словарях минусы есть?

(выкидывает из WordsChar.reg все вхождения ,2D,00)

Во, а дальше поддержка 0x92 делается тривиально. Берём словарь, дублируем все слова с апострофами, добавляем ,22,04 в WordsChar.reg. Конечно, это грязный хак и в плагине этому не место, но как мера для отдельных пользователей вполне сойдёт.

FarSpell 20060309

Posted: Thu 09 Mar, 2006 19:46
by dayosh_unicode
Centaur
Прелесть? Этот Hunspell... :evil: . Fixed.
Остался ещё один баг для следующей версии.
Почему ты добавляешь ,22,04 (не ,19,20)?

И ещё, когда "chcp 1251;far %*", с клавиатуры какя-то белиберда печатается, вместо "йцукен"...

Re: FarSpell 20060309

Posted: Fri 10 Mar, 2006 10:35
by Centaur
dayosh_unicode wrote:И ещё, когда "chcp 1251;far %*", с клавиатуры какя-то белиберда печатается, вместо "йцукен"...
Да, действительно. В b1634 я дополнительно задаю ключ /aw. В b2069 нужно задавать /8. Кроме того, в консоли должен использоваться векторный шрифт.
dayosh_unicode wrote:Почему ты добавляешь ,22,04 (не ,19,20)?
Это чёрная магия и шаманство с бубном.

Ситуация такая. Редактор FAR’а работает в режиме «DOS», без использования таблиц перекодировки. В файле записан код 0x92. Как я понимаю, плагин для разбиения текста на слова конвертирует его в Unicode? Какими средствами? Какую кодировку он при этом считает исходной? Я проверил — GetOEMCP() возвращает 866, GetACP(), GetConsoleCP() и GetConsoleOutputCP() — 1251.

Так вот, похоже, что конвертация в Unicode проходит как из OEM-кодировки. Поэтому код 0x92 интерпретируется как 0x0422 CYRILLIC CAPITAL LETTER TE.