mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
use RETURNING instead of EXPORTING (#2533)
* READ_FILE use returning instead of exporting * PARSE_LINE, use returning instead of exporting
This commit is contained in:
parent
f9318305e9
commit
5b6cc04159
|
@ -80,23 +80,27 @@ CLASS zcl_abapgit_objects_files DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_file_signatures_tt .
|
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_file_signatures_tt .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
METHODS read_file
|
||||||
|
IMPORTING
|
||||||
|
!iv_filename TYPE string
|
||||||
|
!iv_error TYPE abap_bool DEFAULT abap_true
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_data) TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS filename
|
||||||
|
IMPORTING
|
||||||
|
!iv_extra TYPE clike OPTIONAL
|
||||||
|
!iv_ext TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_filename) TYPE string .
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item,
|
|
||||||
mt_accessed_files TYPE zif_abapgit_definitions=>ty_file_signatures_tt,
|
|
||||||
mt_files TYPE zif_abapgit_definitions=>ty_files_tt,
|
|
||||||
mv_path TYPE string.
|
|
||||||
|
|
||||||
METHODS:
|
|
||||||
read_file
|
|
||||||
IMPORTING iv_filename TYPE string
|
|
||||||
iv_error TYPE abap_bool DEFAULT abap_true
|
|
||||||
EXPORTING ev_data TYPE xstring
|
|
||||||
RAISING zcx_abapgit_exception,
|
|
||||||
filename
|
|
||||||
IMPORTING iv_extra TYPE clike OPTIONAL
|
|
||||||
iv_ext TYPE string
|
|
||||||
RETURNING VALUE(rv_filename) TYPE string.
|
|
||||||
|
|
||||||
|
DATA ms_item TYPE zif_abapgit_definitions=>ty_item .
|
||||||
|
DATA mt_accessed_files TYPE zif_abapgit_definitions=>ty_file_signatures_tt .
|
||||||
|
DATA mt_files TYPE zif_abapgit_definitions=>ty_files_tt .
|
||||||
|
DATA mv_path TYPE string .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -243,9 +247,8 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION.
|
||||||
lv_filename = filename( iv_extra = iv_extra
|
lv_filename = filename( iv_extra = iv_extra
|
||||||
iv_ext = 'abap' ). "#EC NOTEXT
|
iv_ext = 'abap' ). "#EC NOTEXT
|
||||||
|
|
||||||
read_file( EXPORTING iv_filename = lv_filename
|
lv_data = read_file( iv_filename = lv_filename
|
||||||
iv_error = iv_error
|
iv_error = iv_error ).
|
||||||
IMPORTING ev_data = lv_data ).
|
|
||||||
|
|
||||||
IF lv_data IS INITIAL. " Post-handling of iv_error = false
|
IF lv_data IS INITIAL. " Post-handling of iv_error = false
|
||||||
RETURN.
|
RETURN.
|
||||||
|
@ -263,7 +266,6 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION.
|
||||||
FIELD-SYMBOLS: <ls_file> LIKE LINE OF mt_files,
|
FIELD-SYMBOLS: <ls_file> LIKE LINE OF mt_files,
|
||||||
<ls_accessed> LIKE LINE OF mt_accessed_files.
|
<ls_accessed> LIKE LINE OF mt_accessed_files.
|
||||||
|
|
||||||
CLEAR ev_data.
|
|
||||||
|
|
||||||
IF mv_path IS NOT INITIAL.
|
IF mv_path IS NOT INITIAL.
|
||||||
READ TABLE mt_files ASSIGNING <ls_file> WITH KEY path = mv_path
|
READ TABLE mt_files ASSIGNING <ls_file> WITH KEY path = mv_path
|
||||||
|
@ -288,7 +290,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION.
|
||||||
MOVE-CORRESPONDING <ls_file> TO <ls_accessed>.
|
MOVE-CORRESPONDING <ls_file> TO <ls_accessed>.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ev_data = <ls_file>-data.
|
rv_data = <ls_file>-data.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -300,8 +302,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION.
|
||||||
lv_filename = filename( iv_extra = iv_extra
|
lv_filename = filename( iv_extra = iv_extra
|
||||||
iv_ext = iv_ext ).
|
iv_ext = iv_ext ).
|
||||||
|
|
||||||
read_file( EXPORTING iv_filename = lv_filename
|
rv_data = read_file( lv_filename ).
|
||||||
IMPORTING ev_data = rv_data ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -314,8 +315,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION.
|
||||||
lv_filename = filename( iv_extra = iv_extra
|
lv_filename = filename( iv_extra = iv_extra
|
||||||
iv_ext = iv_ext ). "#EC NOTEXT
|
iv_ext = iv_ext ). "#EC NOTEXT
|
||||||
|
|
||||||
read_file( EXPORTING iv_filename = lv_filename
|
lv_data = read_file( lv_filename ).
|
||||||
IMPORTING ev_data = lv_data ).
|
|
||||||
|
|
||||||
rv_string = zcl_abapgit_convert=>xstring_to_string_utf8( lv_data ).
|
rv_string = zcl_abapgit_convert=>xstring_to_string_utf8( lv_data ).
|
||||||
|
|
||||||
|
@ -331,8 +331,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION.
|
||||||
lv_filename = filename( iv_extra = iv_extra
|
lv_filename = filename( iv_extra = iv_extra
|
||||||
iv_ext = 'xml' ). "#EC NOTEXT
|
iv_ext = 'xml' ). "#EC NOTEXT
|
||||||
|
|
||||||
read_file( EXPORTING iv_filename = lv_filename
|
lv_data = read_file( lv_filename ).
|
||||||
IMPORTING ev_data = lv_data ).
|
|
||||||
|
|
||||||
lv_xml = zcl_abapgit_convert=>xstring_to_string_utf8( lv_data ).
|
lv_xml = zcl_abapgit_convert=>xstring_to_string_utf8( lv_data ).
|
||||||
|
|
||||||
|
|
|
@ -268,18 +268,17 @@ CLASS ZCL_ABAPGIT_SYNTAX_ABAP IMPLEMENTATION.
|
||||||
|
|
||||||
DATA lv_index TYPE i.
|
DATA lv_index TYPE i.
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_match> LIKE LINE OF et_matches.
|
FIELD-SYMBOLS <ls_match> LIKE LINE OF rt_matches.
|
||||||
|
|
||||||
super->parse_line( EXPORTING iv_line = iv_line
|
rt_matches = super->parse_line( iv_line ).
|
||||||
IMPORTING et_matches = et_matches ).
|
|
||||||
|
|
||||||
" Remove non-keywords
|
" Remove non-keywords
|
||||||
LOOP AT et_matches ASSIGNING <ls_match> WHERE token = c_token-keyword.
|
LOOP AT rt_matches ASSIGNING <ls_match> WHERE token = c_token-keyword.
|
||||||
lv_index = sy-tabix.
|
lv_index = sy-tabix.
|
||||||
IF abap_false = is_keyword( substring( val = iv_line
|
IF abap_false = is_keyword( substring( val = iv_line
|
||||||
off = <ls_match>-offset
|
off = <ls_match>-offset
|
||||||
len = <ls_match>-length ) ).
|
len = <ls_match>-length ) ).
|
||||||
DELETE et_matches INDEX lv_index.
|
DELETE rt_matches INDEX lv_index.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
|
@ -24,10 +24,8 @@ CLASS zcl_abapgit_syntax_highlighter DEFINITION
|
||||||
length TYPE i, " Length of the string that should be formatted
|
length TYPE i, " Length of the string that should be formatted
|
||||||
text_tag TYPE string, " Type of text tag
|
text_tag TYPE string, " Type of text tag
|
||||||
END OF ty_match .
|
END OF ty_match .
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_match_tt TYPE STANDARD TABLE OF ty_match WITH DEFAULT KEY .
|
ty_match_tt TYPE STANDARD TABLE OF ty_match WITH DEFAULT KEY .
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_rule,
|
BEGIN OF ty_rule,
|
||||||
regex TYPE REF TO cl_abap_regex,
|
regex TYPE REF TO cl_abap_regex,
|
||||||
|
@ -36,38 +34,44 @@ CLASS zcl_abapgit_syntax_highlighter DEFINITION
|
||||||
relevant_submatch TYPE i,
|
relevant_submatch TYPE i,
|
||||||
END OF ty_rule .
|
END OF ty_rule .
|
||||||
|
|
||||||
CONSTANTS c_token_none TYPE c VALUE '.'.
|
CONSTANTS c_token_none TYPE c VALUE '.' ##NO_TEXT.
|
||||||
|
DATA:
|
||||||
DATA mt_rules TYPE STANDARD TABLE OF ty_rule.
|
mt_rules TYPE STANDARD TABLE OF ty_rule .
|
||||||
|
|
||||||
METHODS add_rule
|
METHODS add_rule
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_regex TYPE string
|
!iv_regex TYPE string
|
||||||
iv_token TYPE c
|
!iv_token TYPE c
|
||||||
iv_style TYPE string
|
!iv_style TYPE string
|
||||||
iv_submatch TYPE i OPTIONAL.
|
!iv_submatch TYPE i OPTIONAL .
|
||||||
|
|
||||||
METHODS parse_line
|
METHODS parse_line
|
||||||
IMPORTING iv_line TYPE string
|
IMPORTING
|
||||||
EXPORTING et_matches TYPE ty_match_tt.
|
!iv_line TYPE string
|
||||||
|
RETURNING
|
||||||
METHODS order_matches ABSTRACT
|
VALUE(rt_matches) TYPE ty_match_tt .
|
||||||
IMPORTING iv_line TYPE string
|
METHODS order_matches
|
||||||
CHANGING ct_matches TYPE ty_match_tt.
|
ABSTRACT
|
||||||
|
IMPORTING
|
||||||
|
!iv_line TYPE string
|
||||||
|
CHANGING
|
||||||
|
!ct_matches TYPE ty_match_tt .
|
||||||
METHODS extend_matches
|
METHODS extend_matches
|
||||||
IMPORTING iv_line TYPE string
|
IMPORTING
|
||||||
CHANGING ct_matches TYPE ty_match_tt.
|
!iv_line TYPE string
|
||||||
|
CHANGING
|
||||||
|
!ct_matches TYPE ty_match_tt .
|
||||||
METHODS format_line
|
METHODS format_line
|
||||||
IMPORTING iv_line TYPE string
|
IMPORTING
|
||||||
it_matches TYPE ty_match_tt
|
!iv_line TYPE string
|
||||||
RETURNING VALUE(rv_line) TYPE string.
|
!it_matches TYPE ty_match_tt
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_line) TYPE string .
|
||||||
METHODS apply_style
|
METHODS apply_style
|
||||||
IMPORTING iv_line TYPE string
|
IMPORTING
|
||||||
iv_class TYPE string
|
!iv_line TYPE string
|
||||||
RETURNING VALUE(rv_line) TYPE string.
|
!iv_class TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_line) TYPE string .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -194,8 +198,6 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION.
|
||||||
<ls_submatch> LIKE LINE OF <ls_result>-submatches.
|
<ls_submatch> LIKE LINE OF <ls_result>-submatches.
|
||||||
|
|
||||||
|
|
||||||
CLEAR et_matches.
|
|
||||||
|
|
||||||
" Process syntax-dependent regex table and find all matches
|
" Process syntax-dependent regex table and find all matches
|
||||||
LOOP AT mt_rules ASSIGNING <ls_regex>.
|
LOOP AT mt_rules ASSIGNING <ls_regex>.
|
||||||
lo_regex = <ls_regex>-regex.
|
lo_regex = <ls_regex>-regex.
|
||||||
|
@ -209,7 +211,7 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION.
|
||||||
ls_match-token = <ls_regex>-token.
|
ls_match-token = <ls_regex>-token.
|
||||||
ls_match-offset = <ls_result>-offset.
|
ls_match-offset = <ls_result>-offset.
|
||||||
ls_match-length = <ls_result>-length.
|
ls_match-length = <ls_result>-length.
|
||||||
APPEND ls_match TO et_matches.
|
APPEND ls_match TO rt_matches.
|
||||||
ELSE.
|
ELSE.
|
||||||
READ TABLE <ls_result>-submatches ASSIGNING <ls_submatch> INDEX <ls_regex>-relevant_submatch.
|
READ TABLE <ls_result>-submatches ASSIGNING <ls_submatch> INDEX <ls_regex>-relevant_submatch.
|
||||||
"submatch might be empty if only discarted parts matched
|
"submatch might be empty if only discarted parts matched
|
||||||
|
@ -217,7 +219,7 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION.
|
||||||
ls_match-token = <ls_regex>-token.
|
ls_match-token = <ls_regex>-token.
|
||||||
ls_match-offset = <ls_submatch>-offset.
|
ls_match-offset = <ls_submatch>-offset.
|
||||||
ls_match-length = <ls_submatch>-length.
|
ls_match-length = <ls_submatch>-length.
|
||||||
APPEND ls_match TO et_matches.
|
APPEND ls_match TO rt_matches.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
@ -234,8 +236,7 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
me->parse_line( EXPORTING iv_line = iv_line
|
lt_matches = me->parse_line( iv_line ).
|
||||||
IMPORTING et_matches = lt_matches ).
|
|
||||||
|
|
||||||
me->order_matches( EXPORTING iv_line = iv_line
|
me->order_matches( EXPORTING iv_line = iv_line
|
||||||
CHANGING ct_matches = lt_matches ).
|
CHANGING ct_matches = lt_matches ).
|
||||||
|
|
|
@ -71,8 +71,7 @@ CLASS ltcl_syntax_cases IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
lo_syntax = zcl_abapgit_syntax_highlighter=>create( iv_filename ).
|
lo_syntax = zcl_abapgit_syntax_highlighter=>create( iv_filename ).
|
||||||
lo_syntax->parse_line( EXPORTING iv_line = iv_line
|
lt_matches_act = lo_syntax->parse_line( iv_line ).
|
||||||
IMPORTING et_matches = lt_matches_act ).
|
|
||||||
|
|
||||||
SORT lt_matches_act BY offset.
|
SORT lt_matches_act BY offset.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user