Capture Date: 16.09.2018 22:52:10
If you develop now UI for SAP, you use Web IDE. If you are doing backend and ABAP, you use ADT (ABAP in Eclipse). But sometimes you still need to come back to SAP GUI and ABAP Workbench and use the “New” ABAP Editor.
For that rare cases when you are doing ABAP in old fashion way I have some suggestions, which maybe someone not aware of, and that may help be more productive. In this blog, I will try to explain most useful functions added in ABAP Editor (from my point of view) and will try to collect links to other useful resources related to ABAP Editor for SAP GUI.
Do not expect too much in the beginning, but the list will grow up on demand.
I am long time not responsible for the ABAP Editor in Workbench so I cannot add or fix something. And I am not ABAP Workbench expert in general – I can only give details about that white area where you type your code. But for that white area, I can explain how it was designed and if the thing you want is in or is theoretically possible.
It was designed, that when one starts “New” ABAP editor in the ABAP workbench for the first time, he gets an introduction page, explaining new features of the editor. But I never saw this working :).
The page is located aside to ABAP Editor user settings in:
“%APPDATA%SAPSAP GUIABAP Editorqstart.htm” Copy => Win + R => Paste => Enter
And here is most valuable part of the page:
Block / Column Selection
- Alt + Shift + Left/Right/Up/Down
The ABAP editor allows you not only use standard (called “stream” selection) but also allow to select a rectangular block of text, which does not start from the beginning of the line:
You can select text block using the keyboard commands (Alt + Shift + Arrows) or with a mouse, keeping left Alt key during selection:
After selection, you can apply many of the editing functions in block mode:
- Delete, Insert, Multi Edit
- Copy/paste from Clipboard
- Case conversion
- Indent etc.
Null Width Selection
The degenerated version of the block selection is Null Width selection (not visualized ), which you can use for indenting of text blocks.
Clipboard Ring or Multi Clipboard or Clipboard History
- Ctrl + Shift + V
If you want to see all text pieces you have copied during your editing session, just press Ctrl + Shift + V, instead of normal Ctrl + V. Then you get a history of the clipboard items (up to 12, in chronological sequence) where you can select and paste any of the items (it also overwrites current Windows clipboard content).
- Ctrl + L -> lower case
- Ctrl + U -> UPPER CASE
- Ctrl + K -> sWAP cASE
- Ctrl + J -> Capitalize Text
- Ctrl + T -> Like in sentence
You can easily modify text case, without using a pretty print function. It works with stream and with block selection.
- Ctrl + Alt + Up/Down
The feature is useful when you need a block of lines, but do not want to overwrite keyboard content. You can move selected block of lines up or down. If no selection is done, the current line is moved.
- Ctrl + D
Sometimes it is much faster to duplicate the current line and adjust content than typing it once more.
The ABAP editor supports different kinds of word/line selection:
- Ctrl + Left/Right to select till word borders
- Ctrl + Left Mouse Click on a word
- Left Mouse Click on number margin to select lines
- Ctrl + I, Ctrl + Shift + I
In many cases when you want to do a simple text search you can achieve it without calling Find dialog and losing your editing context. Just start Incremental Search mode by pressing Ctrl + I and start typing.
- Press Ctrl + I to search for next occurrence
- Ctrl + Shift + I for search of the previous occurrence
- Backspace to correct your input
- Esc to exit incremental search mode
- See editor status bar for current search query
Code Hints were designed as proactive, not intrusive alternative for standard code completing list called by Ctrl + Space. It shall be very prudent to resources, but same time giving the user a way to speed up typing.
Code Hints may suggest syntactical construction, variables and code templates (somewhen before it was also auto correction suggestions in). The editor collects all fitting suggestions, rank them by type, usage count, input method and shows you the best hit. Code Templates are always won against keywords and variables, keywords (syntactical constructions) win against keywords.
Suggest Non-Keywords from the Text
The mentioned option is OFF by default (for some reason), but it brings a lot of value. “Non-Keywords from the Text” means in ABAP scope – your variables. So, if you enable the feature, you get your variables suggested by code hints (code completion list will show them independently of the flag) and this may save some typing effort especially if you are using “self-explaining”, meaningful variable names ;). Especially the flag would be useful, if you are forced to work on systems below SAP_BASIS 7.02, where full blown code completion is not enabled, and this flag and code hints the only “completion” you may get :).
Code Hint Color
When you using Code Hints, you see that it sometimes has light, standard background:
And sometimes it has inverted, dark background:
Have you ever asked yourself: what does this crap mean?
The secret meaning of the Code Hint background color:
ADT (ABAP in Eclipse) has also emulated implementation of Code Hints in some way, but the “secret knowledge” was lost, and the only inverted color is left :
Why my code highlighted differently when I paste it in an email?
You may wonder, why when you copy/paste your code from the editor into email (or any other editor supporting HTML formatting) syntax highlighting of the ABAP code looks different from the one you had in ABAP editor.
The reason here – different highlighters that used for rendering of text in both cases. The one in ABAP editor, it is a highly sophisticated one, which works in respect of ABAP grammar available on ABAP system you work (and require fully qualified input), and the second one, is rudimental highlighter, which works based on keywords and can highlight even invalid code, but is not in sync to actual ABAP grammar. On the example above we see that keyword based parser has not highlighted OCCURRENCE, REGEX RESULTS (while in time the editor was written, these keywords were not yet known J ) but has highlighted the VALUE in the second sentence, that has been marked as an error by ABAP parser.
You would not be able to get code pasted into an email, always looking as one in ABAP editor, but you can extend syntax scheme of the keyword based parser, by simply adding missing keywords into abap_spec.xml file in ABAP Editor settings directory to get missing keywords highlighted:
“%APPDATA%SAPSAP GUIABAP Editor” -> abap_spec.xml
… <TextType id="52" name="Keywords" ...> <Keywords> … <Keyword text="regex"/> <Keyword text="occurrence"/> <Keyword text="results"/> … </Keywords> </TextType> …
And get them also highlighted:
Display list of assigned ABAP Editor keyboard shortcuts
The easiest way to get an overview of currently assigned keyboard shortcuts in your instance of the ABAP editor is a preview of the keyboard mapping scheme file in Internet Explorer (not in Chrome, you need a browser supporting XSLT transformations).
Paste the following path in your Windows Explorer:
%APPDATA%SAPSAP GUIABAP Editorkeymap.xml
If you are lucky and your default browser is still IE, you will get something like this:
The list is searchable and contains all assigned keyboard shortcuts and command IDs and descriptions for all installed keyboard mapping schemes.
If the command is not on the list, it means, there is no shortcut assigned to it.
Most of you know that it is possible to change the color of syntax elements shown in ABAP Editor. Using that “Settings” button in the status bar. But most of you a bit lazy to change that consistently and create new color scheme (Dark one for example) in a way that you can use and share with others.
But there are guys who did it. Check this GitHub repository if you want to get alternative color schemes for ABAP editor.
And if you have your own one – share it with the community!
Probably everyone used the ABAP Editor has also used Code Templates, speeding up typing of routine code. And definitely, there were some cases when you would like to have a new code template for some code block and have not found it among the standard SAP pre-installed ones (for example METHOD/ENDMETHOD.).
Feel free to suggest new code templates or request update of existing.
Let us make a world of ABAP Programming better