Комментарии
В этом разделе описываются новые опции для определения комментариев.
Теги однострочного комментария
Стиль
Открывающие теги
//
Тег переноса на след. строку
\
Закрывающие теги
!
|
Теги блочного комментария
Стиль
Открывающие теги
/* /+
Закрывающие теги
*/ +/
|
Обработка комментариев в UDL 2.0 существенно изменилась.
Начнем с наиболее очевидной части - GUI.
Однострочные комментарии:
Однострочные комментарии теперь поддерживают 3 набора тегов: открывающих, перенос на следующую строку, и закрывающих.
Открывающие теги
В большинстве языков это единственный тег, который вам нужен. Задаёт тег начала однострочного комментария, например # // ! ;
Пример:
// комментарий
Тег переноса на следующую строку
Если этот тег находится в конце строки комментария, то комментарий распространяется на следующую строку, например \.
Пример:
// комментарий \
комментарий распространяется на эту строку
Закрывающие теги
Это редкий случай, но в некоторых языках программирования комментарии имеют теги начала и конца. Если отсутствует теги конца, комментарий автоматически заканчивается в конце текущей строки. Это поле, где вам нужно указать закрывающий тег, например: !
Пример:
// комментарий ! этот текст уже не принадлежит комментарию
| 1 | | // Обычный однострочный комментарий |
2 | |
3 | // Однострочный комментарий с / |
4 | переносом на следующую строку |
5 | |
6 | Обычный текст // комментарий заканчивается \ |
7 | на новой строке! обычный текст |
8 | |
Это базовые примеры, но они показывают как это работает.
- Строка 1 - это то, как выглядят комментарии в большинстве языков. Они где-то начинаются и заканчиваются в конце строки (EOL).
- Строка 3 - если ваш язык поддерживает перенос однострочного комментария на следующую строку, как в C++, то вы можете его задать.
- Строка 6 - это демонстрация частного случая, где однострочный комментарий имеет закрывающий тег. Таким образом, он заканчивается в конце строки (EOL) или закрывающим тегом, в зависимости от того, что встретится раньше.
Блочные комментарии:
Блочные комментарии задаются таким же способом как в UDL 1.0.
| 1 | | /* Это блочный комментарий |
2 | Он является многострочным |
3 | пока не будет закрыт */ |
4 | |
Вы просто создаёте список тегов, которые определяют начало и конец комментариев. Но здесь есть скрытая особенность.
Обратите внимание, на позицию открывающих и закрывающих тегов в полях ввода (смотрите скрин в начале статьи)! Обратите внимание, как я определил две отдельных пары комментариев и как они заданы по позициям. Я хотел задать следующие 2 набора комментариев:
/* Это комментарий языка C */
/+ Это комментарий языка D +/
| 1 | | /* комментарий UDL 2.0 +/ */ |
2 | /* комментарий UDL 2.0 */ +/ |
3 | /+ комментарий UDL 2.0 +/ */ |
4 | /+ комментарий UDL 2.0 */ +/ |
5 | |
Теперь давайте попробуем вложить эти два типа комментариев один в другой, чтобы увидеть различие между UDL 1.0 и UDL 2.0.
Вложенные комментарии
Пример 2
1. Задать "Разделитель 1", как будто это комментарий.
2. Разрешить в "Разделитель 1" иметь вложенный блочный комментарий.
3. Аналогично разрешить в блочных комментариях иметь вложенный "Разделитель 1".
4. Элементам "Разделитель 1" и "Блочный комментарий" задать похожий, но немного отличающийся цвет.
Разделитель 1
Стиль
Открывающие теги
/*
Экранирующий символ
Закрывающие теги
*/
И вуаля!
Теперь ваш вложенный комментарий не только разрешён, но ещё и подсвечен.
Вы назовёте меня помешанным на пустяках, но я думаю, что это действительно здорово :-)
| 1 | | /* комментарий |
2 | /* вложенный комментарий 1 |
3 | /* вложенный комментарий 2 */ |
4 | вложенный комментарий 1 */ |
5 | комментарий */ |
6 | |
Пример 3
В этом примере подсвечены вложенные однострочные комментарии.
Так же, как в примере 2, мы задали похожие, но немного отличающиеся цвета и разрешили вложение однострочные комментарии в блочных комментариях.
| 1 | | /* Это блочный комментарий |
2 | |
3 | // вложенный однострочный комментарий 1 |
4 | // вложенный однострочный комментарий 2 |
5 | |
6 | захватывает 2 строки */ |
7 | |
Пример 4
Вы можете имитировать однострочный комментарий с помощью разделителя. Обратите внимание, как специальный оператор UDL (( )) преобразует аббревиатуру "EOL" в символ конца строки.
Разделитель 2
Стиль
Открывающие теги
//
Экранирующий символ
Закрывающие теги
((EOL))
Результат как в предыдущем примере. Учтите, что комментарии заданные на вкладке "Комментарии и числа" связаны с горячими клавишами пунктов меню "Правка→Комментарии→...", а заданные в разделителях - нет.
| 1 | | /* Это блочный комментарий |
2 | |
3 | // вложенный однострочный комментарий 1 |
4 | // вложенный однострочный комментарий 2 |
5 | |
6 | захватывает 2 строки */ |
7 | |
Пример 5
1. Задать обычные комментарии C++
2. Разрешить в однострочных комментариях иметь вложенный "Разделитель 1".
3. Задать установки "Разделитель 1" как указано ниже.
4. Обратите внимание, как вам нужно задать закрывающий тег для каждого открывающего тега, то есть необходимо также задать 4 закрывающих тега. Каждый из 4-х закрывающих тегов - специальный оператор конца строки (и убедитесь, что ((EOL)) разделяются пробелами!).
Разделитель 1
Стиль
Открывающие теги
TODO FIXME BUG TEST
Экранирующий символ
Закрывающие теги
((EOL)) ((EOL)) ((EOL)) ((EOL))
| 1 | | // TODO : Обновление документации |
2 | // BUG : это не работает для отрицательных чисел |
3 | // FIXME : дополнено для отрицательных чисел |
4 | // TEST : необходимо дальнейшее тестирование |
5 | // обычный однострочный комментарий |
6 | |
Сворачивание комментариев
Разрешить сворачивание коммент. - позволяет сворачивать блочные и однострочные комментарии