Subversion Repositories Kolibri OS

Rev

Rev 1467 | Go to most recent revision | 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
    Ограничения на размер файлов
    1467 IgorA 80
      
    нетесть при открытии файлов, при редактировании нет
    1338 IgorA 81
    82
     
    83

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

    84
      85
    • Если открыть большой файл, размер которого больше чем:
    • 86
          maxChars equ 100002 ;(...+2)
      87
        он откроется не весь, а первые maxChars-2 символов из файла
      88
        (о чем выдается сообщение).
      89
    • При сохранении программа не спрашивает о замене существ. файла.
    • 90
    • Срабатывали кнопки под меню, потому я их сдвинул влево.
    • 91
      92
       
      93

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

      94

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

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

      96
       
      97

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

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

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

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

      109

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

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

      111

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

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

      113

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

      114
       
      1457 IgorA 115

      Функции

      116

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

      1338 IgorA 117
       
      118

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

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

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

      138

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

      139
      macro wo txt,f1,p1,p2,p3{
      140
      @@: db txt
      141
      rb @b+40-$
      142
      dd f1+0
      143
      db p1
      144
      dw p2+0
      145
      db p3
      146
      }
      147
       
      1338 IgorA 148

      Замечания.

      149
        150
      • Все слова должны быть расположены в порядке следования их ASCII кодов.
      • 151
          Возможно в будущих версиях формат файлов подсветки будет изменен.
        152
        153
         
        154

        155

        Автор

        156

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

        157
         
        158

        Спасибо

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