1
<chapter id="advanced-editing-tools">
5
>&Anders.Lund; &Anders.Lund.mail;</author>
7
>&Dominik.Haumann; &Dominik.Haumann.mail;</author>
8
<othercredit role="translator"
16
>yurchor@ukr.net</email
20
>Переклад українською</contrib
26
>Додаткові інструменти редагування</title>
28
<sect1 id="advanced-editing-tools-comment">
31
>Додавання/Вилучення позначок коментаря</title>
34
>За допомогою пунктів «Закоментувати» і «Розкоментувати» меню <guimenu
36
> ви зможете додавати або вилучати позначки коментарів до позначеного фрагмента або поточного рядка (у разі, якщо нічого не позначено), якщо коментарі підтримуються форматом файла, який ви редагуєте.</para>
39
>Правила коментування визначаються у файлі визначень синтаксису, отже, якщо не використано ніяких правил підсвічування синтаксису, коментування/вилучення коментарів буде неможливим. </para>
42
>У деяких форматах файлів можливе коментування лише окремих рядків, у деяких форматах передбачено коментування одразу декількох рядків парою позначок коментаря, а у деяких форматах можливі обидва варіанти. Якщо коментування парою позначок не передбачено форматом файла, коментування останнього рядка за неповного його позначення у багаторядковому фрагменті тексту буде неможливим.</para>
45
>Якщо форматом файла передбачено позначки для коментування окремого рядка, використанню цих позначок слід надавати перевагу, оскільки за такого варіанта ви уникнете проблем з вкладеними коментарями.</para>
48
>Якщо ви вилучаєте позначки коментарів, вам не слід позначати фрагментів тексту, які не було закоментовано. Під час вилучення коментування парою позначок з позначеного фрагмента тексту всі пробільні рядки поза позначками коментарів у позначеному фрагменті буде проігноровано.</para>
53
>закоментувати</primary
55
> Щоб додати позначки коментарів, скористайтеся пунктом меню <menuchoice
59
>Закоментувати</guimenuitem
61
> або відповідною комбінацією клавіш, типовою комбінацією є <keycombo action="simul"
70
>розкоментувати</primary
72
> Щоб вилучити позначки коментарів, скористайтеся пунктом меню <menuchoice
76
>Розкоментувати</guimenuitem
78
> або відповідною комбінацією клавіш, типовою комбінацією є <keycombo action="simul"
86
<sect1 id="advanced-editing-tools-commandline">
88
>Командний рядок компонента редактора</title>
91
>У компонент редактора &kappname; вбудовано інструмент для роботи з командним рядком, за допомогою якого ви зможете виконувати різноманітні дії за мінімального графічного інтерфейсу. Командний рядок — це текстова панель у нижній частині вікна редактора, щоб увімкнути показ цієї панелі скористайтеся пунктом меню <menuchoice
95
>Перемкнутися до командного рядка</guimenuitem
97
> або скористайтеся клавіатурним скороченням (типовим клавіатурним скороченням є <keycombo action="simul"
101
>). У редакторі передбачено набір команд, документацію з яких наведено нижче, та додаткові команди, за допомогою яких можна керувати додатками до програми.</para>
104
>Щоб виконати команду, введіть цю команду до командного рядка і натисніть клавішу &Enter;. За командним рядком ви зможете визначити, чи було виконано команду, у ньому ж можна переглянути повідомлення, яке могло бути виведено у відповідь на команду. Якщо ви вводили команду за після натискання клавіші <keycap
106
>, за декілька секунд панель командного рядка буде приховано. Щоб витерти виведене командою повідомлення і ввести нову команду, натисніть клавішу <keycap
111
>У командний рядок вбудовано довідкову систему. Щоб розпочати роботу з довідкою, введіть команду <command
113
>. Щоб переглянути список можливих команд, введіть команду <command
115
>. Щоб переглянути довідку з окремої команди, виконайте команду <command
117
>назва_команди</replaceable
122
>Під час роботи з командним рядком ви можете скористатися вбудованим журналом команд, таким чином ви можете зменшити час доступу до команд, які вже раніше було введено. Для навігації журналом команд скористайтеся клавішами <keycap
123
>Стрілка вгору</keycap
125
>Стрілка вниз</keycap
126
>. Під час показу команд з журналу буде позначено параметри команди, — це спростить вам перезапис параметрів команди.</para>
128
<sect2 id="advanced-editing-tools-commandline-commands">
130
>Стандартні команди командного рядка</title>
134
>Типи аргументів</title>
141
>Цей тип використовується для команд, які вмикають або вимикаю певні налаштування. Можливими значеннями таких параметрів є <userinput
171
>Рядок, обмежений одинарними лапками (') або подвійними лапками ("), якщо у ньому містяться пробіли.</para
179
<sect3 id="advanced-editing-tools-commandline-commands-configure">
181
>Команди налаштування редактора</title>
184
>Ці команди стосуються компонента редактора, за їх допомогою можна налаштовувати лише параметри показу поточного документа. Цими командами зручно користатися, якщо вам потрібно використати параметри, наприклад параметри відступів, відмінні від типових параметрів. </para>
192
>set-tab-width</command
199
>Встановлює ширину табуляції у значення <userinput
209
>set-indent-width</command
216
>Встановлює відступ у значення кількості пробілів, визначене параметром <userinput
218
>. Використовується, лише якщо увімкнено відступи з пробілів.</para
226
>set-word-wrap-column</command
228
>INTEGER довжина</arg
233
>Встановлює для параметра максимальної довжини рядка для примусового перенесення значення <userinput
235
>. Цей параметр використовується, якщо увімкнено автоматичне розбиття тексту на рядки.</para
243
>set-icon-border</command
245
>BOOLEAN вмикання</arg
250
>Встановлює видимість бічної смужки піктограм.</para
258
>set-folding-markers</command
260
>BOOLEAN вмикання</arg
265
>Встановлює значення видимості позначок панелі згортання.</para
273
>set-line-numbers</command
275
>BOOLEAN вмикання</arg
280
>Встановлює значення видимості панелі номерів рядків.</para
288
>set-replace-tabs</command
290
>BOOLEAN вмикання</arg
295
>Якщо має значення «true», введені вами знаки табуляції буде замінено пробілами. </para
303
>set-remove-trailing-space</command
305
>BOOLEAN вмикання</arg
310
>Якщо цей параметр буде увімкнено, після переведення курсора на інших рядок пробіли наприкінці поточного рядка вилучатимуться.</para
318
>set-show-tabs</command
320
>BOOLEAN вмикання</arg
325
>Якщо буде увімкнено цей параметр, символи табуляції і пробіли наприкінці рядка буде показано у вигляді маленьких крапок.</para
333
>set-show-indent</command
335
>BOOLEAN вмикання</arg
340
>Якщо буде увімкнено цей параметр, відступи буде показано вертикальною крапчастою лінією.</para
348
>set-indent-spaces</command
350
>BOOLEAN вмикання</arg
355
>Якщо буде увімкнено цей параметр, редактор робитиме відступ на <option
356
>indent-width</option
357
> пробілів, замість символу табуляції, під час переходу на наступний рівень відступу.</para
365
>set-mixed-indent</command
367
>BOOLEAN вмикання</arg
372
>Якщо буде увімкнено цей параметр, &kappname; використовуватиме суміш з символів табуляції і пробілів для додавання відступів. Ширина кожного з рівнів відступу визначатиметься значенням параметра <option
373
>indent-width</option
374
>, загальний же відступ буде оптимізовано так, щоб у ньому використовувалася максимальна кількість символів табуляції.</para>
376
>Після виконання цієї команди буде увімкнено створення відступів пробілами, якщо ширину відступу не було вказано, буде встановлено значення ширини відступу у половину значення параметра документа <option
378
> на час виконання команди.</para
386
>set-word-wrap</command
388
>BOOLEAN вмикання</arg
393
>Встановлює значення для динамічного перенесення слів у <userinput
395
> (true або false)</para
403
>set-replace-tabs-save</command
405
>BOOLEAN вмикання</arg
410
>Якщо увімкнути цей параметр, під час збереження документа символи табуляції буде замінено на пробіли.</para
418
>set-remove-trailing-space-save</command
420
>BOOLEAN вмикання</arg
425
>Якщо увімкнути цей параметр, під час збереження документа пробіли наприкінці рядків документа будуть вилучатися.</para
433
>set-indent-mode</command
440
>Встановлює режим автоматичного встановлення відступів у значення <userinput
442
>. Якщо програмі не вдасться розпізнати параметр <userinput
444
>, буде встановлено режим 'none'. Коректними значеннями режиму є «none», «normal», «cstyle», «haskell», «lilypond», «lisp», «python», «ruby» і «xml».</para
452
>set-auto-ident</command
459
>Увімкнути або вимкнути автоматичне встановлення відступів.</para
467
>set-highlight</command
469
>STRING підсвічування</arg
474
>Визначає систему підсвічування синтаксису для поточного документа. Параметром команди має бути коректна назва підсвічування у тому вигляді, у якому ця система фігурує у меню <menuchoice
476
>Інструменти</guimenu
478
>Підсвічування</guisubmenu
480
>. У цій команді передбачено автоматичне доповнення параметра за списком.</para
488
>reload-scripts</command
493
>Перезавантажити всі <link linkend="advanced-editing-tools-scripting"
494
>скрипти JavaScript</link
495
>, використані Kate, зокрема скрипти встановлення відступів та скрипти командного рядка.</para
510
>Вибрати схему типів файлів для поточного документа. </para
520
>STRING початкова</arg
522
>STRING відображена</arg
527
>Відобразити послідовність символів <userinput
528
>початкова</userinput
529
> на послідовність <userinput
530
>відображена</userinput
539
<sect3 id="advanced-editing-tools-commandline-commands-edit">
541
>Команди редагування</title>
544
>Наступні команди змінюють вміст поточного документа.</para>
556
>Додає відступ у позначені рядки або поточний рядок.</para
569
>Вилучає початковий відступ з позначених рядків або поточного рядка.</para
577
>cleanindent</command
582
>Вилучає відступи для позначених рядків або поточного рядка відповідно до параметрів відступів поточного документа. </para
595
>Додає позначки коментаря, які роблять позначений фрагмент тексту, позначені рядки або поточний рядок коментарями, відповідно до формату тексту, який визначено у параметрах підсвічування синтаксису поточного документа.</para
608
>Вилучає позначки коментаря, які роблять позначений фрагмент тексту, позначені рядки або поточний рядок коментарями, відповідно до формату тексту, який визначено у параметрах підсвічування синтаксису поточного документа.</para
621
>Вилучає поточний рядок.</para
633
>STRING замінник</arg
638
>Замінює текст, що відповідає <userinput
640
>, на текст, вказаний у <userinput
641
>заміннику</userinput
642
>. Якщо вам потрібно включити пробіл у <userinput
644
>, вам слід взяти як <userinput
648
> у одинарні або подвійні лапки. Якщо у команді не буде лапок, перше зі слів-параметрів вважатиметься <userinput
650
>, а решта — <userinput
651
>замінником</userinput
652
>. Якщо параметр <userinput
654
> буде порожнім, всі рядки, які відповідають <userinput
656
> буде вилучено з тексту.</para>
658
>Ви можете вказати прапорці налаштування пошуку за допомогою додавання двокрапки, за якою слід вказати одну або декілька літер, кожна з яких відповідатиме за налаштування. Команда викладатиме так: <userinput
659
>replace:параметри шаблон замінник</userinput
660
>. Можливі параметри: <variablelist>
680
>Шукати від позиції курсора.</para
691
>Шукати лише у позначеному фрагменті.</para
702
>Пошук за формальним виразом. Якщо встановлено цей прапорець, ви зможете використовувати параметр <userinput
704
>, де N — номер підрядка у рядку «замінник».</para
715
>Виконати пошук з врахуванням регістру.</para
726
>Запитувати про дозвіл на заміну наступного елемента.</para
737
>Шукати лише цілі слова.</para
758
>Вставляє дату/час у форматі, визначеному параметром <userinput
760
>, або у форматі <quote
761
>yyyy-MM-dd hh:mm:ss</quote
762
>, якщо рядок формату не буде вказано. Під час обробки рядка <userinput
764
> буде використано такі перетворення: <informaltable
773
>Номер дня без початкового нуля (1-31).</entry
781
>Номер дня з початковим нулем (01-31).</entry
789
>Скорочена локалізована назва дня тижня (наприклад «пн» або «нд»).</entry
797
>Довга локалізована назва дня (наприклад «понеділок» або «неділя»).</entry
805
>Номер місяця без початкового нуля (1-12).</entry
813
>Номер місяця з початковим нулем (01-12).</entry
821
>Повна локалізована назва місяця (наприклад, «січень» або «грудень»).</entry
829
>Скорочена локалізована назва місяця (наприклад «січ» або «гру»).</entry
837
>Рік як двоцифрове значення (00-99).</entry
845
>Рік як чотирицифрове значення (1752-8000).</entry
853
>Години без початкового нуля (0..23 або 1..12 з показом до опівдня/після опівдня).</entry
861
>Години з початковим нулем (00..23 або 01..12 з показом до опівдня/після опівдня).</entry
869
>Хвилини без початкового нуля (0..59).</entry
877
>Хвилини з початковим нулем (00..59).</entry
885
>Секунди без початкового нуля (0..59).</entry
893
>Секунди з початковим нулем (00..59).</entry
901
>Мілісекунди без початкових нулів (0..999).</entry
909
>Мілісекунди з початковими нулями (000..999).</entry
917
>Використовувати показ у форматі AM/PM (до опівдня/після опівдня). AP буде замінено на рядок «AM» або рядок «PM».</entry
925
>Використовувати показ у форматі am/pm (до опівдня/після опівдня). ap буде замінено на рядок «am» або рядок «pm».</entry
941
>STRING ідентифікатор</arg
946
>За допомогою цієї команди можна вводити символи за їх числовими ідентифікаторами у десятковій, вісімковій або шістнадцятковій формі. Щоб скористатися нею, відкрийте діалогове вікно редагування команди і введіть команду <userinput
947
>char: [число]</userinput
948
> у поле для введення, а потім натисніть кнопку <guibutton
954
>Приклади команди <command
963
>Вивід: <computeroutput
964
>ê</computeroutput
968
>char:0x1234</userinput
971
>Вивід: <computeroutput
972
>ሴ</computeroutput
983
>заміна, sed-стиль</primary>
985
>пошук, sed-стиль</secondary
995
>За допомогою цієї команди можна виконати дію з пошуку або заміни у стилі sed у поточному рядку або у всьому файлі (<command
1000
>Якщо коротко, у тексті буде виконано пошук за <emphasis
1001
>шаблоном пошуку</emphasis
1002
>, формальним виразом між першою і другою навскісними рисками, якщо буде знайдено відповідний фрагмент тексту, його буде замінено на вираз між середньою і останньою навскісними рисками у рядку. За допомогою круглих дужок можна створювати <emphasis
1003
>зворотні посилання</emphasis
1004
>: команда запам’ятає частину виразу, яка відповідає рядку між дужками і використає рядки, які будуть у пам’яті для шаблону заміни, — посилання на ці рядки можна вказати як <userinput
1006
> для першого набору у дужках, <userinput
1008
> для другого тощо.</para>
1011
>Щоб знайти символ <literal
1013
> або символ <literal
1015
>, вам слід <emphasis
1016
>екранувати</emphasis
1017
> ці символи за допомогою зворотної навскісної риски: <userinput
1022
>Якщо ви додасте ключ <userinput
1024
> в кінець виразу, під час пошуку буде враховано регістр символів. Якщо в кінець виразу додати <userinput
1026
>, буде замінено всі рядки, які відповідають шаблону, у іншому випадку буде замінено лише перший з цих рядків.</para>
1031
>Заміна тексту у поточному рядку</title>
1034
>Припустімо, компілятор, яким ви збирали вашу програму, повідомив вам про те, що клас <classname
1036
>, який згадується у рядку 3902 коду вашої програми не визначено.</para>
1039
>Ви подумаєте: «Оце тобі, то це ж має бути мій клас <classname
1041
>». Ви переходите до рядка 3902 і, замість спроб знайти потрібне слово у тексті, відкриваєте діалогове вікно редагування команди, вводите у нього <userinput
1042
>s/myclass/MyClass/i</userinput
1043
>, натискаєте кнопку <guibutton
1045
>, зберігаєте файл і компілюєте його ще раз, — все, помилки немає.</para>
1051
>Заміна тексту у всьому файлі</title>
1054
>Припустімо тепер, що у вас є файл, у якому ви згадуєте <quote
1055
>пані Іванченко</quote
1056
> декілька разів, і тут вам стає відомо, що ця особа нещодавно вийшла заміж за <quote
1057
>пана Петренка</quote
1058
>. Ну і, звісно ж, вам потрібно тепер замінити всі рядки з <quote
1059
>пані Іванченко</quote
1061
>пані Петренко</quote
1065
>Відкрийте вікно командного рядка і введіть туди команду <userinput
1066
>%s/пані Іванченко/пані Петренко/</userinput
1067
>, а потім натисніть клавішу &Enter;, — решту зробить програма.</para>
1073
>Складніший приклад</title>
1076
>У цьому прикладі ми познайомилися з використанням <emphasis
1077
>зворотніх посилань</emphasis
1078
>, а також <emphasis
1079
>класу символів</emphasis
1080
> (якщо вам не знайомі ці терміни, будь ласка, зверніться до відповідної документації, посилання на яку ви зможете знайти далі за текстом).</para>
1083
>Припустімо, що у вас є такий рядок: <programlisting
1084
>void MyClass::DoStringOps( String &foo, String &bar, String *p, int &a, int &b )</programlisting>
1087
>Тепер вам здається, що цей код виглядає кострубато: ви вирішили скористатися ключовим словом <constant
1089
> для всіх параметрів <quote
1091
>, у яких назві аргументу передує оператор &. Ви також бажаєте вилучити зайві пробіли так, щоб між будь-якими двома словами був лише один символ пробілу.</para>
1094
>Відкрийте діалогове вікно редагування команди і введіть таку команду: <userinput
1095
>s/\s+(\w+)\s+(&)/ const \1 \2/g</userinput
1096
>. Натисніть кнопку <guibutton
1098
>. Літера <userinput
1100
> наприкінці виразу наказує програмі перебудовувати формальний вираз для кожного зі знайдених елементів, щоб зберегти <emphasis
1101
>зворотні посилання</emphasis
1105
>Вивід: <computeroutput
1106
>void MyClass::DoStringOps( const String &foo, const String &bar String *p, const int &a, const int &b )</computeroutput
1110
>Справу зроблено! Що ж сталося? Гаразд, було виконано пошук інтервалу з пробілів (<literal
1112
>), за яким слідує один або декілька символів абетки (<literal
1114
>), за якими слідують ще пробіли (<literal
1116
>), за якими слідує символ амперсанда. У процесі пошуку було збережено ланцюжок символів абетки і амперсанд для подальшого використання під час операції з заміни. Після цього було виконано заміну знайденого відповідника нашого рядка на рядок з пробілом, за яким слідує слово <quote
1118
>, за яким слідує пробіл, за яким слідує наш ланцюжок символів абетки (<literal
1120
>), за яким слідує один пробіл, за яким слідує збережений нами символ амперсанда (<literal
1125
>Крім того, у деяких випадках ланцюжок символів абетки міг мати значення <quote
1129
>, цього було досягнуто використанням класу <literal
1131
> і лічильника <literal
1150
>Впорядковує позначений фрагмент тексту або весь текст у документі.</para
1163
>Впорядковує позначені рядки або увесь документ у природному порядку.</para>
1169
> порівняно з <command
1174
>sort(a10, a1, a2)</userinput
1175
> виведе <computeroutput
1176
>a1, a10, a2</computeroutput
1180
>natsort(a10, a1, a2)</command
1181
> виведе <computeroutput
1182
>a1, a2, a10</computeroutput
1192
>moveLinesDown</command
1197
>Пересунути позначені рядки нижче.</para
1205
>moveLinesUp</command
1210
>Пересунути позначені рядки вище.</para
1223
>Вилучити рядки-дублікати з позначеного фрагмента тексту або всього документа.</para
1236
>Вилучити кінцевий пробіл з позначеного фрагмента тексту або всього документа.</para
1249
>Вилучити початковий пробіл з позначеного фрагмента тексту або всього документа.</para
1259
>STRING роздільник</arg
1264
>Об’єднати позначені рядки або рядки у всьому документі. Додатково можна визначити роздільник, наприклад: <userinput
1281
>Вилучити всі пробіли з позначеного фрагмента тексту або всього документа.</para
1294
>Скасувати перенесення рядків у позначеному фрагменті тексту або всьому документі.</para
1309
>Викликати вказану як аргумент функцію JavaScript для обробки списку (позначених) рядків і замінити їх повернутим значенням виклику.</para>
1313
>Об’єднати позначені рядки</title>
1318
> 'function(lines){return lines.join(", ")}' </userinput
1322
>Або коротше:</para>
1327
> 'lines.join(", ")'</userinput
1347
>Викликати вказану як аргумент функцію JavaScript для обробки списку (позначених) рядків і вилучити ті з них, для яких буде повернуто false.</para>
1351
>Вилучити порожні рядки</title>
1356
> 'function(1){return 1.length
1361
>Або коротше:</para>
1385
>Викликати вказану як аргумент функцію JavaScript для обробки списку (позначених) рядків і замінити рядок значенням, яке буде повернуто у відповідь на виклик.</para>
1389
>Вилучити порожні рядки</title>
1394
> 'function(line){return line.replace(/^s+/,"");}' </userinput
1398
>Або коротше:</para>
1403
> 'line.replace(/^s+/,"")'</userinput
1414
>duplicateLinesUp</command
1419
>Здублювати позначені рядки над поточним позначеним фрагментом.</para>
1427
>duplicateLinesDown</command
1432
>Здублювати позначені рядки під поточним позначеним фрагментом.</para>
1440
<sect3 id="advanced-editing-tools-commandline-commands-navigation">
1442
>Команди навігації</title>
1457
>За допомогою цієї команди можна перейти до вказаного рядка.</para
1472
>Знайти у документі рядки, що відповідають формальному виразу <userinput
1474
>. Щоб дізнатися більше, зверніться до розділу <xref linkend="regular-expressions"/>.</para>
1489
>За допомогою цієї команди можна перейти до першого відповідника рядка <userinput
1491
> у тексті, відповідно до налаштувань. Перейти до наступних відповідників можна за допомогою пункту меню <menuchoice
1495
>Знайти далі</guimenuitem
1497
> (типовим клавіатурним скороченням є <keycap
1501
>Команду пошуку можна налаштувати додаванням двокрапки, за якою можна вказати один або декілька параметрів, у формі <userinput
1502
>find:параметри шаблон</userinput
1503
>. Серед можливих параметрів:</para>
1525
>Шукати від позиції курсора.</para
1536
>Шукати лише у позначеному фрагменті.</para
1547
>Пошук за формальним виразом. Якщо встановлено цей прапорець, ви зможете використовувати параметр <userinput
1549
>, де N — номер підрядка у рядку «замінник».</para
1560
>Виконати пошук з врахуванням регістру.</para
1571
>Шукати лише цілі слова.</para
1591
>За допомогою цієї команди можна виконати <quote
1592
>інтерактивний</quote
1593
> пошук. Ви можете налаштувати пошук додаванням одного або декількох параметрів після символу двокрапки, ось так: <userinput
1594
>ifind:параметри шаблон</userinput
1595
>. Серед можливих параметрів: <variablelist>
1614
>Виконати пошук за вказаним формальним виразом.</para
1625
>Виконати пошук з врахуванням регістру.</para
1636
>Шукати від позиції курсора.</para
1650
<sect3 id="advanced-editing-tools-commandline-commands-basic">
1652
>Команди базового керування редактором (залежать від використаного у програмі компонента редактора)</title>
1665
>Зберегти поточний документ.</para
1678
>Зберегти всі поточні відкриті документи.</para
1691
>Закрити поточний документ.</para
1704
>Закрити всі відкриті документи.</para
1717
>Зберегти і закрити поточний документ.</para
1730
>Зберегти і закрити всі поточні відкриті документи.</para
1743
>Зберегти і закрити поточний документ, лише якщо його було змінено. </para
1756
>Зберегти і закрити всі поточні відкриті документ, лише якщо до них було внесено зміни.</para
1769
>Перейти до попереднього документа у списку документів. </para
1782
>Перейти до наступного документа у списку документів. </para
1795
>Відкрити новий документ на новій панелі, створеній горизонтальним поділом поточної панелі редагування. </para
1808
>Відкрити новий документ на новій панелі, створеній вертикальним поділом поточної панелі редагування. </para
1821
>Перезавантажити поточний документ, якщо його було змінено на диску. </para
1834
>Редагувати новий документ. </para
1847
>Відкрити діалогове вікно друку, за допомогою якого ви зможете надрукувати поточний документ. </para
1860
<sect1 id="advanced-editing-tools-code-folding">
1862
>Використання обгортки коду</title>
1865
>За допомогою згортання коду ви можете приховувати частини документа у вікні редактора: так легше працювати з великими документами. У &kappname; діапазони рядків, придатні для згортання, визначаються правилами підсвічування синтаксису, тому згортання можливе не для всіх форматів файлів, — типово, згортання працює у коді програм, розмітки XML та подібних форматів. Під час редагування коду визначення підсвічування також можна вручну визначати діапазони згортання, зазвичай, такі діапазони визначаються за допомогою ключових слів <userinput
1872
>Щоб скористатися можливостями згортання, слід задіяти позначки згортання за допомогою пункту меню <menuchoice
1876
>Показувати маркери згортання</guimenuitem
1878
>, якщо цих позначок ще не показано у вікні редактора. На панелі позначок згортання з лівого боку екрана буде показано у графічному вигляді діапазони рядків, які можна згорнути. Символи-трикутники позначатимуть можливі дії з вказаним діапазоном: трикутник, вершина якого вказує вниз, означатиме розгорнутий діапазон рядків, — натискання позначки трикутника призведе до згортання діапазону, — тепер програма показуватиме трикутник з вершиною, спрямованою праворуч.</para>
1881
>Передбачено одинадцять пунктів меню, за допомогою яких можна керувати станом областей згортання коду, їх перелік можна знайти у <link linkend="view-code-folding"
1882
>розділі, присвяченому меню</link
1886
>Програма запам’ятовує згортання після закриття файла. Коли ви наступного разу відкриєте файл для редагування, згорнуті вузли залишатимуться згорнутими. Це також стосується і дій з перезавантаження даних файлів.</para>
1889
>Якщо ви не бажаєте користуватися можливістю згортання коду, ви можете зняти позначку з пункту <guilabel
1890
>Показувати маркери згортання (якщо наявні)</guilabel
1891
> на сторінці <link linkend="appearance"
1893
> налаштування редактора.</para>
1897
<sect1 id="advanced-editing-tools-scripting">
1899
>Розширення можливостей &kappname; за допомогою скриптів</title>
1902
>Починаючи з версії &kappname; 3.4 у KDE 4.4, можливості компонента редактора &kappname; можна дуже просто розширити за допомогою написання скриптів. Для написання скриптів слід використовувати мову ECMAScript (широко відому як JavaScript). У &kappname; передбачено підтримку двох типів скриптів: скрипти встановлення відступів та скрипти командного рядка. </para>
1904
<sect2 id="advanced-editing-tools-scripting-indentation">
1906
>Скрипти додавання відступів</title>
1909
>Скрипти встановлення відступів, які також будемо називати інструментами відступів, автоматично встановлюють відступи у тексті під час його введення. Наприклад, після натискання клавіші &Enter; програма зазвичай збільшує відступ у наступному рядку. </para>
1912
>У наступних розділах наведено покрокові настанови щодо створення основи простого інструменту відступів. На першому кроці вам слід створити файл <filename
1914
> з назвою, наприклад, <filename
1915
>javascript.js</filename
1916
> у локальній домашній теці <filename
1917
>$KDEHOME/share/apps/katepart/indentation</filename
1920
<sect3 id="advanced-editing-tools-scripting-indentation-header">
1922
>Заголовок скрипту додавання відступів</title>
1924
>Заголовок файла <filename
1925
>javascript.js</filename
1926
> подається у межах закоментованого блоку і має таку форму <programlisting>
1929
* author: Example Name <example.name@some.address.org>
1933
* required-syntax-style: javascript
1934
* indent-languages: javascript
1936
* i18n-catalog: mycatalog
1938
* A line without colon ':' stops header parsing. That is, you can add optional
1939
* text here such as a detailed license.
1942
> Нижче ми зупинимося докладніше на кожному з записів заголовка. <itemizedlist>
1946
>kate-script</literal
1947
> [обов’язковий запис]: цей текст слід додавати у першому рядку файла <filename
1949
>, інакше &kappname; просто відмовиться обробляти скрипт. </para
1955
> [обов’язковий запис]: це назва інструменту відступів, яку буде показано у меню <menuchoice
1957
>Інструменти</guimenu
1959
>Відступ</guimenuitem
1961
> і діалогових вікнах налаштування. </para
1967
> [необов’язковий запис]: ім’я автора та дані щодо способу встановлення з ним зв’язку. </para
1973
> [необов’язковий запис]: скорочена форма умов ліцензування, зокрема BSD або LGPLv3. </para
1979
> [обов’язковий запис]: версія скрипту. Внесення змін до коду скрипту має призводити до збільшення його версії. </para
1984
>kate-version</literal
1985
> [обов’язковий запис]: мінімальне значення версії &kappname;, у якій працюватиме скрипт. </para
1990
>required-syntax-style</literal
1991
> [необов’язковий запис]: відокремлений комами список потрібних для роботи скрипту стилів підсвічування синтаксичних конструкцій. Цей запис є важливим для інструментів відступів, які працюють на основі певних даних щодо підсвічування у документі. Якщо буде вказано стиль синтаксичних конструкцій, інструментом відступів можна буде скористатися, лише якщо буде задіяно відповідний інструмент підсвічування тексту. Таким чином можна запобігти «невизначеній поведінці», спричиненій використанням інструменту відступів без потрібної для його роботи схеми підсвічування. Наприклад, у такий спосіб налаштовано інструмент відступів Ruby у файлах <filename
2000
>indent-languages</literal
2001
> [необов’язковий запис]: відокремлений комами список стилів синтаксичних конструкцій, які може обробляти інструмент відступів, наприклад c++, java. </para
2007
> [необов’язковий запис]: якщо якомусь файлу з визначеним підсвічуванням синтаксичних конструкцій відповідає декілька інструментів відступів, за допомогою цього запису буде встановлено пріоритет застосування інструменту відступів. </para
2012
>i18n-catalog</literal
2013
> [необов’язковий]: додатковий каталог повідомлень (файл <literal
2015
>), завантажений для перекладу сторонніх інструментів відступів.</para
2021
>&kappname; виконує читання всіх пар записів у формі <quote
2025
>значення</replaceable
2027
>, аж доки не буде вичерпано перелік рядків з двокрапками. Це означає, що у заголовку може міститися довільний текст, зокрема текст ліцензії, як це показано у нашому прикладі. </para>
2031
<sect3 id="advanced-editing-tools-scripting-indentation-body">
2033
>Код інструменту відступів</title>
2035
>Тепер, озброєні знаннями про формат заголовка, ви можете перейти до вивчення того, як же працює сам скрипт встановлення відступів. Основа подібного скрипту виглядає так: <programlisting>
2036
// вимагаємо бібліотек JS katepart, наприклад range.js, якщо використовується Range
2037
require ("range.js");
2039
triggerCharacters = "{}/:;";
2040
function indent(line, indentWidth, ch)
2042
//скрипт буде викликано під час обробки символу нового рядка (ch == '\n') і всіх символів, вказаних у
2043
// загальній змінній triggerCharacters. Під час використання пункту меню <menuchoice
2045
>Інструменти</guimenu
2047
>Вирівняти</guimenuitem
2049
// змінна ch матиме порожнє значення, тобто ch == ''.
2051
// див. також розділ «Інтерфейс (API) роботи зі скриптами»
2055
> У функції <function
2057
> передбачено три параметри: <itemizedlist
2062
>: рядок, у якому слід встановити відступ</para
2067
>indentWidth</literal
2068
>: ширина відступу у пробілах</para
2074
>: символ нового рядка (<literal
2075
>ch == '\n'</literal
2076
>), символ перемикання, вказаний за допомогою <literal
2077
>triggerCharacters</literal
2078
> або порожній рядок, якщо користувачем було обрано пункт меню <menuchoice
2080
>Інструменти</guimenu
2082
>Вирівняти</guimenuitem
2087
> Значення, повернуте функцією <function
2089
>, визначатиме спосіб встановлення відступу у рядку. Якщо буде повернуто ціле число, його обробку буде виконано за такими варіантами: <itemizedlist
2092
>повернуто значення <literal
2094
>: нічого не робити</para
2098
>повернуто значення <literal
2100
>: зберегти відступ (його буде визначено на основі попереднього непорожнього рядка)</para
2104
>повернуто значення <literal
2106
>: числа >= 0 визначають глибину відступу у пробілах</para
2109
> Крім того, може бути повернуто масив з двох елементів: <itemizedlist
2113
>повернуто [ відступ, вирівнювання ];</literal
2117
> Першим елементом такого масиву є глибина відступу, подібна на значення, про яке ми говорили раніше. Інший же елемент є абсолютним значенням, що відповідає стовпчику «вирівнювання». Якщо це значення буде більшим за значення відступу, до відступу після додавання відступу, визначеного першим параметром, буде додано різницю між цими значенням. Якщо ж значення другого параметра буде меншим за відступ, його буде проігноровано. Одночасне використання для встановлення відступів пробілів і символів табуляції часто називають «мішаним режимом». </para>
2120
>Розглянемо такий приклад: для встановлення відступів використовується символ табуляції, а ширину відступу визначено як 4 пробіли. У нашому прикладі, <таб> — це символ табуляції, а «.» — пробіл: <programlisting>
2121
1: <таб><таб>foobar("привіт",
2122
2: <таб><таб>......."світе");
2124
> Під час встановлення відступу для рядка 2 функція <function
2126
> повертає значення [8, 15]. У результаті буде додано два символи табуляції для встановлення відступу до стовпчика 8, а потім буде додано 7 пробілів для вирівнювання за другим параметром, більшим за перший, отже рядок залишатиметься вирівняним під час перегляду файла за будь-якої встановленої ширити відступу табуляції. </para>
2129
>У типовому пакунку KDE для &kappname; передбачено декілька інструментів відступів. Код цих інструментів мовою JavaScript зберігається у каталозі <filename
2130
>$KDEDIR/share/apps/katepart/script/indentation</filename
2134
>Під час розробки скрипту встановлення відступів корисним буває перезавантаження скриптів для перевірки коректності поведінки під час встановлення відступів. Замість перезапуску програми достатньо просто перейти до командного рядка і виконати команду <command
2135
>reload-scripts</command
2139
>Якщо вами було створено якийсь корисний скрипт, ви зробити його вашим власним внеском до проекту розробки &kappname;. Будь ласка, повідомте про вашу розробку у <ulink url="mailto:kwrite-devel@kde.org"
2140
>списку листування програми</ulink
2146
<sect2 id="advanced-editing-tools-scripting-command-line">
2148
>Скрипти командного рядка</title>
2151
>Оскільки всі користувачі мають різні потреби, у &kappname; передбачено підтримку невеличких допоміжних інструментів для пришвидшення роботи з фрагментами тексту за допомогою <link linkend="advanced-editing-tools-commandline"
2152
>вбудованого командного рядка</link
2153
>. Наприклад, команду <command
2155
> (впорядкувати) реалізовано саме за допомогою такого інструменту або скрипту. У цьому розділі ви знайдете пояснення щодо способу створення файлів <filename
2157
>, які допоможуть вам розширити можливості &kappname; додаванням допоміжних скриптів. </para>
2160
>Скрипти командного рядка зберігаються у одній теці зі скриптами встановлення відступів. Отже на першому кроці вам слід створити файл <filename
2162
> з назвою <filename
2163
>myutils.js</filename
2164
> у локальній домашній теці <filename
2165
>$KDEHOME/share/apps/katepart/script/commands</filename
2168
<sect3 id="advanced-editing-tools-scripting-command-line-header">
2170
>Заголовок скрипту командного рядка</title>
2172
>Заголовок файла <filename
2173
>javascript.js</filename
2174
> подається у межах закоментованого блоку і має таку форму <programlisting>
2176
* author: Example Name <example.name@some.address.org>
2180
* functions: sort, format-paragraph
2181
* i18n-catalog: mycatalog
2183
* A line without colon ':' stops header parsing. That is, you can add optional
2184
* text here such as a detailed license.
2187
> Нижче наведено докладніший опис кожного з записів заголовка. <itemizedlist>
2191
>kate-script</literal
2192
> [обов’язковий запис]: цей текст слід додавати у першому рядку файла <filename
2194
>, інакше &kappname; просто відмовиться обробляти скрипт.</para
2200
> [необов’язковий запис]: ім’я автора та дані щодо способу встановлення з ним зв’язку.</para
2206
> [необов’язковий запис]: скорочена форма умов ліцензування, зокрема BSD або LGPLv3.</para
2212
> [обов’язковий запис]: версія скрипту. Внесення змін до коду скрипту має призводити до збільшення його версії.</para
2217
>kate-version</literal
2218
> [обов’язковий запис]: мінімальне значення версії &kappname;, у якій працюватиме скрипт.</para
2224
> [обов’язковий запис]: відокремлений комами список команд скрипту.</para
2229
>i18n-catalog</literal
2230
> [необов’язковий]: додатковий каталог повідомлень (файл <literal
2232
>), завантажений для перекладу сторонніх скриптів.</para
2238
>&kappname; виконує читання всіх пар записів у формі <quote
2242
>значення</replaceable
2244
>, аж доки не буде вичерпано перелік рядків з двокрапками. Це означає, що у заголовку може міститися довільний текст, зокрема текст ліцензії, як це показано у нашому прикладі. Значенням ключів функцій має бути відокремлений комами список параметрів командного рядка. Це означає, що у одному скрипті може міститися довільна кількість команд командного рядка. Доступ до функцій можна буде отримати за допомогою <link linkend="advanced-editing-tools-commandline"
2245
>вбудованого командного рядка</link
2246
> &kappname;. </para>
2249
<sect3 id="advanced-editing-tools-scripting-command-line-body">
2251
>Код скрипту командного рядка</title>
2254
>Всі оголошені у заголовку функції має бути реалізовано у тілі скрипту. Наприклад, у файлі скрипту з наведеного вище прикладу слід реалізувати дві функції, <command
2257
>format-paragraph</command
2258
>. Всі функції має бути записано відповідно до таких синтаксичних правил: <programlisting
2259
>// вимагаємо бібліотек JS katepart, наприклад range.js, якщо використовується Range
2260
require ("range.js");
2262
function <назва>(параметр1, параметр2, ...)
2264
// ...реалізація, див. також: Інтерфейс (API) роботи зі скриптами
2270
>Параметри у командному рядку передаються функції як <parameter
2271
>параметр1</parameter
2273
>параметр2</parameter
2274
> тощо. Щоб надати користувачам можливість ознайомлюватися з документацією щодо команди, просто реалізуйте функцію '<function
2276
>' у такий спосіб: <programlisting>
2279
if (cmd == "sort") {
2280
return i18n("Sort the selected text.");
2281
} else if (cmd == "...") {
2286
>Після цього виконання команди <command
2288
> у командному рядку призведе до виклику відповідної функції довідки (help) з параметром <parameter
2290
> встановленим у назву вказаної команди, тобто, у нашому прикладі, <parameter
2291
>cmd == "sort"</parameter
2292
>. У відповідь на команду &kappname; покаже користувачеві визначений вами текст довідки. </para>
2294
<sect4 id="advanced-editing-tools-scripting-command-line-shortcuts">
2296
>Призначення клавіатурних скорочень</title>
2298
>Призначення клавіатурних скорочень стане можливим, лише якщо у вашому скрипті є функція з назвою <literal
2300
> у такому форматі: <programlisting>
2301
function action(cmd)
2303
var a = new Object();
2304
if (cmd == "sort") {
2305
a.text = i18n("Sort Selected Text");
2308
a.interactive = false;
2310
} else if (cmd == "moveLinesDown") {
2311
// same for next action
2318
> цієї функції визначає команду, виконання якої буде пов’язано з клавіатурним скороченням. Для повернутого об’єкта javascript має бути визначено декілька значень полів: <itemizedlist>
2323
> [обов’язковий запис]: це текст пункту, який буде показано у меню <menuchoice
2325
>Інструменти</guimenu
2327
>Скрипти</guisubmenu
2329
>. Не забудьте вказати <literal
2331
> для перекладу.</para
2337
> [необов’язковий запис]: піктограма, яку буде показано поряд з текстом пункту меню. Можна використовувати назву будь-якої з піктограм KDE.</para
2342
>a.category</literal
2343
> [необов’язковий запис]: якщо буде вказано категорію, пункт скрипту буде додано у підменю. Не забудьте використати <literal
2345
>, щоб уможливити переклад.</para
2350
>a.interactive</literal
2351
> [необов’язковий]: якщо для роботи скрипту потрібні дані, введені користувачем, встановіть значення <literal
2358
>a.shortcut</literal
2359
> [необов’язковий запис]: клавіатурне скорочення, вказане за допомогою цього значення буде типовим. Приклад: Ctrl+Alt+t. Докладніше про можливі скорочення можна дізнатися з <ulink url="http://doc.qt.nokia.com/latest/qt.html#Key-enum"
2360
>документації до Qt</ulink
2368
>Під час розробки скрипту командного рядка корисним буває перезавантаження скриптів для перевірки коректності поведінки під час встановлення відступів. Замість перезапуску програми достатньо просто перейти до командного рядка і виконати команду <command
2369
>reload-scripts</command
2373
>Якщо вами було створено якийсь корисний скрипт, ви зробити його вашим власним внеском до проекту розробки &kappname;. Будь ласка, повідомте про вашу розробку у <ulink url="mailto:kwrite-devel@kde.org"
2374
>списку листування програми</ulink
2381
<sect2 id="advanced-editing-tools-scripting-api">
2383
>Інтерфейс (API) роботи зі скриптами</title>
2386
>Програмним інтерфейсом роботи зі скриптами, основи якого викладено тут, можна користуватися у будь-яких скриптах, зокрема скриптах роботи з відступами та командному рядку програми. Класи <classname
2390
> визначаються бібліотечними файлами у <filename
2391
>$KDEDIR/share/apps/katepart/libraries</filename
2392
>. Якщо вам потрібно ними скористатися у певному скрипті для використання якихось із функцій <classname
2393
>Document</classname
2396
>, будь ласка, включіть до скрипту потрібну вам бібліотеку такою командою: <programlisting
2397
>// вимагаємо бібліотек JS katepart, наприклад range.js, якщо використовується Range
2398
require ("range.js");
2403
>Щоб розширити стандартний програмний інтерфейс (API) для роботи зі скриптами власними функціями і прототипами просто створіть файл у локальній теці файлів налаштування KDE, <filename
2404
>$KDEHOME/share/apps/katepart/libraries</filename
2405
>, і включіть його до вашого скрипту за допомогою такого коду: <programlisting
2406
>require ("vashscript.js");
2412
>Рекомендованим способом розширення можливостей прототипів, зокрема <classname
2418
> є внесення змін до загальних файлів <filename
2420
>. Для цього вам краще внести зміи до прототипу <classname
2422
> у JavaScript після команди включення <filename
2423
>cursor.js</filename
2424
> до вашого скрипту за допомогою <literal
2428
<sect3 id="advanced-editing-tools-scripting-api-prototypes">
2430
>Курсори і діапазони</title>
2433
>Оскільки &kappname; є текстовим редактором, весь програмний інтерфейс (API) за можливості засновано на курсорах та діапазонах тексту. Об’єкт Cursor (курсор) є простим кортежем <literal
2434
>(line, column)</literal
2435
> (рядок, стовпчик), що визначає позицію у тексті документа. Об’єкт Range (діапазон) це фрагмент тексту від початкової позиції курсора до кінцевої позиції курсора. Докладніше про програмний інтерфейс (API) ми поговоримо у наступних розділах. </para>
2437
<sect4 id="advanced-editing-tools-scripting-api-cursors">
2439
>Прототип Cursor (курсор)</title>
2450
>Конструктор. Повертає об’єкт Cursor (курсор) у позиції <literal
2455
>var cursor = new Cursor();</function
2470
>стовпчик</replaceable
2477
>Конструктор. Повертає об’єкт Cursor (курсор) у позиції (рядок, стовпчик). </para>
2480
>var cursor = new Cursor(3, 42);</function
2490
>Cursor <replaceable
2498
>Конструктор копіювання. Повертає копію курсора <replaceable
2503
>var copy = new Cursor(other);</function
2512
>Cursor Cursor.clone();
2517
>Повертає клон курсора.</para>
2520
>var clone = cursor.clone();</function
2529
>bool Cursor.isValid();
2534
>Перевіряє, чи є курсор коректним. Курсор вважається некоректним, якщо значення його позицій у рядку і/або стовпчику дорівнюють <literal
2539
>var valid = cursor.isValid();</function
2548
>Cursor Cursor.invalid();
2553
>Повертає новий некоректний курсор, розташований у позиції <literal
2558
>var invalidCursor = cursor.invalid();</function
2566
>int Cursor.compareTo(<parameter
2567
>Cursor <replaceable
2575
>Порівнює поточний курсор з курсором <replaceable
2577
>. Повертає <itemizedlist>
2582
>, якщо поточний курсор розташовано перед курсором <replaceable
2590
>, якщо курсори у однакових позиціях і</para
2596
>, якщо поточний курсор розташовано після курсора <replaceable
2609
>bool Cursor.equals(<parameter
2610
>Cursor <replaceable
2620
>, якщо цей курсор і курсор <replaceable
2622
> є однаковими. Якщо це не так, повертає <literal
2632
>String Cursor.toString();
2637
>Повертає об’єкт курсора як рядок у формі <quote
2639
>Cursor(line, column)</literal
2649
<sect4 id="advanced-editing-tools-scripting-api-ranges">
2651
>Прототип Range (діапазон)</title>
2662
>Конструктор. Виклик <literal
2663
>new Range()</literal
2664
> повертає Range (діапазон) у (0, 0) - (0, 0). </para
2673
>Cursor <replaceable
2674
>початок</replaceable
2677
>Cursor <replaceable
2678
>кінець</replaceable
2685
>Конструктор. Виклик функції <literal
2686
>new Range(<replaceable
2687
>початок</replaceable
2689
>кінець</replaceable
2691
> повертає Range (діапазон)(<replaceable
2692
>початок</replaceable
2694
>кінець</replaceable
2705
>початковийРядок</replaceable
2709
>початковийСтовпчик</replaceable
2713
>кінцевийРядок</replaceable
2717
>кінцевийСтовпчик</replaceable
2724
>Конструктор. Виклик функції <literal
2725
>new Range(<replaceable
2726
>початковийРядок</replaceable
2728
>початковийСтовпчик</replaceable
2730
>кінцевийРядок</replaceable
2732
>кінцевийСтовпчик</replaceable
2734
> повертає Range (діапазон) від позиції (<replaceable
2735
>початковийРядок</replaceable
2737
>початковийСтовпчик</replaceable
2738
>) до позиції (<replaceable
2739
>кінцевийРядок</replaceable
2741
>кінцевийСтовпчик</replaceable
2759
>Конструктор копіювання. Повертає копію Range <replaceable
2769
>Range Range.clone();
2774
>Повертає клон діапазону. </para>
2777
>var clone = range.clone();</function
2786
>bool Range.isValid();
2793
>, якщо початкова і кінцева позиції курсора є коректними. Якщо це не так, повертає <literal
2798
>var valid = range.isValid();</function
2807
>bool Range.invalid();
2812
>Повертає Range (діапазон) від (-1, -1) до (-1, -1). </para
2820
>bool Range.contains(<parameter
2821
>Cursor <replaceable
2822
>курсор</replaceable
2831
>, якщо позиція курсора міститься у діапазоні, у іншому випадку повертає <constant
2841
>bool Range.contains(<parameter
2852
>, якщо поточний діапазон містить діапазон <replaceable
2854
>. Якщо це не так, повертає <literal
2864
>bool Range.containsColumn(<parameter
2866
>стовпчик</replaceable
2875
>, якщо <replaceable
2876
>стовпчик</replaceable
2877
> належить напіввідкритому інтервалу <literal
2878
>[start.column, end.column)</literal
2879
>. Якщо це не так, повертає <literal
2889
>bool Range.containsLine(<parameter
2900
>, якщо <replaceable
2902
> належить до напіввідкритого інтервалу <literal
2903
>[start.line, end.line)</literal
2904
>. Якщо це не так, повертає <literal
2914
>bool Range.overlaps(<parameter
2925
>, якщо поточний діапазон і діапазон <replaceable
2927
> мають ненульовий перетин. Якщо це не так, повертає <literal
2937
>bool Range.overlapsLine(<parameter
2948
>, якщо <replaceable
2950
> належить до інтервалу <literal
2951
>[start.line, end.line]</literal
2952
>. Якщо це не так, повертає <literal
2962
>bool Range.overlapsColumn(<parameter
2964
>стовпчик</replaceable
2973
>, якщо <replaceable
2974
>стовпчик</replaceable
2975
> належить інтервалу <literal
2976
>[start.column, end.column]</literal
2977
>. Якщо це не так, повертає <literal
2987
>bool Range.onSingleLine();
2994
>, якщо діапазон починається і завершується на тому самому рядку, тобто якщо <replaceable
2995
>Range.start.line == Range.end.line</replaceable
2998
>Актуальна версія: KDE 4.9 </para
3006
>bool Range.equals(<parameter
3017
>, якщо поточний діапазон і діапазон <replaceable
3019
> тотожні. Якщо це не так, повертає <literal
3029
>String Range.toString();
3034
>Повертає діапазон у форматі <quote
3036
>Range(Cursor(line, column), Cursor(line, column))</literal
3046
<sect3 id="advanced-editing-tools-scripting-api-global">
3048
>Загальні функції (Global Functions)</title>
3050
>У цьому розділі наведено всі загальні функції.</para>
3053
<sect4 id="advanced-editing-tools-scripting-api-includes">
3055
>Читання і включення файлів</title>
3061
>String read(<parameter
3062
>String <replaceable
3063
>назва файла</replaceable
3070
>Виконає пошук файла з назвою <replaceable
3071
>назва файла</replaceable
3072
> у каталозі <literal
3073
>katepart/script/files</literal
3074
> і поверне його вміст як рядок. </para
3083
>void require(<parameter
3084
>String <replaceable
3085
>назва файла</replaceable
3092
>Виконає пошук файла з назвою <replaceable
3093
>назва файла</replaceable
3094
> у каталозі <literal
3095
>katepart/script/libraries</literal
3096
> і обробить його код. У <literal
3098
> передбачено вбудований захист від повторного включення одного і того самого файла. </para>
3100
>Актуальна версія: KDE 4.10 </para>
3107
<sect4 id="advanced-editing-tools-scripting-api-debug">
3109
>Зневаджування (Debugging)</title>
3115
>void debug(<parameter
3116
>String <replaceable
3124
>Виводить <replaceable
3128
> у консоль, з якої запущено програму. </para
3135
<sect4 id="advanced-editing-tools-scripting-api-i18n">
3137
>Переклад (Translation)</title>
3140
>Повноцінна локалізація стане можливою лише за використання декількох функцій, призначених для перекладу рядків у скриптах, а саме <literal
3148
>. Робота цих функцій подібна до роботи <ulink url="http://techbase.kde.org/Development/Tutorials/Localization/i18n"
3149
>функцій перекладу рядків у KDE</ulink
3153
>За допомогою функцій перекладу і системи перекладу KDE вбудовані у скрипт рядки повідомлень може бути перекладено мовою інтерфейсу програми. Рядки у скриптах, які є частиною офіційної збірки &kappname; буде автоматично видобуто і подано для перекладу командами перекладачів KDE. Іншими словами, якщо ви є розробником основної гілки &kappname;, ви не маєте перейматися видобуванням повідомлень і їхнім перекладом. Якщо ж скрипт є стороннім, його розробка виконується поза межами KDE, вам слід подбати про видобування і переклад повідомлень власноруч. Разом зі скриптами вам слід поширювати і файли перекладів, які міститимуть всі придатні для перекладу рядки. Крім того, у заголовку вашого скрипту має бути явним чином вказано каталог перекладів, який слід завантажити. Зробити це можна за допомогою параметра <literal
3154
>i18n-catalog</literal
3161
>void i18n(<parameter
3162
>String <replaceable
3166
>параметр1</replaceable
3172
>Перекладає <replaceable
3174
> мовою, використаною у інтерфейсі програми. Параметри <replaceable
3175
>параметр1</replaceable
3176
>, ... є необов’язковими. Вони є замінниками рядків <literal
3187
>void i18nc(<parameter
3188
>String <replaceable
3189
>контекст</replaceable
3192
>String <replaceable
3196
>параметр1</replaceable
3202
>Перекладає <replaceable
3204
> мовою, використаною у інтерфейсі програми. Крім того, перекладачі зможуть побачити рядок <replaceable
3205
>контекст</replaceable
3206
>. За допомогою контексту перекладачам буде простіше правильно перекласти рядок. Параметри <replaceable
3207
>параметр1</replaceable
3208
>, ... є необов’язковими. Вони є замінниками рядків <literal
3219
>void i18np(<parameter
3220
>String <replaceable
3221
>однина</replaceable
3224
>String <replaceable
3225
>множина</replaceable
3229
>кількість</replaceable
3232
>параметр1</replaceable
3238
>Перекладає <replaceable
3239
>однину</replaceable
3241
>множину</replaceable
3242
> повідомлення мовою, використаною у інтерфейсі програми залежно від вказаного значення <replaceable
3243
>кількість</replaceable
3244
>. Параметри <replaceable
3245
>параметр1</replaceable
3246
>, ... є необов’язковими. Вони є замінниками рядків <literal
3257
>void i18ncp(<parameter
3258
>String <replaceable
3259
>контекст</replaceable
3262
>String <replaceable
3263
>однина</replaceable
3266
>String <replaceable
3267
>множина</replaceable
3271
>кількість</replaceable
3274
>параметр1</replaceable
3280
>Перекладає <replaceable
3281
>однину</replaceable
3283
>множину</replaceable
3284
> повідомлення мовою, використаною у інтерфейсі програми залежно від вказаного значення <replaceable
3285
>кількість</replaceable
3286
>. Крім того, перекладачі зможуть побачити рядок <replaceable
3287
>контекст</replaceable
3288
>. За допомогою контексту перекладачам буде простіше правильно перекласти рядок. Параметри <replaceable
3289
>параметр1</replaceable
3290
>, ... є необов’язковими. Вони є замінниками рядків <literal
3302
<sect3 id="advanced-editing-tools-scripting-api-view">
3304
>Програмний інтерфейс <classname
3308
>Яким би чином не було запущено скрипт, він завжди користуватиметься загальною змінною <quote
3312
>, що відповідає поточній активній панелі перегляду. Нижче наведено список всіх типових функцій об’єкта View. <variablelist
3317
>Cursor view.cursorPosition()</function
3323
>Повертає поточну позицію курсора у області перегляду.</para
3331
>void view.setCursorPosition(<parameter
3337
>стовпчик</replaceable
3340
void view.setCursorPosition(<parameter
3341
>Cursor <replaceable
3342
>курсор</replaceable
3349
>Встановлює для поточного курсора позицію, вказану напряму (рядок, стовпчик), або позицію вказаного курсора. </para
3357
>Cursor view.virtualCursorPosition();
3362
>Повертає позицію віртуального курсора. Всі символи табуляцій буде враховано за допомогою відповідної кількості пробілів, яка залежатиме від поточної ширини табуляції. </para
3370
>void view.setVirtualCursorPosition(<parameter
3376
>стовпчик</replaceable
3379
void view.setVirtualCursorPosition(<parameter
3380
>Cursor <replaceable
3381
>курсор</replaceable
3388
>Встановлює для віртуального курсора позицію, вказану напряму (рядок, стовпчик), або позицію вказаного курсора. </para
3396
>String view.selectedText();
3401
>Повертає позначений фрагмент тексту. Якщо жодного фрагменту не позначено, повертає порожній рядок. </para
3409
>bool view.hasSelection();
3416
>, якщо у області перегляду позначено фрагмент тексту, інакше повертає <literal
3426
>Range view.selection();
3431
>Повертає діапазон позначеного фрагменту тексту. Якщо жодного фрагменту не позначено, буде повернуто некоректний діапазон. </para
3439
>void view.setSelection(<parameter
3441
>діапазон</replaceable
3448
>Встановлює позначення тексту за вказаним діапазоном. </para
3456
>void view.removeSelectedText();
3461
>Вилучає позначений текст. Якщо у області перегляду не було позначено жодного тексту, ніяких дій виконано не буде. </para
3469
>void view.selectAll();
3474
>Позначає весь текст у документі. </para
3482
>void view.clearSelection();
3487
>Знімає позначення фрагменту тексту, не вилучаючи сам текст. </para
3494
<sect3 id="advanced-editing-tools-scripting-api-document">
3496
>Програмний інтерфейс (API) <classname
3497
>Document</classname
3500
>Яким би чином не було запущено скрипт, він завжди користуватиметься загальною змінною <quote
3504
>, що відповідає поточній активній панелі перегляду. Нижче наведено список всіх типових функцій об’єкта Document. <variablelist
3508
>String document.fileName();
3513
>Повертає назву файла документа або порожній рядок для незбережених буферів з текстом. </para
3521
>String document.url();
3526
>Повертає адресу URL документа повністю або порожній рядок для незбережених буферів з текстом. </para
3534
>String document.mimeType();
3539
>Повертає тип MIME документа або тип MIME <literal
3540
>application/octet-stream</literal
3541
>, якщо відповідного типу MIME встановити не вдасться. </para
3549
>String document.encoding();
3554
>Повертає поточне кодування символів, яке буде використано для збереження даних файла. </para
3561
>String document.highlightingMode();
3566
>Повертає загальний режим підсвічування, використаний у всьому документі. </para
3573
>String document.highlightingModeAt(<parameter
3574
>Cursor <replaceable
3575
>позиція</replaceable
3582
>Повертає режим підсвічування, використаний за вказаною позицією у тексті. </para
3589
>Array document.embeddedHighlightingModes();
3594
>Повертає масив режимів підсвічування, вбудованих до поточного документа. </para
3601
>bool document.isModified();
3608
>, якщо у документі є незбережені зміни, інакше повертає <literal
3618
>String document.text();
3623
>Повертає увесь вміст документа у формі єдиного рядка тексту. Розриви рядків буде позначено символом розриву рядка <quote
3635
>String document.text(<parameter
3637
>зРядка</replaceable
3641
>зіСтовпчика</replaceable
3645
>доРядка</replaceable
3649
>доСтовпчика</replaceable
3652
String document.text(<parameter
3653
>Cursor <replaceable
3657
>Cursor <replaceable
3661
String document.text(<parameter
3663
>діапазон</replaceable
3670
>Повертає фрагмент тексту у вказаному діапазоні. Для того, щоб код було легше читати, ми рекомендуємо вам використовувати засновану на об’єктах Cursor і Range версію функції. </para
3678
>String document.line(<parameter
3687
>Повертає рядок за його номером у тексті. Якщо вказаний номер не належатиме до діапазону номерів рядків документа, буде повернуто порожній рядок. </para
3695
>String document.wordAt(<parameter
3701
>стовпчик</replaceable
3704
String document.wordAt(<parameter
3705
>Cursor <replaceable
3706
>курсор</replaceable
3713
>Повертає слово за вказаною позицією курсора. </para
3721
>Range document.wordRangeAt(<parameter
3727
>стовпчик</replaceable
3730
Range document.wordRangeAt(<parameter
3731
>Cursor <replaceable
3732
>курсор</replaceable
3739
>Повертає діапазон слова за вказаним розташуванням курсора. Повернуте значення діапазону буде некоректним (див. Range.isValid()), якщо текст розташовано за кінцем рядка. Якщо за вказаним розташуванням курсора не буде слова, функцією буде повернуто порожній діапазон. </para>
3741
>Актуальна версія: KDE 4.9 </para>
3749
>String document.charAt(<parameter
3755
>стовпчик</replaceable
3758
String document.charAt(<parameter
3759
>Cursor <replaceable
3760
>курсор</replaceable
3767
>Повертає символ за вказаною позицією курсора. </para
3775
>String document.firstChar(<parameter
3784
>Повертає перший символ вказаного рядка <replaceable
3786
>, який не є пробілом. Першим символом рядка вважається символ у стовпчику 0. Якщо рядок є порожнім або складається лише з пробілів, функція повертає порожній рядок. </para
3794
>String document.lastChar(<parameter
3803
>Повертає останній символ вказаного рядка <replaceable
3805
>, який не є пробілом. Якщо рядок є порожнім або складається лише з пробілів, функція повертає порожній рядок. </para
3813
>bool document.isSpace(<parameter
3819
>стовпчик</replaceable
3822
bool document.isSpace(<parameter
3823
>Cursor <replaceable
3824
>курсор</replaceable
3833
>, якщо символ у вказаній позиції курсора є пробілом. Якщо це не так, повертає <literal
3843
>bool document.matchesAt(<parameter
3849
>стовпчик</replaceable
3852
>String <replaceable
3856
bool document.matchesAt(<parameter
3857
>Cursor <replaceable
3858
>курсор</replaceable
3861
>String <replaceable
3871
>, якщо вказаний <replaceable
3873
> розташовано за відповідною позицією курсора. Якщо це не так, повертає <literal
3883
>bool document.startsWith(<parameter
3888
>String <replaceable
3893
>пропускатиПробіли</replaceable
3902
>, якщо рядок з вказаним номером починається з фрагмента тексту <replaceable
3904
>. Якщо це не так, повертає <literal
3906
>. За допомогою параметра <replaceable
3907
>пропускатиПробіли</replaceable
3908
> можна вказати програмі, чи слід ігнорувати пробіли. </para
3916
>bool document.endsWith(<parameter
3921
>String <replaceable
3926
>пропускатиПробіли</replaceable
3935
>, якщо рядок з вказаним номером завершується фрагментом тексту <replaceable
3937
>. Якщо це не так, повертає <literal
3939
>. За допомогою параметра <replaceable
3940
>пропускатиПробіли</replaceable
3941
> можна вказати програмі, чи слід ігнорувати пробіли. </para
3949
>bool document.setText(<parameter
3950
>String <replaceable
3958
>Замінює весь вміст документа на <parameter
3968
>bool document.clear();
3973
>Вилучає з документа весь текст. </para
3981
>bool document.truncate(<parameter
3987
>стовпчик</replaceable
3990
bool document.truncate(<parameter
3991
>Cursor <replaceable
3992
>курсор</replaceable
3999
>Обрізає рядок з вказаним номером на вказаному стовпчику або позиції курсора. Повертає <literal
4001
> у разі успіху або <literal
4003
>, якщо рядка з вказаним номером у документі немає. </para
4011
>bool document.insertText(<parameter
4017
>стовпчик</replaceable
4020
>String <replaceable
4024
bool document.insertText(<parameter
4025
>Cursor <replaceable
4026
>курсор</replaceable
4029
>String <replaceable
4037
>Вставляє фрагмент тексту <replaceable
4039
> у вказану позицію курсора. Повертає <literal
4041
> у разі успіху або <literal
4043
>, якщо документ відкрито у режимі лише для читання. </para
4051
>bool document.removeText(<parameter
4053
>зРядка</replaceable
4057
>зіСтовпчика</replaceable
4061
>доРядка</replaceable
4065
>доСтовпчика</replaceable
4068
bool document.removeText(<parameter
4069
>Cursor <replaceable
4073
>Cursor <replaceable
4077
bool document.removeText(<parameter
4079
>діапазон</replaceable
4086
>Вилучає текст у вказаному діапазоні. Повертає <literal
4088
> у разі успіху або <literal
4090
>, якщо документ відкрито у режимі лише для читання. </para
4098
>bool document.insertLine(<parameter
4103
>String <replaceable
4111
>Вставляє вказаний фрагмент тексту до рядка з вказаним номером. Повертає <literal
4113
> у разі успіху або <literal
4115
>, якщо документ відкрито у режимі лише для читання або рядка з вказаним номером у документі немає. </para
4123
>bool document.removeLine(<parameter
4132
>Вилучає рядок з вказаним номером. Повертає <literal
4134
> у разі успіху або <literal
4136
>, якщо документ відкрито у режимі лише для читання або рядка з вказаним номером у документі немає. </para
4144
>bool document.wrapLine(<parameter
4150
>стовпчик</replaceable
4153
bool document.wrapLine(<parameter
4154
>Cursor <replaceable
4155
>курсор</replaceable
4162
>Обрізає рядок з вказаним номером за вказаним розташуванням курсора. Повертає <literal
4164
> у разі успіху. У інших випадках повертає <literal
4166
> (наприклад, якщо номер рядка < 0). </para>
4168
>Актуальна версія: KDE 4.9 </para>
4176
>void document.joinLines(<parameter
4178
>початковийРядок</replaceable
4182
>кінцевийРядок</replaceable
4189
>Об’єднує рядки у діапазоні від<replaceable
4190
>початковийРядок</replaceable
4192
>кінцевийРядок</replaceable
4193
>. Послідовні рядки тексту завжди відокремлюються одинарним пробілом. </para
4201
>int document.lines();
4206
>Повертає кількість рядків у документі. </para
4214
>int document.length();
4219
>Повертає кількість символів у документі. </para
4227
>int document.lineLength(<parameter
4236
>Повертає довжину рядка з номером <replaceable
4246
>void document.editBegin();
4251
>Започатковує групу редагування для впорядкування операцій зі скасування або повторення дій. Не забувайте, що викликати <function
4252
>editEnd()</function
4253
> слід саме стільки разів, скільки разів було викликано <function
4254
>editBegin()</function
4255
>. Виклики <function
4256
>editBegin()</function
4257
> використовують вбудований лічильник, отже їх може бути вкладено один у оден. </para
4265
>void document.editEnd();
4270
>Завершує групу редагування. Останній виклик <function
4271
>editEnd()</function
4272
> (тобто відповідник першого виклику <function
4273
>editBegin()</function
4274
>) завершує крок з редагування. </para
4282
>int document.firstColumn(<parameter
4291
>Повертає перший відмінний від пробілу стовпчик у вказаному за допомогою параметра номера, <replaceable
4293
>, рядку. Якщо у рядку будуть лише пробіли, функція поверне значення <literal
4303
>int document.lastColumn(<parameter
4312
>Повертає останній відмінний від пробілу стовпчик у вказаному за допомогою параметра номера, <replaceable
4314
>, рядку. Якщо у рядку будуть лише пробіли, функція поверне значення <literal
4324
>int document.prevNonSpaceColumn(<parameter
4330
>стовпчик</replaceable
4333
int document.prevNonSpaceColumn(<parameter
4334
>Cursor <replaceable
4335
>курсор</replaceable
4342
>Повертає номер стовпчика з символом, відмінним від пробілу. Пошук буде виконано у напрямку початку документа, починаючи з вказаної позиції курсора. </para
4350
>int document.nextNonSpaceColumn(<parameter
4356
>стовпчик</replaceable
4359
int document.nextNonSpaceColumn(<parameter
4360
>Cursor <replaceable
4361
>курсор</replaceable
4368
>Повертає номер стовпчика з символом, відмінним від пробілу. Пошук буде виконано у напрямку кінця документа, починаючи з вказаної позиції курсора. </para
4376
>int document.prevNonEmptyLine(<parameter
4385
>Повертає наступний непорожній рядок, що містить символи, відмінні від пробілів. Пошук відбуватиметься у напрямку початку документа. </para
4393
>int document.nextNonEmptyLine(<parameter
4402
>Повертає наступний непорожній рядок, що містить символи, відмінні від пробілів. Пошук відбуватиметься у напрямку кінця документа. </para
4410
>bool document.isInWord(<parameter
4411
>String <replaceable
4412
>символ</replaceable
4416
>атрибут</replaceable
4425
>, якщо вказаний <replaceable
4426
>символ</replaceable
4427
> з вказаним параметром <replaceable
4428
>атрибут</replaceable
4429
> може бути частиною слова. Якщо це не так, повертає <literal
4439
>bool document.canBreakAt(<parameter
4440
>String <replaceable
4441
>символ</replaceable
4445
>атрибут</replaceable
4454
>, якщо вказаний <replaceable
4455
>символ</replaceable
4456
> з вказаним параметром <replaceable
4457
>атрибут</replaceable
4458
> може бути використано для розбиття рядка. Якщо це не так, повертає <literal
4468
>bool document.canComment(<parameter
4470
>атрибутПочатку</replaceable
4474
>атрибутКінця</replaceable
4483
>, якщо діапазон тексту, початок і кінець якого визначаються на основі вказаних атрибутів, можна закоментувати. Якщо це не так, повертає <literal
4493
>String document.commentMarker(<parameter
4495
>атрибут</replaceable
4502
>Повертає позначку коментаря для окремого рядка коментарів з вказаним параметром <replaceable
4503
>атрибут</replaceable
4512
>String document.commentStart(<parameter
4514
>атрибут</replaceable
4521
>Повертає позначку, якою має розпочинатися багаторядковий коментар для вказаного значення параметра <replaceable
4522
>атрибут</replaceable
4531
>String document.commentEnd(<parameter
4533
>атрибут</replaceable
4540
>Повертає позначку, якою має розпочинатися багаторядковий коментар для вказаного значення параметра <replaceable
4541
>атрибут</replaceable
4551
>int document.attribute(<parameter
4557
>стовпчик</replaceable
4560
int document.attribute(<parameter
4561
>Cursor <replaceable
4562
>курсор</replaceable
4569
>Повертає атрибут за вказаною позицією курсора. </para
4577
>bool document.isAttribute(<parameter
4583
>стовпчик</replaceable
4587
>атрибут</replaceable
4590
bool document.isAttribute(<parameter
4591
>Cursor <replaceable
4592
>курсор</replaceable
4596
>атрибут</replaceable
4605
>, якщо атрибут за вказаною позицією курсора дорівнює значенню параметра <replaceable
4606
>атрибут</replaceable
4607
>. Якщо це не так, повертає <literal
4617
>String document.attributeName(<parameter
4623
>стовпчик</replaceable
4626
String document.attributeName(<parameter
4627
>Cursor <replaceable
4628
>курсор</replaceable
4635
>Повертає назву атрибута придатну до читання. Ця назва відповідає назві <literal
4637
> у файлах підсвічування синтаксичних конструкцій. </para
4645
>bool document.isAttributeName(<parameter
4651
>стовпчик</replaceable
4654
>String <replaceable
4658
bool document.isAttributeName(<parameter
4659
>Cursor <replaceable
4660
>курсор</replaceable
4663
>String <replaceable
4673
>, якщо назва атрибута у певній позиції курсора відповідає вказаному значенню параметра <replaceable
4675
>. Якщо це не так, повертає <literal
4685
>String document.variable(<parameter
4686
>String <replaceable
4694
>Повертає значення вказаної змінної документа <replaceable
4696
>. Якщо змінної з вказаною назвою у документі не існує, повертає порожній рядок. </para
4704
>String document.setVariable(<parameter
4705
>String <replaceable
4709
>String <replaceable
4710
>значення</replaceable
4717
>Встановлює значення відповідної змінної документа <replaceable
4719
>. Повертає встановлене значення змінної. </para>
4721
>Див. також <link linkend="config-variables"
4722
>змінні документа Kate</link
4725
>Актуальна версія: KDE 4.8 </para
4733
>int document.firstVirtualColumn(<parameter
4742
>Повертає віртуальний стовпчик першого відмінного від пробілу символу у вказаному рядку або <literal
4744
>, якщо рядок є порожнім або містить лише символи пробілів. </para
4752
>int document.lastVirtualColumn(<parameter
4761
>Повертає віртуальний стовпчик останнього відмінного від пробілу символу у вказаному рядку або <literal
4763
>, якщо рядок є порожнім або містить лише символи пробілів. </para
4771
>int document.toVirtualColumn(<parameter
4777
>стовпчик</replaceable
4780
int document.toVirtualColumn(<parameter
4781
>Cursor <replaceable
4782
>курсор</replaceable
4785
Cursor document.toVirtualCursor(<parameter
4786
>Cursor <replaceable
4787
>курсор</replaceable
4794
>Перетворює вказану «реальну» позицію курсора на віртуальну позицію курсора, повертає або ціле значення (int), або об’єкт Cursor. </para
4802
>int document.fromVirtualColumn(<parameter
4808
>virtualColumn</replaceable
4811
int document.fromVirtualColumn(<parameter
4812
>Cursor <replaceable
4813
>virtualCursor</replaceable
4816
Cursor document.fromVirtualCursor(<parameter
4817
>Cursor <replaceable
4818
>віртуальнийКурсор</replaceable
4825
>Перетворює вказану віртуальну позицію курсора на «реальну» позицію курсора, повертає або ціле значення (int), або об’єкт Cursor. </para
4833
>Cursor document.anchor(<parameter
4839
>стовпчик</replaceable
4843
>символ</replaceable
4846
Cursor document.anchor(<parameter
4847
>Cursor <replaceable
4848
>курсор</replaceable
4852
>символ</replaceable
4859
>Виконує пошук у напрямку початку документа, починаючи від вказаної позиції курсора, вказаного символу. Наприклад, якщо функції буде передано символ «(», функція поверне позицію початкової дужки «(». Відповідність дужок не враховуватиметься, тобто інші «(...)» буде проігноровано. </para
4867
>Cursor document.rfind(<parameter
4873
>стовпчик</replaceable
4876
>String <replaceable
4881
>атрибут</replaceable
4884
Cursor document.rfind(<parameter
4885
>Cursor <replaceable
4886
>курсор</replaceable
4889
>String <replaceable
4894
>атрибут</replaceable
4901
>Виконує пошук у напрямку початку документа вказаного фрагмента тексту з відповідним значенням параметра <replaceable
4902
>атрибут</replaceable
4903
>. Параметр <replaceable
4904
>атрибут</replaceable
4905
> буде проігноровано, якщо він матиме значення <literal
4907
>. Функція поверне значення некоректного курсора, якщо фрагмент тексту знайти не вдасться. </para
4915
>int document.defStyleNum(<parameter
4921
>стовпчик</replaceable
4924
int document.defStyleNum(<parameter
4925
>Cursor <replaceable
4926
>курсор</replaceable
4933
>Повертає типовий стиль курсора, використаний за вказаною позицією у тексті. </para
4941
>bool document.isCode(<parameter
4947
>стовпчик</replaceable
4950
bool document.isCode(<parameter
4951
>Cursor <replaceable
4952
>курсор</replaceable
4961
>, якщо атрибут за вказаною позицією курсора не дорівнює жодному зі значень стилів: <literal
4966
>dsRegionMarker</literal
4980
>bool document.isComment(<parameter
4986
>стовпчик</replaceable
4989
bool document.isComment(<parameter
4990
>Cursor <replaceable
4991
>курсор</replaceable
5000
>, якщо значенням атрибута символу у позиції курсора є <literal
5002
>. Якщо це не так, повертає <literal
5012
>bool document.isString(<parameter
5018
>стовпчик</replaceable
5021
bool document.isString(<parameter
5022
>Cursor <replaceable
5023
>курсор</replaceable
5032
>, якщо значенням атрибута символу у позиції курсора є <literal
5034
>. Якщо це не так, повертає <literal
5044
>bool document.isRegionMarker(<parameter
5050
>стовпчик</replaceable
5053
bool document.isRegionMarker(<parameter
5054
>Cursor <replaceable
5055
>курсор</replaceable
5064
>, якщо значенням атрибута символу у позиції курсора є <literal
5065
>dsRegionMarker</literal
5066
>. Якщо це не так, повертає <literal
5076
>bool document.isChar(<parameter
5082
>стовпчик</replaceable
5085
bool document.isChar(<parameter
5086
>Cursor <replaceable
5087
>курсор</replaceable
5096
>, якщо значенням атрибута символу у позиції курсора є <literal
5098
>. Якщо це не так, повертає <literal
5108
>bool document.isOthers(<parameter
5114
>стовпчик</replaceable
5117
bool document.isOthers(<parameter
5118
>Cursor <replaceable
5119
>курсор</replaceable
5128
>, якщо значенням атрибута символу у позиції курсора є <literal
5130
>. Якщо це не так, повертає <literal