Skip to content

Commit ed3a4d0

Browse files
committed
chore: hygiene batch — gitattributes, CoC, workflows, lint rules, title fix
- .gitattributes (LF), CODE_OF_CONDUCT.md, LICENSE holder -> abap2UI5 - workflows: concurrency groups + npm cache - abaplint: enable exporting + omit_parameter_name (auto-fixed findings); reindent abaplint.jsonc to 2-space (comments preserved) - fix the 'Number of Rows' preview title: remove the double space, drop the inconsistent parentheses, collapse the 3 duplicated && builds into one |Number of Rows: { lines( ... ) }| template abaplint standard: 0 issues. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MEGSbezJEiFoFubnrqATiM
1 parent 35bc3d2 commit ed3a4d0

10 files changed

Lines changed: 222 additions & 68 deletions

.gitattributes

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Normalize line endings to LF for all text files (abapGit + tooling expect LF)
2+
* text=auto eol=lf
3+
*.abap text eol=lf
4+
*.xml text eol=lf
5+
*.json text eol=lf
6+
*.jsonc text eol=lf
7+
*.md text eol=lf
8+
*.mjs text eol=lf
9+
*.js text eol=lf
10+
*.yaml text eol=lf
11+
*.yml text eol=lf

.github/workflows/ABAP_CLOUD.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ on:
88
permissions:
99
contents: read
1010

11+
concurrency:
12+
group: ABAP_CLOUD-${{ github.ref }}
13+
cancel-in-progress: true
14+
1115
jobs:
1216
ABAP_CLOUD:
1317
runs-on: ubuntu-latest
@@ -17,5 +21,6 @@ jobs:
1721
- uses: actions/setup-node@v5
1822
with:
1923
node-version: 22
24+
cache: 'npm'
2025
- run: npm ci
2126
- run: npx abaplint .github/abaplint/abap_cloud.jsonc

.github/workflows/ABAP_STANDARD.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ on:
88
permissions:
99
contents: read
1010

11+
concurrency:
12+
group: ABAP_STANDARD-${{ github.ref }}
13+
cancel-in-progress: true
14+
1115
jobs:
1216
ABAP_STANDARD:
1317
runs-on: ubuntu-latest
@@ -17,5 +21,6 @@ jobs:
1721
- uses: actions/setup-node@v5
1822
with:
1923
node-version: 22
24+
cache: 'npm'
2025
- run: npm ci
2126
- run: npx abaplint ./abaplint.jsonc

.github/workflows/rename_test.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ on:
88
permissions:
99
contents: read
1010

11+
concurrency:
12+
group: rename_test-${{ github.ref }}
13+
cancel-in-progress: true
14+
1115
jobs:
1216
rename_test:
1317
runs-on: ubuntu-latest
@@ -17,5 +21,6 @@ jobs:
1721
- uses: actions/setup-node@v5
1822
with:
1923
node-version: 22
24+
cache: 'npm'
2025
- run: npm ci
2126
- run: npm run rename

CODE_OF_CONDUCT.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the
26+
overall community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement at
63+
.
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series
86+
of actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or
93+
permanent ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within
113+
the community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.0, available at
119+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120+
121+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
122+
enforcement ladder](https://github.com/mozilla/diversity).
123+
124+
[homepage]: https://www.contributor-covenant.org
125+
126+
For answers to common questions about this code of conduct, see the FAQ at
127+
https://www.contributor-covenant.org/faq. Translations are available at
128+
https://www.contributor-covenant.org/translations.

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2024 oblomov
3+
Copyright (c) 2024 abap2UI5
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

abaplint.jsonc

Lines changed: 52 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3,56 +3,58 @@
33
"files": "/src/**/*.*"
44
},
55
"dependencies": [
6-
{
7-
"url": "https://github.com/abapedia/steampunk-2305-api-intersect-702",
8-
"folder": "/deps",
9-
"files": "/src/**/*.*"
10-
},
11-
{
12-
"url": "https://github.com/abap2UI5/abap2UI5",
13-
"folder": "/abap2UI5",
14-
"files": "/src/**/*.*"
15-
},
16-
{
17-
"url": "https://github.com/abap2UI5-addons/popups",
18-
"folder": "/popups",
19-
"files": "/src/**/*.*"
6+
{
7+
"url": "https://github.com/abapedia/steampunk-2305-api-intersect-702",
8+
"folder": "/deps",
9+
"files": "/src/**/*.*"
10+
},
11+
{
12+
"url": "https://github.com/abap2UI5/abap2UI5",
13+
"folder": "/abap2UI5",
14+
"files": "/src/**/*.*"
15+
},
16+
{
17+
"url": "https://github.com/abap2UI5-addons/popups",
18+
"folder": "/popups",
19+
"files": "/src/**/*.*"
20+
},
21+
{
22+
"url": "https://github.com/abap2UI5-addons/custom-controls",
23+
"folder": "/customcontrols",
24+
"files": "/src/**/*.*"
25+
}
26+
],
27+
"syntax": {
28+
"version": "v750",
29+
"errorNamespace": "^(Z|Y|LCL_|TY_|LIF_)"
2030
},
21-
{
22-
"url": "https://github.com/abap2UI5-addons/custom-controls",
23-
"folder": "/customcontrols",
24-
"files": "/src/**/*.*"
31+
"rules": {
32+
"downport": true,
33+
"begin_end_names": true,
34+
"check_ddic": true,
35+
"check_include": true,
36+
// the two excluded test class includes contain test doubles for standard
37+
// APIs (cl_sql_statement, if_dd_sobject, if_dd_sobject_util) that are not
38+
// part of the dependency stubs, so syntax resolution fails only there
39+
"check_syntax": {
40+
"exclude": [
41+
"zcl_2ui5_native_sql_console\\.clas\\.testclasses\\.abap",
42+
"zcl_association_processor\\.clas\\.testclasses\\.abap"
43+
]
44+
},
45+
"global_class": true,
46+
"definitions_top": false,
47+
"implement_methods": true,
48+
"method_implemented_twice": true,
49+
"parser_error": true,
50+
"superclass_final": {
51+
"exclude": [
52+
"zcl_2ui5_native_sql_console\\.clas\\.testclasses\\.abap"
53+
]
54+
},
55+
"unknown_types": true,
56+
"xml_consistency": true,
57+
"exporting": true,
58+
"omit_parameter_name": true
2559
}
26-
],
27-
"syntax": {
28-
"version": "v750",
29-
"errorNamespace": "^(Z|Y|LCL_|TY_|LIF_)"
30-
},
31-
"rules": {
32-
"downport": true,
33-
"begin_end_names": true,
34-
"check_ddic": true,
35-
"check_include": true,
36-
// the two excluded test class includes contain test doubles for standard
37-
// APIs (cl_sql_statement, if_dd_sobject, if_dd_sobject_util) that are not
38-
// part of the dependency stubs, so syntax resolution fails only there
39-
"check_syntax": {
40-
"exclude": [
41-
"zcl_2ui5_native_sql_console\\.clas\\.testclasses\\.abap",
42-
"zcl_association_processor\\.clas\\.testclasses\\.abap"
43-
]
44-
},
45-
"global_class": true,
46-
"definitions_top": false,
47-
"implement_methods": true,
48-
"method_implemented_twice": true,
49-
"parser_error": true,
50-
"superclass_final": {
51-
"exclude": [
52-
"zcl_2ui5_native_sql_console\\.clas\\.testclasses\\.abap"
53-
]
54-
},
55-
"unknown_types": true,
56-
"xml_consistency": true
57-
}
5860
}

src/abap/z2ui5_sql_cl_app_01.clas.abap

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
230230
CLEAR ms_draft-s_preview-tab.
231231

232232
IF ls_entry-result_data IS NOT INITIAL.
233-
lr_preview = z2ui5_sql_cl_context=>xml_srtti_parse( rtti_data = ls_entry-result_data ).
233+
lr_preview = z2ui5_sql_cl_context=>xml_srtti_parse( ls_entry-result_data ).
234234

235235
FIELD-SYMBOLS <any> TYPE any.
236236
ASSIGN lr_preview->('title') TO <any>.
@@ -325,7 +325,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
325325
ASSIGN ms_draft-s_preview-tab_backup->* TO <tab2>.
326326
<tab> = <tab2>.
327327
preview_filter_search( ).
328-
ms_draft-s_preview-title = `Number of Rows: ` && ` (` && z2ui5_sql_cl_context=>c_trim( lines( <tab> ) ) && `)`.
328+
ms_draft-s_preview-title = |Number of Rows: { lines( <tab> ) }|.
329329

330330
preview_view( ).
331331
history_db_save( ).
@@ -344,7 +344,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
344344
ASSIGN ms_draft-s_preview-tab_backup->* TO <tab2>.
345345
<tab> = <tab2>.
346346

347-
ms_draft-s_preview-title = `Number of Rows: ` && ` ` && z2ui5_sql_cl_context=>c_trim( lines( <tab> ) ).
347+
ms_draft-s_preview-title = |Number of Rows: { lines( <tab> ) }|.
348348

349349
preview_view( ).
350350
client->message_toast_display( `All filters deleted` ).
@@ -391,7 +391,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
391391
DATA(lo_columns) = tab->ui_columns( ).
392392
LOOP AT lt_fields INTO DATA(lv_field).
393393
lo_columns->ui_column( width = `auto` sortproperty = `'` && lv_field-name && `'` filterproperty = `'` && lv_field-name && `'`
394-
)->text( text = lv_field-name )->ui_template( )->label( text = `{` && lv_field-name && `}` wrapping = abap_true ).
394+
)->text( lv_field-name )->ui_template( )->label( text = `{` && lv_field-name && `}` wrapping = abap_true ).
395395
ENDLOOP.
396396

397397
ELSE.
@@ -452,7 +452,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
452452
preview_view( ).
453453

454454
ms_draft-s_preview-t_filter = z2ui5_sql_cl_context=>filter_get_multi_by_data( <tab> ).
455-
ms_draft-s_preview-title = `Number of Rows: ` && ` ` && z2ui5_sql_cl_context=>c_trim( lines( <tab2> ) ).
455+
ms_draft-s_preview-title = |Number of Rows: { lines( <tab2> ) }|.
456456

457457
history_db_save( ).
458458
client->view_model_update( ).
@@ -657,21 +657,21 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
657657
DATA(cont_sub) = cont_main->pane_container( orientation = `Horizontal` ).
658658

659659
DATA(view_sql) = cont_sub->split_pane( requiredparentwidth = `600`
660-
)->layout_data( ns = `layout`
660+
)->layout_data( `layout`
661661
)->splitter_layout_data( size = client->_bind_edit( ms_draft-sql_cont_size )
662662
)->get_parent( )->get_parent( ).
663663

664664
sql_view_display( view_sql ).
665665

666666
DATA(view_history) = cont_sub->split_pane( requiredparentwidth = `400`
667-
)->layout_data( ns = `layout`
667+
)->layout_data( `layout`
668668
)->splitter_layout_data( size = client->_bind_edit( ms_draft-history_cont_size )
669669
)->get_parent( )->get_parent( ).
670670

671671
history_view( view_history ).
672672

673673
cont_main->split_pane( requiredparentwidth = `400`
674-
)->layout_data( ns = `layout`
674+
)->layout_data( `layout`
675675
)->splitter_layout_data( size = client->_bind_edit( ms_draft-s_preview-cont_size )
676676
)->get_parent( )->get_parent(
677677
)->vbox( id = `preview` ).

0 commit comments

Comments
 (0)