Login | Register
My pages Projects Community openCollabNet

Русский Far Unlimited

Миссия

FarSpell

Плагин для проверки орфографии во встроенном редакторе в файловом менеджере FAR.

Полезен для всех кто пользуется встроенным редактором для написания больше одного слова и OCR'щикам, которые любят FAR.

Для проверки орфографии используется библиотека Hunspell из OpenOffice.Org. Поэтому плагин понимает словари в формате MySpell. и Hunspell.

Скачать свежую версию отсюда.

Основные возможности FarSpell:

  • Отключаемая подсветка потенциально неправильных слов.

  • Выдача вариантов написания слова.

  • Поиск ошибок

  • Может запоминать настройки для каждого файла

Написан на C++ с использованием модифицированной библиотеки FARPlus.

Компилятор(ы): Microsoft VC.

Исходники доступны через SVN:

svn co -N http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/FarSpell
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/FARPlus
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/DialogExpress
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/FarLNG
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/make-tools
DialogExpress

Средства разработки диалогов написанных на языке диалоговых ресурсов. DialogExpress состоит из библиотеки чтения диалоговых ресурсов, конвертера в любой язык программирования и плагина для мгновенной визуализации ресурсов. Посвящается всем разработчикам интерфейса FAR Manager/плагинов.

DialogExpress можно использовать для динамической загрузки диалогов. Написан на чистом C. Компилируется статически и динамически. Лицензия LGPL.

Компилятор(ы): GNU project C compiler, Microsoft VC.

Исходники доступны через SVN:

svn co -N http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/DialogExpress
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/FarLNG
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/make-tools
Исправленный и дополненный FARPlus

В FARPlus было внесено множество изменений и дополнений. В основном это исправление старых ошибок, подключение нововведений Plugin API, поддержка Unicode строк.

Компилятор(ы): Microsoft VC, GNU project C compiler.

Благодаря SVK удалось сохранить журнал всех изменений.

Исходники доступны через SVN:

svn co -N http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk
svn co http://far-unlimited.tigris.org:80/svn/far-unlimited/trunk/FARPlus

Подробности

Мне в FAR'е очень не хватало проверки орфографии. Существует плагин gSpell Семенова Алексея. Но он привязаны к платному офисному пакету. Есть, также, некоторые другие плагины подобного назначения. Но всех их объединяет то, что они не развиваются, их исходные коды закрыты.

В конце 2005 года я взялся за написание FarSpell.

В начале, я попытался подключить Aspell. Библиотека оказалась слишком громоздкая. Были некоторые неясности по поводу её использования.

Потом я увидел MySpell и Hunspell из OpenOffice.Org. И было решено подключить Hunspell вместо Aspell. Почему именно Hunspell? Потому что он развивается, а MySpell разработчики, скорее всего, забросили.

Для того чтобы ускорить разработку FarSpell, была взята библиотека FARPlus, которая является объектной обёрткой FAR Plugin API. Это автоматически определило, что FarSpell будет написан на C++.

В процессе разработки FarSpell было внесено множество изменений и дополнений в FARPlus. В основном это исправление старых ошибок, подключение нововведений Plugin API, поддержка Unicode строк, которая так необходима для взаимодействия с библиотекой проверки орфографии, добавлена поддержка компилятора GNU project C compiler.

Как и к любому другому плагину к FarSpell'у предъявлено требование: разумное взаимодействии с пользователем. Это сообщения, диалоги, интуитивный интерфейс.

На мой взгляд, как разработчика плагинов, использование диалоговых возможностей Plugin API нерационально. Для вывода сообщений сойдут классы из FARPlus. А для создания диалогов был выбран DialogGenerator от Семенова Алексея (автора gSpell.) Но DialogGenerator имел те же проблемы что и gSpell (отсутствие развития и исходников.) Было решено переизобрести велосипед и... получился DialogExpress.

DialogExpress адресован разработчикам интерфейса под FAR Manager. Он состоит из нескольких частей:

DialogRes

Библиотека для чтения описания диалогов на языке аналогичном DialogGenerator. Сердцем этой библиотеки является парсер, который автоматически создаётся из грамматики с помощью lemon. DialogRes написан на чистом C и вобрал в себя многое из SQLite.

DEx_View

Плагин для визуализации диалоговых ресурсов: как будто это настоящий плагин, а не диалог от него. Перед показом диалога можно выбрать файл с нужным языком строк (благодаря FarLNG от Warp ItSelf.) А клавиша F1 вызывает статью для выбранного диалога из файла справки в текущей папке.

Meta Dialog

Программа, которая конвертирует диалоговые ресурсы в формате DialogRes в любой другой формат по заданному шаблону. Сейчас есть образцы шаблонов для C и C++.

Для описания шаблонов был разработан простейший макро-язык со вставкой переменных, примитивными условиями и жёстко ограниченными циклам. Никакого XML!

Ссылки

  • Консольный файловый менеджер Far Manager

  • Форум посвящённый Far Manager