{"ref":"capability:abap-code-formatting","page":"/capabilities/abap-code-formatting","json":"/capabilities/abap-code-formatting.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"abap-code-formatting","name":"Code formatting","domain":"developer-experience","ecosystems":["abap"],"universal":false,"description":"Making source match one layout — indentation, keyword case, the shape of a statement block — by rewriting it rather than by reporting on it. Distinct from [static analysis](capability:abap-static-analysis), which says what is wrong and leaves the source where it is.","short":"Rewriting source to match one layout","core_coverage":{"state":"core-and-community","assessed_at":"2026-09-18","what_core_does":"SAP ships the formatter inside the editor. In ABAP Development Tools it is the source formatter, reached from Source Code > Format for a whole source or Source Code > Format Block for a selection, and each ABAP project takes the formatting options of the ABAP Workbench, which a developer changes under ABAP Development > Editors > Source Code Editors > ABAP Formatter. In the ABAP Editor the same tool is the Pretty Printer: it indents statement blocks and converts keyword case, and what it produces is what the database keeps once the object is saved.","where_it_stops":"At the object the developer has open. Both pages describe formatting one source, or a block inside one, from an editor it is loaded into, so bringing a package written before the settings into line with them is one object and one save at a time.","sources":[{"url":"https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/4e/c799106e391014adc9fffe4e204223/content.htm?no_cache=true","title":"SAP Help — Formatting ABAP Source Code","checked":"2026-09-18","quote":"for each ABAP project the formatting options of the ABAP Workbench are applied"},{"url":"https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/c1/79ecc5f23a11d295b700a0c94260a5/content.htm?no_cache=true","title":"SAP Help — Formatting Source Code, ABAP Editor","checked":"2026-09-18","quote":"When you save the changes, your ABAP source code is stored in the database with the layout produced by the Pretty Printer"}],"relationship":"unassessed","note":"Neither page says anything about formatting more than one object in one pass, so what SAP intends beyond the editor has not been assessed.","community_adds":"[abapPretty](artifact:marcellourbani-abappretty) drives the same formatting from a command line over ADT, across every supported include under a base object, on a transport. [ABAP FS](artifact:marcellourbani-vscode-abap-remote-fs) runs SAP's ABAP Cleaner from VS Code, and the [abap2UI5 playground](artifact:abap2ui5-playground) formats every open file in the browser with abaplint's pretty printer."},"drafted_with_ai":true,"history":[{"date":"2026-10-26","field":"core_coverage.community_adds","from":"[abapPretty](artifact:marcellourbani-abappretty) drives the same formatting from a command line over ADT, across every supported include under a base object, on a transport.","to":"Adds ABAP FS (ABAP Cleaner from VS Code) and the abap2UI5 playground (abaplint's pretty printer over every open file in the browser).","reason":"Reassessed against the graph (check:capabilities): the abap2UI5 playground provides this capability and the text never named it; ABAP FS named for the kind of VS Code integration."}]},"sap_delivery":{"door":"abap","all":null,"by_flavor":{"standard-abap":null,"abap-cloud":null}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:marcellourbani-vscode-abap-remote-fs","name":"ABAP remote filesystem","json":"/artifacts/marcellourbani-vscode-abap-remote-fs.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:abap2ui5-playground","name":"abap2UI5 Playground","json":"/artifacts/abap2ui5-playground.json","ecosystem":"abap","origin_ring":"community-org"},{"ref":"artifact:marcellourbani-abappretty","name":"abapPretty","json":"/artifacts/marcellourbani-abappretty.json","ecosystem":"abap","origin_ring":"independent"}],"samples":[],"explained_by":[],"normative_context":[]}}