forked from KolibriOS/kolibrios
cd74d1af33
git-svn-id: svn://kolibrios.org@5098 a494cfbc-eb01-0410-851d-a64ba20cac60 |
||
---|---|---|
.. | ||
build.bat | ||
readme.htm | ||
te_data.inc | ||
te_syntax.asm | ||
te_syntax.png | ||
te_work.inc | ||
Tupfile.lua |
<html> <head> <title>Оглавление</title> <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251"> <style> body { font-size: 15px; font-family: "Bookman Old Style"; color: black; text-align: justify; } h1 { color: green; font-size: 23px; } h2 { color: green; font-size: 21px; } h3 { color: green; font-size: 19px; } h4 { color: #803f00; font-size: 17px; } i { color: #0099cc; } b { color: #0099cc; } p { text-indent: 1em; margin-top: 3px; margin-bottom: 2px; margin-left: 0px; margin-right: 0px; } ol, ul, dl{ margin-top: 3px; margin-bottom: 2px; } pre { padding: 2px; padding-left: 20px; margin-top: 5px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; font-family: "Courier New"; font-size: 15px; color: #004000; background-color: #ffd0ff; } table { font-size: 15px; } </style> </head> <body> <h1>TextEditor syntax file converter версия от 31.05.2010</h1> <h2>О программе</h2> <p>Программа для работы с файлами текстового редактора формата <b>*.syn</b>.</p> <p><img src="te_syntax.png"></p> <p>Лицензия свободная.</p> <h2>Алгоритм работы программы</h2> <p>Перед использованием записать файл <b>te_synt.kex</b> в папку с редактором <b>t_edit.kex</b>.</p> <p>1) загрузить файл синтаксиса <b>.syn</b></p> <p>2) ввести путь и новое имя для сохранения в формате <b>.asm</b></p> <p>3) изменить в файле <b>.asm</b> интересующие пользователя параметры, это могут быть:</p> <ul> <li>цвета интерфейса</li> <li>подсвечиваемые слова (должны ити в порядке следования ascii кодов)</li> <li>справка по словам</li> </ul> <p>4) компилировать в <b>fasm</b></p> <p>5) исправить расширение <b>.bin</b> на <b>.syn</b></p> <p>Если пропустить 3-й пункт, то в результате пользователь должен получить такой же файл синтаксиса, который был изначально.</p> <h3>Формат преобразованого файла подсветки *.asm</h3> <p><b>count_colors_text</b> - колличество цветов для текста</p> <p><b>count_key_words</b> - колличество подсвечиваемых слов</p> <p>Цветовые параметры:</p> <p><b>color_cursor</b> - цвет курсора</p> <p><b>color_wnd_capt</b> - цвет полей вокруг окна</p> <p><b>color_wnd_work</b> - цвет фона в окне</p> <p><b>color_wnd_bord</b> - цвет текста на полях</p> <p><b>color_select</b> - цвет выделения</p> <p><b>color_cur_text</b> - цвет символа под курсором</p> <p><b>color_wnd_text</b> - метка после которой идут цвета текста в окне</p> <p><b>text</b> - метка после которой идут описания ключевых слов. Для более компактного описания ключевого слова используется макрос <b>wo</b>:</p> <pre>macro wo txt,f1,p1,p2,p3{ @@: db txt rb @b+40-$ dd f1+0 db p1 dw p2+0 db p3 }</pre> <p>параметры макроса:</p> <p><b>txt</b> - <i>подсвечиваемое слово</i></p> <p><b>f1</b> - <i>смещение начала справки</i> по данному слову относительно метки <b>f1</b> (если справки нет то параметр можно оставить пустым)</p> <p><b>p1</b> - <i>опции</i> влияющие на выделение слова. Возможно всего 5 опций, каждая из которых включается определенным битом:</p> <ul> <li>2<sup>0</sup>=1 - слева не текст,</li> <li>2<sup>1</sup>=2 - справа не текст,</li> <li>2<sup>3</sup>=4 - использовать конечный символ,</li> <li>2<sup>4</sup>=8 - слева любая цифра,</li> <li>2<sup>5</sup>=16 - справа любая цифра.</li> </ul> <p><b>p2</b> - <i>(ascii код экранирующего символа * 256) + ascii код конечного символа</i>. Используется в случаях, когда нужно задать выделение заранее не известной длинны, например: комментарии, строки в кавычках. Для его использования предыдущий параметр должен содержать 2-й бит или цифру 4 = 2<sup>2</sup>.</p> <p><b>p3</b> - <i>номер цвета</i> из массива <b>color_wnd_text</b>, которым будет выделятся слово</p> <p><b>Пример 1.</b> Нужно задать слово <i>or</i>, что-бы по ошибке комбинации из символов входящих в слово не выделялись в других словах, например: <i>f<b>or</b>m</i>, <i>col<b>or</b></i> используем в <b>p2</b> биты 0 и 1 получаем число 3 = 2<sup>0</sup>+2<sup>1</sup> = 1+2.</p> <p><b>Пример 2.</b> Фрагмент файла, полученого в результате работы программы:</p> <pre>wo<'word'>,f1.600-f1,<b>3</b>,,8 wo<'xadd'>,,<b>3</b>,,1 wo<'xchg'>,f1.602-f1,<b>3</b>,,1 wo<'xlat'>,,<b>3</b>,,1 wo<'xlatb'>,,<b>3</b>,,1 wo<'xmm0'>,,<b>3</b>,,2 wo<'xmm1'>,,<b>3</b>,,2 wo<'xmm2'>,,<b>3</b>,,2 wo<'xmm3'>,,<b>3</b>,,2 wo<'xmm4'>,,<b>3</b>,,2 wo<'xmm5'>,,<b>3</b>,,2 wo<'xmm6'>,,<b>3</b>,,2 wo<'xmm7'>,,<b>3</b>,,2 wo<'xor'>,f1.613-f1,<b>3</b>,,1 wo<'zf'>,f1.614-f1,<b>3</b>,,2 wo<'||'>,,<b>0</b>,,1</pre> <p>Параметры <b>p2</b> почти во всех словах равны 3-м, а в последнем слове 0, потому что для последнего слова не важно какие символы будут слева и справа от него.</p> <h3>Формат файла подсветки *.syn</h3> <table> <tr><th>Элемент</th><th>Размер (байт)</th></tr> <tr><td>Количество цветов текста</td> <td><pre>4</pre></td></tr> <tr><td>Количество подсвечиваемых слов</td> <td><pre>4</pre></td></tr> <tr><td>Цвета интерфейса</td> <td><pre>4*6</pre></td></tr> <tr><td>Цвета для текста</td> <td><pre>4*(кол. цв. текста)</pre></td></tr> <tr><td>Структуры со свойствами и описаниями слов</td> <td><pre>sizeof(TexColViv)*(кол. слов)</pre></td></tr> <tr><td>Разделительный символ, означающий начало описаний слов (всегда равен 0)</td> <td><pre>1 байт</pre></td></tr> <tr><td>Описания слов (строки текста с 0-ми в конце)</td> <td><pre>(длинна справочного текста + 1)</pre></td></tr> </table> <h4>Замечания.</h4> <ul> <li>Все слова должны быть расположены в порядке следования их ASCII кодов. Возможно в будущих версиях формат файлов подсветки будет изменен.</li> </ul> <hr> <h2>Автор</h2> <p>Игорь А. (IgorA) - разработка программы.</p> </body> </html>