natgillin/translations-raw huggingface dataset:
This section will discuss the & kate; syntax highlighting mechanism in more detail. It is for you if you want to know about it, or if you want to change or create syntax definitions.
У цьому розділі ми зосередимося на механізмах, які використовуються для підсвічування синтаксису у & kate;. Відомості з цього розділу призначено для тих користувачів, яким цікаво дізнатися про роботу системи підсвічування синтаксису, або тих користувачів, які бажають змінити або створити нові визначення підсвічування синтаксису.
Whenever you open a file, one of the first things the & kate; editor does is detect which syntax definition to use for the file. While reading the text of the file, and while you type away in it, the syntax highlighting system will analyze the text using the rules defined by the syntax definition and mark in it where different contexts and styles begin and end.
Під час відкриття файла однією з перших дій, які виконує редактор & kate;, є визначення правил підсвічування синтаксису для цього файла. Під час читання тексту з файла або отримання введених вами рядків система підсвічування синтаксису аналізуватиме текст на основі правил підсвічування синтаксису і позначатиме у показаному тексті позиції початку і завершення різних контекстів і стилів.
When you type in the document, the new text is analyzed and marked on the fly, so that if you delete a character that is marked as the beginning or end of a context, the style of surrounding text changes accordingly.
Під час введення документа за допомогою клавіатури створений вами текст буде проаналізовано і розмічено на льоту, отже, якщо ви вилучите символ, які система розмітила як початок або завершення певного контексту, стиль сусідніх з поточним фрагментів тексту також змінюватиметься відповідно до зміни контексту.
The syntax definitions used by the & kate; Syntax Highlighting System are & XML; files, containing
Визначення синтаксичних правил, які використовуються у системі підсвічування синтаксису & kate;, є файлами & XML;, у яких містяться
Rules for detecting the role of text, organized into context blocks
Правила для визначення ролі тексту, впорядковані у контекстні блоки
Keyword lists
Списки ключових слів
Style Item definitions
Визначення елементів стилю
When analyzing the text, the detection rules are evaluated in the order in which they are defined, and if the beginning of the current string matches a rule, the related context is used. The start point in the text is moved to the final point at which that rule matched and a new loop of the rules begins, starting in the context set by the matched rule.
Під час аналізу тексту правила визначення контексту застосовуватимуться у порядку, у якому ці правила було визначено у файлі визначень, — якщо початок поточного рядка відповідає певному правилу, буде використано відповідний контекст. Після цього початкову точку у тексті буде пересунуто у завершальну точку застосування визначеного правила і почнеться новий цикл пошуку відповідників правил в межах контексту, встановленого попереднім правилом.
The detection rules are the heart of the highlighting detection system. A rule is a string, character or regular expression against which to match the text being analyzed. It contains information about which style to use for the matching part of the text. It may switch the working context of the system either to an explicitly mentioned context or to the previous context used by the text.
Правила визначення є основою системи визначення підсвічування. Кожне правило визначається рядком, символом або формальним виразом, з яким порівнюватиметься текст документа. Правилом визначаються відомості, які буде використано під час визначення стилю відповідного фрагмента тексту. Правило може перемкнути поточний контекст системи підсвічування або на явно вказаний у правилі контекст або на попередній контекст, який було використано у тексті.
Rules are organized in context groups. A context group is used for main text concepts within the format, for example quoted text strings or comment blocks in program source code. This ensures that the highlighting system does not need to loop through all rules when it is not necessary, and that some character sequences in the text can be treated differently depending on the current context.
Правила об’ єднуються у контекстні групи. Кожна контекстна група реалізує основні елементи у відповідному форматі файлів, наприклад, текстові рядки у лапках або блоки коментарів у файлах кодів програми. За такої структури системи підсвічування можна уникнути потреби у переборі всього набору правил, коли такий перебір не потрібен, а також мати можливість різного трактування деяких послідовностей символів у тексті, залежно від поточного контексту.
Contexts may be generated dynamically to allow the usage of instance specific data in rules.
Контексти можуть створюватися і динамічно, таким чином забезпечується використання у правилах особливостей даних документа.
Context Styles and Keywords
Контекстні стилі і ключові слова
In some programming languages, integer numbers are treated differently than floating point ones by the compiler (the program that converts the source code to a binary executable), and there may be characters having a special meaning within a quoted string. In such cases, it makes sense to render them differently from the surroundings so that they are easy to identify while reading the text. So even if they do not represent special contexts, they may be seen as such by the syntax highlighting system, so that they can be marked for different rendering.
У деяких мовах програмування цілі числа обробляються компілятором (програмою, яка перетворює початкові коди програми на бінарний файл програми) у спосіб, відмінний від способу обробки чисел з плаваючою крапкою, також у рядках, взятих у лапки, можуть бути символи зі спеціальним призначенням. У таких випадках було б доцільним виокремити подібні символи, щоб їх простіше було виявити під час читання коду. Отже, навіть якщо ці символи не мають окремого контексту, система підсвічування тексту показати їх так, неначе подібний контекст для них існує, тобто виокремити їх з- поміж навколишнього тексту.
A syntax definition may contain as many styles as required to cover the concepts of the format it is used for.
У визначенні синтаксису може бути довільна кількість стилів, достатня для визначення всіх елементів формату тексту, для якого це визначення було створено.
In many formats, there are lists of words that represent a specific concept. For example in programming languages, the control statements is one concept, data type names another, and built in functions of the language a third. The & kate; Syntax Highlighting System can use such lists to detect and mark words in the text to emphasize concepts of the text formats.
У багатьох форматах існують списки слів, які відповідають певному елементу. Наприклад, у мовах програмування керівні команди складають один елемент, назви типів даних — другий, вбудовані функції мови — третій. Система підсвічування синтаксису & kate; здатна використовувати такі списки для виявлення і позначення слів у тексті з метою підкреслення призначення елементів у текстових форматах.
Default Styles
Типові стилі
If you open a C++ source file, a & Java; source file and an HTML document in & kate;, you will see that even though the formats are different, and thus different words are chosen for special treatment, the colors used are the same. This is because & kate; has a predefined list of Default Styles which are employed by the individual syntax definitions.
Якщо ви відкриєте файл кодів мовою C++, & Java; або документ HTML у & kate;, ви переконаєтеся у тому, що, хоча формати цих файлів є різними, а отже у них використовуються різні слова для позначень елементів тексту, кольори, які буде використано програмою будуть тими самими. Причиною цього є існування у & kate; наперед визначеного списку типових стилів, який використовується у окремих визначеннях синтаксису.
This makes it easy to recognize similar concepts in different text formats. For example comments are present in almost any programming, scripting or markup language, and when they are rendered using the same style in all languages, you do not have to stop and think to identify them within the text.
Типові стилі спрощують розпізнавання подібних елементів у різних форматах тексту. Наприклад, коментарі передбачено майже у всіх мовах програмування, написання скриптів або мовах розмітки, отже, якщо їх буде показано у однаковому стилі у всіх форматах мов, вам не потрібно буде зупинятися і розмірковувати над тим, як виглядають коментарі у тексті документа.
All styles in a syntax definition use one of the default styles. A few syntax definitions use more styles that there are defaults, so if you use a format often, it may be worth launching the configuration dialog to see if some concepts are using the same style. For example there is only one default style for strings, but as the Perl programming language operates with two types of strings, you can enhance the highlighting by configuring those to be slightly different. All available default styles will be explained later.
Під час створення всіх стилів визначення синтаксису використовують один з типових стилів. У деякій частині визначень синтаксису використовуються додаткові стилі, яких немає серед типових, отже, якщо ви часто працюєте з файлами у таких форматах, доцільно відкрити діалогове вікно налаштування, щоб подивитися, чи не використовуються для певних елементів однакові стилі. Наприклад, існує лише один типовий стиль для рядків, але, оскільки у мові програмування Perl існує два типи рядків, ви можете налаштувати підсвічування для кожного з цих типів трохи по- різному. Огляд всіх можливих типових стилів буде наведено далі.
The Highlight Definition & XML; Format
Формат & XML; визначення підсвічування
This section is an overview of the Highlight Definition & XML; format. Based on a small example it will describe the main components and their meaning and usage. The next section will go into detail with the highlight detection rules.
Цей розділ присвячено огляду формату & XML; визначення підсвічування. За допомогою невеличкого прикладу у розділі описано основні компоненти, їх призначення і використання. Далі ми докладно розглянемо правила визначення підсвічування синтаксису.
The formal definition, aka the DTD is stored in the file language. dtd which should be installed on your system in the folder $KDEDIR / share/ apps/ katepart/ syntax.
Формальне визначення або DTD зберігається у файлі з назвою language. dtd, який у вашій системі має бути встановлено до теки $KDEDIR / share/ apps/ katepart/ syntax.
Main sections of & kate; Highlight Definition files
Головні розділи файлів визначення підсвічування & kate;
A highlighting file contains a header that sets the XML version and the doctype:
Файл підсвічування містить заголовок, у якому встановлюється версія і тип документа XML:
The root of the definition file is the element language. Available attributes are:
Кореневим елементом файла визначення є елемент language. Серед можливих атрибутів:
Required attributes:
Обов’ язкові атрибути:
name sets the name of the language. It appears in the menus and dialogs afterwards.
name визначає назву мови. Цю назву буде згодом показано у пунктах меню та діалогових вікнах програми.
section specifies the category.
section визначає категорію.
extensions defines file extensions, like & quot; *. cpp; *. hquot;
extensions визначає суфікси назв файлів, на зразок & quot; *. cpp; *. hquot;
Optional attributes:
Необов’ язкові атрибути:
mimetype associates files & MIME; Type based.
mimetype прив’ язує файли на основі типу & MIME;.
version specifies the current version of the definition file.
version визначає поточну версію файла визначень.
kateversion specifies the latest supported & kate; version.
kateversion визначає найостаннішу з підтримуваних версій & kate;.
casesensitive defines, whether the keywords are case sensitive or not.
casesensitive визначає, чи розрізнятимуться ключові слова за регістром символів, чи ні.
priority is necessary if another highlight definition file uses the same extensions. The higher priority will win.
priority потрібно вказати, якщо у іншому файлі визначення підсвічування використовуються ті самі суфікси файлів. Для підсвічування буде використано правила з вищим пріоритетом.
author contains the name of the author and his email-address.
author повинен містити ім’ я і адресу електронної пошти автора.
license contains the license, usually LGPL, Artistic, GPL and others.
license повинен містити назву ліцензії файла підсвічування, зазвичай, LGPL, Artistic, GPL тощо.
hidden defines, whether the name should appear in & kate; 's menus.
hidden визначає, чи має бути показано назву підсвічування у меню & kate;.
So the next line may look like this:
Отже, наступний рядок має виглядати десь так:
Next comes the highlighting element, which contains the optional element list and the required elements contexts and itemDatas.
Наступним елементом є highlighting, у цьому елементі міститься необов’ язковий елемент list і обов’ язкові елементи contexts і itemDatas.
list elements contain a list of keywords. In this case the keywords are class and const. You can add as many lists as you need.
Елементи list містять список ключових слів. У цьому випадку ключовими словами будуть class і const. У разі потреби ви можете додати довільну кількість списків.
The contexts element contains all contexts. The first context is by default the start of the highlighting. There are two rules in the context Normal Text, which match the list of keywords with the name somename and a rule that detects a quote and switches the context to string. To learn more about rules read the next chapter.
У елементі contexts містяться всі контексти. Типово, першим контекстом є початок діапазону підсвічування. У контексті Normal Text існує два правила: перше визначає список ключових слів з назвою somename і правило для визначення лапок і перемикання контексту на контекст string. Докладніше правила буде розглянуто у наступній главі.
The third part is the itemDatas element. It contains all color and font styles needed by the contexts and rules. In this example, the itemData Normal Text, String and Keyword are used.
Третя частина складається з елемента itemDatas. У цьому елементі містяться всі кольори і гарнітури шрифтів, потрібні для контекстів і правил. У нашому випадку було використано itemData Normal Text, String і Keyword.
& lt; highlightinggt; & lt; list name=quot; somenamequot; gt; & lt; itemgt; class & lt; /itemgt; & lt; itemgt; const & lt; /itemgt; & lt; /listgt; & lt; contextsgt; & lt; context attribute=quot; Normal Textquot; lineEndContext=quot; #popquot; name=quot; Normal Textquot; & gt; & lt; keyword attribute=quot; Keywordquot; context=quot; #stayquot; String=quot; somenamequot; / gt; & lt; DetectChar attribute=quot; Stringquot; context=quot; stringquot; char=quot; amp; quot; quot; / gt; & lt; /contextgt; & lt; context attribute=quot; Stringquot; lineEndContext=quot; #stayquot; name=quot; stringquot; & gt; & lt; DetectChar attribute=quot; Stringquot; context=quot; #popquot; char=quot; amp; quot; quot; / gt; & lt; /contextgt; & lt; /contextsgt; & lt; itemDatasgt; & lt; itemData name=quot; Normal Textquot; defStyleNum=quot; dsNormalquot; / gt; & lt; itemData name=quot; Keywordquot; defStyleNum=quot; dsKeywordquot; / gt; & lt; itemData name=quot; Stringquot; defStyleNum=quot; dsStringquot; / gt; & lt; /itemDatasgt; & lt; /highlightinggt;
& lt; highlightinggt; & lt; list name=quot; somenamequot; gt; & lt; itemgt; class & lt; / itemgt; & lt; itemgt; const & lt; / itemgt; & lt; / listgt; & lt; contextsgt; & lt; context attribute=quot; Normal Textquot; lineEndContext=quot; # popquot; name=quot; Normal Textquot; & gt; & lt; keyword attribute=quot; Keywordquot; context=quot; # stayquot; String=quot; somenamequot; / gt; & lt; DetectChar attribute=quot; Stringquot; context=quot; stringquot; char=quot; amp; quot; quot; / gt; & lt; / contextgt; & lt; context attribute=quot; Stringquot; lineEndContext=quot; # stayquot; name=quot; stringquot; & gt; & lt; DetectChar attribute=quot; Stringquot; context=quot; # popquot; char=quot; amp; quot; quot; / gt; & lt; / contextgt; & lt; / contextsgt; & lt; itemDatasgt; & lt; itemData name=quot; Normal Textquot; defStyleNum=quot; dsNormalquot; / gt; & lt; itemData name=quot; Keywordquot; defStyleNum=quot; dsKeywordquot; / gt; & lt; itemData name=quot; Stringquot; defStyleNum=quot; dsStringquot; / gt; & lt; / itemDatasgt; & lt; / highlightinggt;
The last part of a highlight definition is the optional general section. It may contain information about keywords, code folding, comments and indentation.
Останньою частиною визначення підсвічування є необов’ язковий розділ general. У ньому можуть міститися відомості щодо ключових слів, згортання коду, коментарів і відступів.
The comment section defines with what string a single line comment is introduced. You also can define a multiline comments using multiLine with the additional attribute end. This is used if the user presses the corresponding shortcut for comment/ uncomment.
У розділі comment визначається послідовність символів, за допомогою якої можна додати однорядковий коментар. Крім того, ви можете визначати багаторядкові коментарі за допомогою елемента multiLine з додатковим атрибутом end. Ці визначення буде використано за виконання користувачем дій закоментувати/ розкоментувати.
The keywords section defines whether keyword lists are casesensitive or not. Other attributes will be explained later.
У розділі keywords визначається те, чи слід враховувати регістр символів у списку ключових слів, чи ні. Інші атрибути буде описано далі за текстом.
The Sections in Detail
Докладно про розділи
This part will describe all available attributes for contexts, itemDatas, keywords, comments, code folding and indentation.
У цій частині описано всі доступні атрибути для контекстів, itemDatas, ключових слів, коментарів, згортання коду і відступів.
The element context belongs into the group contexts. A context itself defines context specific rules like what should happen if the highlight system reaches the end of a line. Available attributes are:
Елемент context належить до групи contexts. Цей елемент визначає специфічні для контексту правила, на зразок того, що має трапитися, якщо система підсвічування досягне кінця рядка. Серед можливих атрибутів:
name the context name. Rules will use this name to specify the context to switch to if the rule matches.
name — назва контексту. За допомогою цієї назви правила визначатимуть контекст, на який слід перемкнутися у випадку виявлення відповідника правила.
lineEndContext defines the context the highlight system switches to if it reaches the end of a line. This may either be a name of another context, #stay to not switch the context (eg;. do nothing) or #pop which will cause to leave this context. It is possible to use for example #pop#pop#pop to pop three times.
lineEndContext визначає контекст, на який має перемкнутися система підсвічування у разі досягнення кінця рядка. Значенням може бути назва іншого контексту, # stay означатиме, що контекст не слід перемикати (тобто нічого не робити) or # pop означатиме, що слід вийти з контексту. Наприклад, можна скористатися значенням # pop# pop# pop для того, щоб система після виходу піднялася на два контексти вище.
lineBeginContext defines the context if a begin of a line is encountered. Default: #stay.
lineBeginContext визначає контекст, якщо буде знайдено початок рядка. Типове значення: # stay.
fallthrough defines if the highlight system switches to the context specified in fallthroughContext if no rule matches. Default: false.
fallthrough вказує, чи слід системі підсвічування перемикатися на контекст вказаний параметром fallthroughContext, якщо текст не відповідає жодному з правил. Типове значення: false.
fallthroughContext specifies the next context if no rule matches.
fallthroughContext визначає наступний контекст, якщо не буде знайдено відповідника до правил.
dynamic if true, the context remembers strings/ placeholders saved by dynamic rules. This is needed for HERE documents for example. Default: false.
dynamic: якщо має значення true, контекст запам’ ятовуватиме рядки або заповнювачі, збережені за допомогою динамічних правил. Це потрібно, наприклад, для документів HERE. Типове значення: false.
The element itemData is in the group itemDatas. It defines the font style and colors. So it is possible to define your own styles and colors, however we recommend to stick to the default styles if possible so that the user will always see the same colors used in different languages. Though, sometimes there is no other way and it is necessary to change color and font attributes. The attributes name and defStyleNum are required, the other optional. Available attributes are:
Елемент itemData знаходиться у групі itemDatas. За його допомогою визначаються тип шрифту і кольори. Таким чином можна визначати власні типи шрифтів і кольори, але ми рекомендуємо, за можливості, використовувати лише типові стилі так, щоб користувач завжди бачив однакові кольори у файлах різних форматів. Все ж іноді іншого способу не існує, і вам доведеться змінити колір і атрибути шрифту. Обов’ язковими атрибутами є name і defStyleNum, інші атрибути є необов’ язковими. Серед можливих атрибутів:
name sets the name of the itemData. Contexts and rules will use this name in their attribute attribute to reference an itemData.
name визначає назву itemData. Цю назву буде використано у контекстах і правилах для посилання на itemData у атрибуті attribute.
defStyleNum defines which default style to use. Available default styles are explained in detail later.
defStyleNum визначає, який тип слід використовувати типово. Докладний перелік можливих типових стилів ви знайдете нижче.
color defines a color. Valid formats are '#rrggbb 'or '#rgb'.
color визначає колір. Можливі формати: '# rrggbb' і '# rgb'.
selColor defines the selection color.
selColor визначає колір виділеного тексту.
italic if true, the text will be italic.
italic, якщо має значення true, шрифт буде курсивним.
bold if true, the text will be bold.
bold, якщо має значення true, шрифт тексту буде напівжирним.
underline if true, the text will be underlined.
underline: якщо цей атрибут має значення true, текст буде підкреслено.
strikeout if true, the text will be stroked out.
strikeout, якщо цей параметр має значення true, текст буде перекреслено.
The element keywords in the group general defines keyword properties. Available attributes are:
Елемент keywords у групі general визначає властивості ключових слів. Серед можливих атрибутів:
casesensitive may be true or false. If true, all keywords are matched casesensitive
casesensitive, може приймати значення true або false. Якщо має значення true, пошук ключових слів відбуватиметься з врахуванням регістру символів.
weakDeliminator is a list of characters that do not act as word delimiters. For example the dot '.' is a word delimiter. Assume a keyword in a list contains a dot, it will only match if you specify the dot as a weak delimiter.
weakDeliminator — це список символів, які не є символами відокремлення слів. Наприклад, крапка «. » є символом відокремлення слів. Припустімо тепер, що ключове слово у list містить крапку, тоді це слово буде задіяно, лише якщо ви вкажете крапку серед значень цього аргументу.
additionalDeliminator defines additional delimiters.
additionalDeliminator визначає додаткові символи розмітки.
wordWrapDeliminator defines characters after which a line wrap may occur.
wordWrapDeliminator визначає символи, після яких можна розривати рядок.
Default delimiters and word wrap delimiters are the characters. ():! +, -lt; =gt; %amp; */;? []^{_BAR_}~\\, space ('') and tabulator ('\\t ').
Типовими символами розмітки і символами відокремлення слів є символи. ():! +, - lt; =gt;% amp; * /;? [] ^{ _BAR_} ~\\, пробіл ('') і символ табуляції ('\\ t').
The element comment in the group comments defines comment properties which are used for Tools Comment and Tools Uncomment. Available attributes are:
Елемент comment у групі comments визначає властивості коментаря, які буде використано для дій за пунктами меню Інструменти Закоментувати і Інструменти Розкоментувати. Серед доступних атрибутів: