|
@@ -323,6 +323,61 @@ SEQ сам может быть элементом контейнера SWITCH.
|
|
|
команду, соответствующую нажатой горячей клавише.
|
|
|
|
|
|
|
|
|
+### Ссылки на элементы
|
|
|
+
|
|
|
+Некоторые теги имеют атрибуты, которые являются ссылками на другие, определенные
|
|
|
+в файлах конфигурации, элементы. Например `VIEW` имеет атрибут `ref`, с помощью
|
|
|
+которого в текущем месте схемы создается "копия" стороннего `VIEW`. Или тег
|
|
|
+`PARAM` имеет атрибут `ptype`, с помощью которого ссылается на `PTYPE`, определяя
|
|
|
+тип параметра. Для организации ссылок в klish предусмотрен свой "язык". Можно
|
|
|
+сказать это сильно упрощенный аналог путей в файловой системе или XPath.
|
|
|
+
|
|
|
+Путь до элемента в klish набирается, указывая все его родительские элементы с
|
|
|
+разделителем `/`. Именем элемента считается значение его поля `name`. Путь
|
|
|
+начинается также с символа `/`, обозначая корневой элемент.
|
|
|
+
|
|
|
+> Относительные пути в данный момент не поддерживаются
|
|
|
+
|
|
|
+```
|
|
|
+<KLISH>
|
|
|
+
|
|
|
+<PTYPE name="PTYPE1">
|
|
|
+ <ACTION sym="sym1"\>
|
|
|
+</PTYPE>
|
|
|
+
|
|
|
+<VIEW name="view1">
|
|
|
+
|
|
|
+ <VIEW name="view1_2">
|
|
|
+ <COMMAND name="cmd1">
|
|
|
+ <PARAM name="par1" ptype="/PTYPE1"/>
|
|
|
+ </COMMAND>
|
|
|
+ </VIEW>
|
|
|
+
|
|
|
+</VIEW>
|
|
|
+
|
|
|
+<VIEW name="view2">
|
|
|
+
|
|
|
+ <VIEW ref="/view1/view1_2"/>
|
|
|
+
|
|
|
+</VIEW>
|
|
|
+
|
|
|
+</KLISH>
|
|
|
+```
|
|
|
+
|
|
|
+Параметр "par1" ссылается на `PTYPE`, используя путь `/PTYPE1`. Имена типов
|
|
|
+принято обозначать большими буквами, чтобы проще отличать типы от других
|
|
|
+элементов. Здесь тип определен на самом верхнем уровне схемы. Базовые типы
|
|
|
+обычно так и определяются, но `PTYPE` не обязан находится на верхнем уровне и
|
|
|
+может быть вложен во `VIEW` или даже `PARAM`. В таком случае он будет иметь
|
|
|
+более сложный путь.
|
|
|
+
|
|
|
+`VIEW` с именем "view2" импортирует команды из `VIEW` с именем "view1_2",
|
|
|
+используя путь `/view1/view1_2`.
|
|
|
+
|
|
|
+Если, предположим, понадобится ссылка на параметр "par1", то путь будет выглядеть
|
|
|
+так - `/view1/view1_2/cmd1/par1`.
|
|
|
+
|
|
|
+
|
|
|
## Теги
|
|
|
|
|
|
|