kolibrios-fun/programs/other/t_edit_synt
IgorA 0311a61f7f fix function name 'edit_box' to 'edit_box_draw'
git-svn-id: svn://kolibrios.org@9568 a494cfbc-eb01-0410-851d-a64ba20cac60
2022-01-03 21:03:06 +00:00
..
build.bat t_edit: fix 2 icons, fix exit function 2019-01-15 12:24:51 +00:00
readme.htm t_edit: fix load new lines 13,10 2021-06-23 10:49:50 +00:00
te_data.inc fix function name 'edit_box' to 'edit_box_draw' 2022-01-03 21:03:06 +00:00
te_syntax.asm tinygl.obj: add some functions, 2020-12-18 10:03:16 +00:00
te_syntax.png 1) removed duplicate code in 'box_lib' 2010-05-30 21:27:14 +00:00
te_work.inc buf2d.obj: update function 'buf2d_bit_blt' 2020-05-04 11:55:42 +00:00
Tupfile.lua switch build system to Tup 2014-09-12 15:15:23 +00:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>2</sup>=4 - использовать конечный символ,</li>
 <li>2<sup>3</sup>=8 - слева любая цифра,</li>
 <li>2<sup>4</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&lt;'word'&gt;,f1.600-f1,<b>3</b>,,8
wo&lt;'xadd'&gt;,,<b>3</b>,,1
wo&lt;'xchg'&gt;,f1.602-f1,<b>3</b>,,1
wo&lt;'xlat'&gt;,,<b>3</b>,,1
wo&lt;'xlatb'&gt;,,<b>3</b>,,1
wo&lt;'xmm0'&gt;,,<b>3</b>,,2
wo&lt;'xmm1'&gt;,,<b>3</b>,,2
wo&lt;'xmm2'&gt;,,<b>3</b>,,2
wo&lt;'xmm3'&gt;,,<b>3</b>,,2
wo&lt;'xmm4'&gt;,,<b>3</b>,,2
wo&lt;'xmm5'&gt;,,<b>3</b>,,2
wo&lt;'xmm6'&gt;,,<b>3</b>,,2
wo&lt;'xmm7'&gt;,,<b>3</b>,,2
wo&lt;'xor'&gt;,f1.613-f1,<b>3</b>,,1
wo&lt;'zf'&gt;,f1.614-f1,<b>3</b>,,2
wo&lt;'||'&gt;,,<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>