If you don't know how to enhance the pretty printer function to call this code then you probably shouldn't be messing with it.
Note that after enhancing the PRETTY_PRINTER function SAP will dump any open ABAP source that other programmers may be working on. Best to do this early or late in the day or you will hear a lot of complaining... :-)
*-------------------------------------------------------------------------- * Developer: Peter Chapman * Created: Thursday, 15. July 2010 * Modified: Thursday, 12. August 2010 *----------------------------------------------------------------------- function zpretty_printer. *"---------------------------------------------------------------------- *"*"Local Interface: *" CHANGING *" REFERENCE(CT_CODE) TYPE SWBSE_MAX_LINE_TAB *"---------------------------------------------------------------------- *-- Indent type statements nicely during pretty print data zf type i. data zi type i. data lv_date type string. data lt_days type table of casdayattr. data zs(29). field-symbols:type casdayattr, type swbse_max_line. check sy-uname = 'PCHAPMAN'. *-- make sure it is a program find first occurrence of regex '^(function|method|report|class)' in table ct_code match line zi. check zi > 0. *-- Handle coding block call function 'DAY_ATTRIBUTES_GET' tables day_attributes = lt_days. read table lt_days index 1 assigning
. find first occurrence of regex 'Peter Chapman' in table ct_code match line zi. if sy-subrc <> 0 or zi > 3. insert initial line into ct_code index 1 assigning .
= '*-----------------------------------------------------------------------'. insert initial line into ct_code index 2 assigning
.
= '* Developer: Peter Chapman'. insert initial line into ct_code index 3 assigning
.
= '* Created:'.
+20 =
-day_string. insert initial line into ct_code index 4 assigning .
= '* Modified:'.
+20 =
-day_string. insert initial line into ct_code index 5 assigning .
= '*-----------------------------------------------------------------------'. insert initial line into ct_code index 6 assigning
. endif. find first occurrence of regex 'Modified' in table ct_code match line zi. if sy-subrc = 0 and zi < 6. read table ct_code index zi assigning
.
= '* Modified:'.
+20 =
-day_string. endif. loop at ct_code assigning . clear: zf, zi. *-- Handle TYPE indentation find first occurrence of regex '\btype\b' in
match offset zf. if zf > 0 and zf < 29. zi = 29 - zf.
+29 =
+zf.
+zf(zi) = zs. modify ct_code from
. endif. *-- Handle = indentation find first occurrence of regex '^\s*\S*\s*(=)[^=]*$' in
. " start of line, blanks, alphas, blanks = no more \= end of line if sy-subrc = 0. find first occurrence of regex '=' in
match offset zf. if zf > 0 and zf < 29. zi = 29 - zf.
+29 =
+zf.
+zf(zi) = zs. endif. zs = 5. endif. endloop. endfunction.