Changes between Initial Version and Version 1 of ru/doc/editor/syntaxHighlight


Ignore:
Timestamp:
12/29/09 07:41:56 (15 years ago)
Author:
andrew_b
Comment:

Initial version.

Legend:

Unmodified
Added
Removed
Modified
  • ru/doc/editor/syntaxHighlight

    v1 v1  
     1 
     2= Подсветка синтаксиса cooledit = 
     3 
     4 
     5'''Внимание! Частично эта информация устарела! ''' 
     6 
     7 
     8Начиная с версии 3.6.0, cooledit умеет подсветку синтаксиса. Это означает, что ключевые слова и контексты (такие как комментарии, 
     9строковые константы и так далее) будут подсвечены разными цветами. Этот раздел объясняет формат файла ~/.cedit/syntax. 
     10 
     11Файл ~/.cedit/syntax перечитывается при каждом открытии редактора. В файле содержатся правила подсвечивания, каждое из которых 
     12записано с новой строки, и которые определяют, какие из ключевых слов каким цветом подсвечиваются. Также файл разделён на секции, 
     13каждая из которых, начинается со строки с командой '''file''' и регулярным выражением, следующим за ней. Регулярное выражение 
     14определяет имя файла, к которому будет применён набор правил. Далее следует описание для отображения в заголовке редактора, 
     15объясняющее тип файла пользователю. Третий параметр (необязательный) - регулярное выражение, соответствующее первой строке текста 
     16из файла. Если любое из регулярных выражений по имени или по первой строке совпадёт, то правила будут загружены. 
     17 
     18Секция оканчивается началом новой секции. Каждая секция разделена на контексты, а каждый контекст содержит правила. Контекст 
     19(context) - область текста, которой принадлежат особенный набор правил. Например, область комментариев в стиле C (например между /* и */) 
     20имеет свой собственный цвет. Он является контекстом, несмотря на то, что он не имеет других правил внутри себя, так как, возможно, 
     21мы не хотим ничего подсвечивать внутри C-комментария. 
     22 
     23Простейшая секция для языка C может выглядеть так: 
     24 
     25{{{ 
     26file .\*\\.c C\sProgram\sFile (#include|/\\\*) 
     27 
     28wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ 
     29 
     30# default colors 
     31context default 
     32keyword whole if 24 
     33keyword whole else 24 
     34keyword whole for 24 
     35keyword whole while 24 
     36keyword whole do 24 
     37keyword whole switch 24 
     38keyword whole case 24 
     39keyword whole static 24 
     40keyword whole extern 24 
     41keyword { 14 
     42keyword } 14 
     43keyword '*' 6 
     44 
     45# комментарии C 
     46context /\* \*/ 22 
     47 
     48# Директивы препроцессора C 
     49context linestart # \n 18 
     50keyword \\\n 24 
     51 
     52# Строковые константы C 
     53context " " 6 
     54keyword %d 24 
     55keyword %s 24 
     56keyword %c 24 
     57keyword \\" 24 
     58}}} 
     59 
     60Каждый контекст начинается со строки вида: 
     61{{{ 
     62context [exclusive] [whole|wholeright|wholeleft] [linestart] delim [linestart] delim [foreground] [background] 
     63}}} 
     64 
     65Единственное исключение составляет первый контекст. Он должен начинаться со строки вида: 
     66{{{ 
     67context default [foreground] [background] 
     68}}} 
     69 
     70иначе cooledit возвратит ошибку. 
     71 
     72Параметр ''linestart'' определяет, что начало ограничителя (''delim'') должен совпадать с началом строки. 
     73 
     74Параметр ''whole'' определяет, что ограничитель (''delim'') должен быть целым словом. Набор символов, из которых может состоять слово, 
     75могут быть изменены в любой точке файла с помощью команды '''wholechars'''. Команда '''wholechars''' в самом начале устанавливает набор 
     76в состояние по умолчанию и поэтому может быть опущена. 
     77Для того, чтобы определить, что слово должно быть целым только слева, можно использовать параметр ''wholeleft'' и, соответственно, 
     78справа - ''wholeright''. Наборы символов для левого и правого направлений могут быть установлены отдельно с помощью следующей команды: 
     79{{{ 
     80wholechars [left|right] characters 
     81}}} 
     82 
     83Параметр ''exclusive'' определяет подсветку между ограничителями (''delim''), исключая при этом сами ограничители (''delim''). 
     84 
     85Каждое правило имеет вид: 
     86{{{ 
     87keyword [whole|wholeright|wholeleft] [linestart] string foreground [background] 
     88}}} 
     89 
     90Контекст (context) или ключевое слово (''keyword'') обрабатываются так, что могут включать символы табуляции и пробелы. Для этого 
     91используются последовательности '''\t''' и '''\s'''. Новая строка и '''\''' определяются последовательностями '''\n''' и '''\\''' 
     92соответственно. Также, последовательность '''\*''' должна быть использована для определения символа '''*'''. Сам по себе символ '''*''' 
     93является метасимволом (wildcard), который определён как любое количество символов, большее и равное нулю. Например, 
     94{{{ 
     95keyword '*' 6 
     96}}} 
     97подсвечивает все односимвольные константы C зелёным цветом. Также можно использовать 
     98{{{ 
     99keyword "*" 6 
     100}}} 
     101для расцвечивания строковых констант, исключая многострочные константы. Метасимволы могут использоваться совместно с контекстами 
     102в позиции первого или последнего символа. 
     103 
     104Важно отметить значение строки: 
     105{{{ 
     106keyword \\\n 24 
     107}}} 
     108Эта строка определяет ключевое слово ('''keyword'''), содержащее символ '''\''' и символ новой строки ('''\n'''). Так как ключевые 
     109слова имеют более высокий приоритет, чем разделители контестов, это ключевое слово предотвращает завершение контекста в конце строки, 
     110если строка оканчивается символом '''\''', позволяя, таким образом, применять расцветку к дерективам С-препроцессора, расположенным 
     111на нескольких строках. 
     112 
     113Цвета пронумерованы от 0 до 26. 
     114{{{ 
     115#!comment 
     116и объяснены ниже в разделе ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ПОВЕДЕНИЯ 
     117}}} 
     118Также Вы можете использовать именованные цвета, определённые в {{{/usr/lib/X11/rgb.txt}}}, однако лишь однословные их определения. 
     119Лучше использовать численные представления, чтобы ограничить использование цветовой палитры. 
     120 
     121Комментарии определяются символом '''#''' в начале строки. 
     122 
     123Ввиду простоты реализации есть некоторые затруднительные ситуации, которые не будут обрабатываться корректно, но это мелкие раздражители. 
     124В большинстве своём достаточно сложные ситуации могут быть обработаны с помощью этих простых правил. Неплохой идеей будет просмотреть 
     125несколько файлов с правилами для изучения изящных приёмов, которые вы можете использовать, применив немного воображения. 
     126{{{ 
     127#!comment 
     128Если вы не можете решить проблему с помощью этих правил, а у вас есть правило, которое вы считаете, будет полезным, пожалуйста, напишите 
     129мне письмо с запросом на реализацию. Однако не просите о поддержке регулярных выражений, так как это решительно невозможно. 
     130 
     131Полезным замечанием будет: работайте с как можно большим количеством вещей, которые вы можете сделать, чем пытайтесь реализовать 
     132вещи, которые не покрываются данной реализацией. Помните: подсветка синтаксиса должна сокращать количество возможных ошибок, 
     133а не делать код красиво выглядящим.  
     134}}} 
     135 
     136 
     137------------------------------------------------------------------------------- 
     138http://translated.by/you/syntax-highlighting-in-cooledit/into-ru/trans/ 
     139 
     140Оригинал (английский): [http://www.delorie.com/gnu/docs/mc/mcedit.1.html SYNTAX HIGHLIGHTING (in cooledit)] 
     141Перевод: © styx, shkoda, smind. 
     142 
     143Форматирование и редактирование: andrew_b 
     144 
     145translated.by переведено толпой