Subversion Repositories Kolibri OS

Rev

Rev 2632 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1338 IgorA 1
2
3
Оглавление
4
5
48
49
 
50
2632 IgorA 51

TextEditor версия от 19.04.2012

1338 IgorA 52

О программе

53

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

54
  Лицензия свободная.

55

56

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

57

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

58
 
59

Возможности

60
    61
      
  • Открытие (Ctrl+O)/Сохранение файла.
  • 62
      
  • Редактирование: Повтор/Отмена действия (Ctrl+Z), Вырезать/Копировать (Ctrl+C)/Вставить (Ctrl+V), Поиск (Ctrl+F, F3).
  • 63
      
  • Выделение цветом слов, заданных в файле синтаксиса. Вывод справки по ним, если она есть (нажатием F1 когда курсор на слове).
  • 64
    65
     
    66

    После создания программы TextEditor в Kolibri стало 2 программы для работы с текстом,

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

    69
    1456 IgorA 70
    ДействияTinyPadTextEditor
    1338 IgorA 71
    Работа с несколькими документами
    1456 IgorA 72
      
    естьнет (возможно скоро будет)
    1338 IgorA 73
    Поддержка кодировок KOI8M, OEM
    1456 IgorA 74
      
    естьнет
    1338 IgorA 75
    Подсветка синтаксиса
    1457 IgorA 76
      
    подсветка заранее зашита в программуподсветка берется из файлов, которые может указать пользователь. Также есть возможность получать справку по подсвечиваемым словам (если она есть в файлах подсветки, навести курсор на слово и нажать F1).
    1338 IgorA 77
    Многократная отмена/повтор действий
    1457 IgorA 78
      
    нетесть
    1338 IgorA 79
    80
     
    81

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

    82
      83
    • При сохранении программа не спрашивает о замене существ. файла.
    • 84
    • Срабатывали кнопки под меню, потому я их сдвинул влево.
    • 85
      86
       
      87

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

      88

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

      89
        некоторые идеи, на которых построена данная программа.

      90
       
      91

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

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

      Каждая из таких структур сохраняет один символ в переменной 'c'. Переменные

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

      103

      'tc' - время создания символа, при отмене действия текстовый редактор "знает"

      104
        какие символы отображать, а какие нет (хотя все символы "висят" в памяти).

      105

      'td' - время удаления символа, заполняется при удалении, при отмене действия

      106
        удаления символов, текст может быть восстановлен.

      107

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

      108
       
      1457 IgorA 109

      Функции

      110

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

      1338 IgorA 111
       
      112

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

      113
      114
      ЭлементРазмер (байт)
      115
      Количество цветов текста
      116
        
      4
      117
      Количество подсвечиваемых слов
      118
        
      4
      119
      Цвета интерфейса
      120
        
      4*6
      121
      Цвета для текста
      122
        
      4*(кол. цв. текста)
      123
      Структуры со свойствами и описаниями слов
      124
        
      sizeof(TexColViv)*(кол. слов)
      125
      Разделительный символ, означающий начало описаний слов (всегда равен 0)
      126
        
      1 байт
      127
      Описания слов (строки текста с 0-ми в конце)
      128
        
      (длинна справочного текста + 1)
      129
      2632 IgorA 130
       
      131

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

      132

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

      133
      macro wo txt,f1,p1,p2,p3{
      134
      @@: db txt
      135
      rb @b+40-$
      136
      dd f1+0
      137
      db p1
      138
      dw p2+0
      139
      db p3
      140
      }
      141
       
      1338 IgorA 142

      Замечания.

      143
        144
      • Все слова должны быть расположены в порядке следования их ASCII кодов.
      • 145
          Возможно в будущих версиях формат файлов подсветки будет изменен.
        146
        147
         
        148

        149

        Автор

        150

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

        151
         
        152

        Спасибо

        153
          154
            
        • Евтихов Максим (Maxxxx32) - элемент EditBox.
        • 155
            
        • Алексей Теплов (Lrz) - элемент EditBox, макрос load_library.
        • 1467 IgorA 156
            
        • Mario79 - элементы: скроллинги, меню, OpenDial.
        • 1338 IgorA 157
            
        • Diamond - за программу KlbrInWin, и помощь при написании программы.
        • 158
            
        • Insolor - за тестирование программы на ошибки.
        • 159
            
        • Leency и другим, кто помогал на форуме советами.
        • 160
          161
           
          162
          163