From 12b93deb1e8c01c83224965bab9667e0dc022c3b Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Sun, 6 Apr 2025 10:06:16 +0200 Subject: [PATCH 1/2] Debug info: Fix exit list in standalone (#7188) --- .../zcl_abapgit_gui_page_debuginfo.clas.abap | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/ui/pages/zcl_abapgit_gui_page_debuginfo.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_debuginfo.clas.abap index b320ba6a1..e230458f3 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_debuginfo.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_debuginfo.clas.abap @@ -62,6 +62,10 @@ CLASS zcl_abapgit_gui_page_debuginfo DEFINITION !iv_obj_name TYPE csequence RETURNING VALUE(rv_html) TYPE string . + METHODS resolve_exit_include + CHANGING + !cv_clsname TYPE seoclsname + !ct_source TYPE string_table. ENDCLASS. @@ -187,10 +191,16 @@ CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION. " Standalone version lt_source = zcl_abapgit_factory=>get_sap_report( )->read_report( c_exit_standalone ). IF sy-subrc = 0. + resolve_exit_include( + CHANGING + cv_clsname = ls_class_key-clsname + ct_source = lt_source ). ri_html->add( |
User exits are active (include { get_jump_object( iv_obj_type = 'PROG' iv_obj_name = c_exit_standalone ) } found)

| ). - ri_html->add( render_exit_info_methods( lt_source ) ). + ri_html->add( render_exit_info_methods( + it_source = lt_source + iv_clsname = to_upper( ls_class_key-clsname ) ) ). ELSE. ri_html->add( |
No user exits implemented (include { c_exit_standalone } not found)

| ). ENDIF. @@ -410,6 +420,32 @@ CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION. ENDMETHOD. + METHOD resolve_exit_include. + + DATA lv_include TYPE progname. + + cv_clsname = c_exit_class. + + DO. + FIND REGEX 'CLASS\s+(.*)\s+DEFINITION' IN TABLE ct_source SUBMATCHES cv_clsname IGNORING CASE. + IF sy-subrc = 0. + RETURN. + ENDIF. + FIND REGEX 'INCLUDE\s+(.*)\s*\.' IN TABLE ct_source SUBMATCHES lv_include IGNORING CASE. + IF sy-subrc = 0. + TRY. + ct_source = zcl_abapgit_factory=>get_sap_report( )->read_report( lv_include ). + CATCH zcx_abapgit_exception. + RETURN. " rely on original include + ENDTRY. + ELSE. + RETURN. + ENDIF. + ENDDO. + + ENDMETHOD. + + METHOD zif_abapgit_gui_event_handler~on_event. DATA: From 51d115a1c13a0f9edd6abf2e79bdb947c23832f1 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Sun, 6 Apr 2025 10:19:21 +0200 Subject: [PATCH 2/2] Add style option for HTML rendering (#7190) --- src/ui/core/zcl_abapgit_html.clas.abap | 97 ++++++++++++++++---------- src/ui/core/zif_abapgit_html.intf.abap | 10 ++- 2 files changed, 68 insertions(+), 39 deletions(-) diff --git a/src/ui/core/zcl_abapgit_html.clas.abap b/src/ui/core/zcl_abapgit_html.clas.abap index f0936f9d6..4dddc74b5 100644 --- a/src/ui/core/zcl_abapgit_html.clas.abap +++ b/src/ui/core/zcl_abapgit_html.clas.abap @@ -1,14 +1,15 @@ CLASS zcl_abapgit_html DEFINITION PUBLIC - CREATE PUBLIC . + CREATE PUBLIC. PUBLIC SECTION. - INTERFACES zif_abapgit_html . + INTERFACES zif_abapgit_html. CONSTANTS c_indent_size TYPE i VALUE 2 ##NO_TEXT. - CLASS-METHODS class_constructor . + CLASS-METHODS class_constructor. + CLASS-METHODS create IMPORTING !iv_initial_chunk TYPE any OPTIONAL @@ -22,21 +23,25 @@ CLASS zcl_abapgit_html DEFINITION !iv_class TYPE string OPTIONAL !iv_onclick TYPE string OPTIONAL RETURNING - VALUE(rv_str) TYPE string . + VALUE(rv_str) TYPE string. + CLASS-METHODS checkbox IMPORTING iv_id TYPE string OPTIONAL iv_checked TYPE abap_bool OPTIONAL RETURNING - VALUE(rv_html) TYPE string . + VALUE(rv_html) TYPE string. + CLASS-METHODS parse_data_attr IMPORTING iv_str TYPE string OPTIONAL RETURNING - VALUE(rs_data_attr) TYPE zif_abapgit_html=>ty_data_attr . + VALUE(rs_data_attr) TYPE zif_abapgit_html=>ty_data_attr. + CLASS-METHODS set_debug_mode IMPORTING iv_mode TYPE abap_bool. + PROTECTED SECTION. PRIVATE SECTION. @@ -51,7 +56,8 @@ CLASS zcl_abapgit_html DEFINITION within_pre TYPE abap_bool, indent TYPE i, indent_str TYPE string, - END OF ty_indent_context . + END OF ty_indent_context. + TYPES: BEGIN OF ty_study_result, style_open TYPE abap_bool, @@ -67,23 +73,25 @@ CLASS zcl_abapgit_html DEFINITION openings TYPE i, closings TYPE i, singles TYPE i, - END OF ty_study_result . + END OF ty_study_result. - CLASS-DATA go_single_tags_re TYPE REF TO cl_abap_regex . - DATA mt_buffer TYPE string_table . - CLASS-DATA gv_spaces TYPE string . - CLASS-DATA gv_debug_mode TYPE abap_bool . + CLASS-DATA go_single_tags_re TYPE REF TO cl_abap_regex. + CLASS-DATA gv_spaces TYPE string. + CLASS-DATA gv_debug_mode TYPE abap_bool. + DATA mt_buffer TYPE string_table. METHODS indent_line CHANGING !cs_context TYPE ty_indent_context - !cv_line TYPE string . + !cv_line TYPE string. + METHODS study_line IMPORTING !iv_line TYPE string !is_context TYPE ty_indent_context RETURNING - VALUE(rs_result) TYPE ty_study_result . + VALUE(rs_result) TYPE ty_study_result. + ENDCLASS. @@ -495,15 +503,19 @@ CLASS zcl_abapgit_html IMPLEMENTATION. METHOD zif_abapgit_html~div. + zif_abapgit_html~wrap( - iv_tag = 'div' - iv_content = iv_content - ii_content = ii_content + iv_tag = 'div' + iv_content = iv_content + ii_content = ii_content is_data_attr = is_data_attr it_data_attrs = it_data_attrs - iv_id = iv_id - iv_class = iv_class ). + iv_id = iv_id + iv_style = iv_style + iv_class = iv_class ). + ri_self = me. + ENDMETHOD. @@ -554,32 +566,40 @@ CLASS zcl_abapgit_html IMPLEMENTATION. METHOD zif_abapgit_html~td. + zif_abapgit_html~wrap( iv_format_single_line = iv_format_single_line - iv_tag = 'td' - iv_content = iv_content - ii_content = ii_content - iv_id = iv_id - iv_class = iv_class - is_data_attr = is_data_attr - it_data_attrs = it_data_attrs - iv_hint = iv_hint ). + iv_tag = 'td' + iv_content = iv_content + ii_content = ii_content + iv_id = iv_id + iv_class = iv_class + iv_style = iv_style + is_data_attr = is_data_attr + it_data_attrs = it_data_attrs + iv_hint = iv_hint ). + ri_self = me. + ENDMETHOD. METHOD zif_abapgit_html~th. + zif_abapgit_html~wrap( iv_format_single_line = iv_format_single_line - iv_tag = 'th' - iv_content = iv_content - ii_content = ii_content - iv_id = iv_id - iv_class = iv_class - is_data_attr = is_data_attr - it_data_attrs = it_data_attrs - iv_hint = iv_hint ). + iv_tag = 'th' + iv_content = iv_content + ii_content = ii_content + iv_id = iv_id + iv_class = iv_class + iv_style = iv_style + is_data_attr = is_data_attr + it_data_attrs = it_data_attrs + iv_hint = iv_hint ). + ri_self = me. + ENDMETHOD. @@ -590,6 +610,7 @@ CLASS zcl_abapgit_html IMPLEMENTATION. DATA ls_data_attr LIKE LINE OF it_data_attrs. DATA: lv_class TYPE string, + lv_style TYPE string, lv_id TYPE string, lv_data_attr TYPE string, lv_title TYPE string. @@ -602,6 +623,10 @@ CLASS zcl_abapgit_html IMPLEMENTATION. lv_class = | class="{ iv_class }"|. ENDIF. + IF iv_style IS NOT INITIAL. + lv_style = | style="{ iv_style }"|. + ENDIF. + IF iv_hint IS NOT INITIAL. lv_title = | title="{ iv_hint }"|. ENDIF. @@ -614,7 +639,7 @@ CLASS zcl_abapgit_html IMPLEMENTATION. lv_data_attr = lv_data_attr && | data-{ ls_data_attr-name }="{ ls_data_attr-value }"|. ENDLOOP. - lv_open_tag = |<{ iv_tag }{ lv_id }{ lv_class }{ lv_data_attr }{ lv_title }>|. + lv_open_tag = |<{ iv_tag }{ lv_id }{ lv_class }{ lv_style }{ lv_data_attr }{ lv_title }>|. lv_close_tag = ||. IF ii_content IS NOT BOUND AND iv_content IS INITIAL. diff --git a/src/ui/core/zif_abapgit_html.intf.abap b/src/ui/core/zif_abapgit_html.intf.abap index 4b15fe4da..9d1b14d2e 100644 --- a/src/ui/core/zif_abapgit_html.intf.abap +++ b/src/ui/core/zif_abapgit_html.intf.abap @@ -111,6 +111,7 @@ INTERFACE zif_abapgit_html PUBLIC. !iv_id TYPE string OPTIONAL !iv_class TYPE string OPTIONAL !iv_hint TYPE string OPTIONAL + !iv_style TYPE string OPTIONAL !iv_format_single_line TYPE abap_bool DEFAULT abap_false !is_data_attr TYPE ty_data_attr OPTIONAL !it_data_attrs TYPE ty_data_attrs OPTIONAL @@ -124,10 +125,11 @@ INTERFACE zif_abapgit_html PUBLIC. !iv_id TYPE string OPTIONAL !iv_class TYPE string OPTIONAL !iv_hint TYPE string OPTIONAL + !iv_style TYPE string OPTIONAL !iv_format_single_line TYPE abap_bool DEFAULT abap_true !is_data_attr TYPE ty_data_attr OPTIONAL !it_data_attrs TYPE ty_data_attrs OPTIONAL - PREFERRED PARAMETER iv_content + PREFERRED PARAMETER iv_content RETURNING VALUE(ri_self) TYPE REF TO zif_abapgit_html. @@ -138,10 +140,11 @@ INTERFACE zif_abapgit_html PUBLIC. !iv_id TYPE string OPTIONAL !iv_class TYPE string OPTIONAL !iv_hint TYPE string OPTIONAL + !iv_style TYPE string OPTIONAL !iv_format_single_line TYPE abap_bool DEFAULT abap_true !is_data_attr TYPE ty_data_attr OPTIONAL !it_data_attrs TYPE ty_data_attrs OPTIONAL - PREFERRED PARAMETER iv_content + PREFERRED PARAMETER iv_content RETURNING VALUE(ri_self) TYPE REF TO zif_abapgit_html. @@ -151,9 +154,10 @@ INTERFACE zif_abapgit_html PUBLIC. !ii_content TYPE REF TO zif_abapgit_html OPTIONAL !iv_id TYPE string OPTIONAL !iv_class TYPE string OPTIONAL + !iv_style TYPE string OPTIONAL !is_data_attr TYPE ty_data_attr OPTIONAL !it_data_attrs TYPE ty_data_attrs OPTIONAL - PREFERRED PARAMETER iv_content + PREFERRED PARAMETER iv_content RETURNING VALUE(ri_self) TYPE REF TO zif_abapgit_html.