TextEditor версия от 19.04.2012

О программе

Программа для работы с текстовыми файлами. Лицензия свободная.

Внешний вид программы, с открытым текстовым файлом.

Обсуждение программы здесь: http://board.kolibrios.org/viewtopic.php?f=9&t=1222

Возможности

После создания программы TextEditor в Kolibri стало 2 программы для работы с текстом, у каждой из них есть свои сильные и слабые стороны. Проведу (не полное) сравнение программ TinyPad и TextEditor:

ДействияTinyPadTextEditor
Работа с несколькими документами естьнет (возможно скоро будет)
Поддержка кодировок KOI8M, OEM естьнет
Подсветка синтаксиса подсветка заранее зашита в программуподсветка берется из файлов, которые может указать пользователь. Также есть возможность получать справку по подсвечиваемым словам (если она есть в файлах подсветки, навести курсор на слово и нажать F1).
Многократная отмена/повтор действий нетесть

Некоторые недоработки

О работе программы

Раздел для программистов (и интересующихся людей), в котором расказаны некоторые идеи, на которых построена данная программа.

Для работы с текстом программа использует структуры:

struct symbol
  c db ?	;  +0 символ
  col db ?	;  +1 цвет
  perv dd ? ;  +2
  next dd ? ;  +6 указатели
  tc dd ?	; +10 врем. создания
  td dd ?	; +14 врем. удаления
ends

Каждая из таких структур сохраняет один символ в переменной 'c'. Переменные 'perv' и 'next' хранят индексы первого и следующего символов. Благодаря чему текст создается в виде цепочки символов (двунаправленный список).

'tc' - время создания символа, при отмене действия текстовый редактор "знает" какие символы отображать, а какие нет (хотя все символы "висят" в памяти).

'td' - время удаления символа, заполняется при удалении, при отмене действия удаления символов, текст может быть восстановлен.

'col' - используется для цветовой разметки.

Функции

Информацию по функциям смотрите в документации по элементу t_edit в библиотеке box_lib.obj.

Формат файла подсветки *.syn

ЭлементРазмер (байт)
Количество цветов текста
4
Количество подсвечиваемых слов
4
Цвета интерфейса
4*6
Цвета для текста
4*(кол. цв. текста)
Структуры со свойствами и описаниями слов
sizeof(TexColViv)*(кол. слов)
Разделительный символ, означающий начало описаний слов (всегда равен 0)
1 байт
Описания слов (строки текста с 0-ми в конце)
(длинна справочного текста + 1)

Макрос для задания ключевого слова

Файлы синтаксиса можно компилировать через fasm.

macro wo txt,f1,p1,p2,p3{
@@: db txt
rb @b+40-$
dd f1+0
db p1
dw p2+0
db p3
}

Замечания.


Автор

Игорь А. (IgorA) - разработка программы.

Спасибо