Skip to content

Commit 748bd40

Browse files
committed
add hrcsettings
1 parent a4972e9 commit 748bd40

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed

docs/advanced/hrcsettings.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# hrcsettings.xml
2+
3+
hrcsettings - это конфигурационный файл, предназначенный для расширения настроек прототипов, определённых в базовой библиотеке HRC-схем, а также для хранения пользовательских модификаций этих настроек.
4+
5+
## Расширение настроек
6+
7+
Прототипы, описанные в базовой библиотеке HRC-схем, содержат параметры, влияющие на их поведение или используемые ядром Colorer. Однако, приложениям, построенным на основе Colorer-library (например, FarColorer), могут требоваться дополнительные параметры для прототипов, отсутствующие в базовой библиотеке. Также, может возникнуть необходимость переопределить значения по умолчанию для существующих параметров.
8+
Для этих целей используется файл hrcsettings.xml, формат которого аналогичен описанию прототипов в стандартных HRC-файлах, что позволяет централизованно управлять такими расширениями.
9+
10+
=== "Формат"
11+
12+
```xml
13+
<?xml version="1.0" encoding='UTF-8'?>
14+
<hrc-settings>
15+
<prototype name="">
16+
<parameters>
17+
<param name="" value="" description=""/>
18+
</parameters>
19+
<param name="" value="" description=""/>
20+
</prototype>
21+
</hrc-settings>
22+
```
23+
24+
=== "Пример"
25+
26+
```xml
27+
<?xml version="1.0" encoding='UTF-8'?>
28+
<hrc-settings>
29+
<prototype name="default">
30+
<param name="show-cross" value="none" description="Visibility of the cross (horizontal, vertical, both, none)"/>
31+
<param name="cross-zorder" value="bottom" description="Position of the cross, which points out cursor position"/>
32+
<param name="maxlinelength" value="5000" description="Maximum parsed length of line of the text"/>
33+
<param name="backparse" value="6000" description="Number of lines, after which parser stops continous analysis. Infinite, if zero."/>
34+
<param name="fullback" value="yes" description="If yes, draws background in inlined languages till end of the screen"/>
35+
<param name="default-fore" value="" description="User-defined foreground color for this particular type"/>
36+
<param name="default-back" value="" description="User-defined foreground color for this particular type"/>
37+
<param name="hotkey" value="" description="Key is assigned in the menu select the file type, for this type"/>
38+
<param name="favorite" value="false" description="If true then the prototype is displayed in a group of favorites"/>
39+
<param name="maxblocksize" value="300" description="Maximum length of regexp block in text"/>
40+
<param name="disabled" value="false" description="Disable coloring for the prototype. See 'use-default'."/>
41+
<param name="use-default" value="false" description="Use the default type if this prototype is disabled"/>
42+
</prototype>
43+
</hrc-settings>
44+
```
45+
46+
Элементы `<param>` могут располагаться как непосредственно внутри элемента `<prototype>`, так и в дочернем блоке `<parameters>`. Рекомендуется использовать вложенный блок `<parameters>`, следуя структуре стандартного описания прототипа (например, в основных HRC-файлах). Прямое вложение `<param>` в `<prototype>` поддерживается для обратной совместимости.
47+
48+
Формат файла позволяет определять и другие элементы конфигурации прототипа (например, условия сопоставления файлов), о чем будет рассказано в следующем разделе. Однако, если основная задача — только расширение набора параметров или изменение их значений по умолчанию, эти дополнительные элементы обычно не используются.
49+
50+
## Хранение пользовательских настроек
51+
52+
Для приложений, не имеющих собственной системы хранения конфигурации (например, consoletools), файл hrcsettings.xml может служить местом для сохранения пользовательских настроек прототипов. Это позволяет пользователям модифицировать и сохранять не только значения параметров прототипа (элементы `<param>`), но и условия его выбора для конкретных файлов (элементы `<filename>` и `<firstline>`).
53+
54+
=== "Формат"
55+
56+
```xml
57+
<?xml version="1.0" encoding='UTF-8'?>
58+
<hrc-settings>
59+
<prototype name="">
60+
<filename weight=""></filename>
61+
<firstline weight=""></firstline>
62+
<parameters>
63+
<param name="" value="" description=""/>
64+
</parameters>
65+
<param name="" value="" description=""/>
66+
</prototype>
67+
</hrc-settings>
68+
```
69+
70+
71+
## Порядок применения настроек из hrcsettings.xml
72+
73+
При загрузке файла hrcsettings.xml, для каждого прототипа, упомянутого в нем, происходит следующее:
74+
75+
- **Добавление новых параметров:** Если параметр указан в hrcsettings.xml, но отсутствует в ранее загруженных описаниях прототипа (например, из базовой HRC-библиотеки), он добавляется к прототипу.
76+
- **Обновление существующих параметров:** Если параметр уже существует, его значение по умолчанию (атрибут value) и описание (атрибут description) обновляются согласно значениям из hrcsettings.xml.
77+
- **Замена условий выбора прототипа:** Условия сопоставления прототипа с файлами (определяемые элементами `<filename>` и `<firstline>`) полностью заменяются теми, что указаны в hrcsettings.xml. Предыдущие условия выбора для данного прототипа, если они были, игнорируются.
78+

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ nav:
1818
- Catalog.xml: advanced/catalog-xml.md
1919
- Type of paths: advanced/file-paths.md
2020
- Customization: advanced/custom.md
21+
- HrcSettings.xml: advanced/hrcsettings.md
2122

2223
theme:
2324
name: material

0 commit comments

Comments
 (0)