Видел, что есть программы конвертации, например, "БОЛЬШИХ" букв в "маленькие" и наоборот. Они работают по какой-нибудь горячей клавише и изменяют текст прямо на экране. Я никогда ими не пользовался, поэтому не знаю их возможностей.
Существуют ли такие, которые можно настраивать по своим правилам? Например, чтобы GO_STYLE_DEFAULT мог преобразовать в go_Style_Default. А также можно было добавить операторы ABAP, как ключевые слова...
p.s.
Почему задаю вопрос "не в тему" - возможно у кого-то есть опыт в применении к ABAP.
p.p.s
С наскока в интернете ничего не нашел. Видимо не знаю что искать...
p.p.p.s.
В результате этой темы написалась программа форматирования ABAP-кода, которую можно скачать по ссылке -
https://sites.google.com/site/vvnabap/fajly/zvvn_abap_format. Устанавливается через Copy/Past, имя программы значения не имеет.
Программа "три в одном", она позволяет: делать настройки, отображать на экране результат (тестирование), расширять через enhancement стандартное форматирование. В последнем случае форматирование происходит по кнопке <Структурная печать> в редакторе ABAP, если стандартные настройки сделаны следующим образом - при включенном "Отступ" и отключенном "Провести преобр.", а в настройке ZVVN_ABAP_FORMAT включен параметр "Settings Active".
Если нет возможности расширить стандарт, то можно пользоваться режимом тестирования, настроив ввод/вывод через буфер обмена. Тогда процесс происходит следующим образом:
- в отдельном режиме запускаем программу ZVVN_ABAP_FORMAT, включаем параметры "From Clipboard" и "to Clipboard",
- в другом режиме выделяем редактируемый текст, нужный кусок или просто весь код, копируем его в буфер обмена Ctrl+C;
- переходим в режим ZVVN_ABAP_FORMAT, нажимаем F8;
- возвращаемся в режим с редактируемым текстом и вставляем отформатированный код из буфера обмена Ctrl+V.
Выглядит программа так:
Подключение в конец стандартного ФМ PRETTY_PRINTER:
Code:
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZVVN_ABAP_FORMAT. "active version
Perform ABAP_Format in program ZVVN_ABAP_FORMAT if found
changing nText[].
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
ENDFUNCTION.
Настройки имеют три уровня:
1. INITIAL - это "заводские настройки", прошитые прямо в программе.
2. DEFAULT - это общие настройки для случая, когда вы хотите создать единый стандарт в коллективе разработчиков.
3. <SY-UNAME> - персональные настройки разработчика, автоматически именуются его логином.
При первом запуске программа сразу готова к использованию в режиме теста (F8). Для использования в расширении стандарта нужно установить стандартные настройки "Структурной печати", как описано выше, и активировать параметр "Settings Active".
По умолчанию параметры уровней 2 и 3 имеют значение "D" (Default), что означает наследование от вышестоящего уровня, т.е. INITIAL. Справа от них показаны действующие (унаследованные) значения.
Переключаться между уровнями настроек можно нажатием кнопки с именем вашего логина. Уровни 2 (DEFAULT) и 3 (персональный) можно изменять и сохранять, уровень 1 (INITIAL) не изменяется.
Параметры "Keywords", "Naming" и "Dictionary" могут принимать значения:
пробел - Nothing, не изменять
U - Upper, все заглавные
L - Lower, все маленькие
C - Capital, первая буква заглавная
F - First Capital, первое слово в операторе с заглавной буквы, остальные маленькие. Например, Select... from... where...
D - Default, наследует настройку предыдущего уровня
Параметры "...user value" позволяют определить исключения для предыдущих параметров. В них указываются идентификаторы групп "Id" из табличной части.
Таблица в правой части экрана - настройки исключений (user value), которые не укладываются в простые правила (Upper, Lower, Capital, First capital word). Они так же наследуются от вышестоящих уровней. Существующую настройку можно переопределить - для этого достаточно изменить значение "Replacement", или отменить - "Disable".
Разумеется можно создавать новые настройки, ключом настройки являются поля "Id", "PrevKey Mask" и "Key Mask". Новая настройка с уже существующим ключом предка означает переопределение его настройки.
"Id" - одиночный символ - идентификатор группы настроек. По умолчанию "K" (Keywords) - для ключевых слов ABAP, "N" (Naming) - для всех имён (переменных, типов, подпрограмм, методов и т.д.), "T" (Dictionary Type) - типы словаря. Можно использовать любые символы для альтернативных настроек, кроме пробела и "D".
"PrevKey Mask" - условие применения настройки, соответствующее предыдущему набору ключевых слов ABAP, относительно изменяемого слова, в пределах одного оператора (statement). Например, "SELECT*FROM" для форматирования имени таблицы в операторе "Select... from <имя>".
"Key Mask" - условие применения настройки, соответствующее текущему изменяемому слову. Например, "WHERE" для изменения ключевого слова. При этом, поскольку "where" не является первым словом в операторе, "PrevKey Mask" должно иметь значение "*", если нужно его форматировать во всех возможных операторах (Select, Delete, Loop). Либо в "PrevKey Mask" указать конкретный оператор, например, "SELECT*".
"Replacement" - замена слова. Например, "where" для замены Key Mask = "WHERE". Также можно выполнять операцию над словом или частью слова. Символ операции ставится на то место, где в Key Mask указана "*". Например, если для Key Mask = "END*" указать Replacement = "End"C"", то во всех операторах, начинающихся с "END" начало заменится на "End", а хвостовая часть будет обработана по правилу Capital (первая буква большая) - EndCase, EndMethod, EndIf и т.д.
"Owner" показывает владельца настройки, "пусто" - INITIAL.
"Disable" - отключение настройки.