diff --git a/abaplint-app.json b/abaplint-app.json new file mode 100644 index 00000000..e195d431 --- /dev/null +++ b/abaplint-app.json @@ -0,0 +1,13 @@ +{ + "configurations": { + "default": { + "filename": "./ci/abaplint.jsonc" + }, + "abap_standard_readiness": { + "filename": "./ci/abaplint-standard_abap_readiness.jsonc" + }, + "abap_cloud_readiness": { + "filename": "./ci/abaplint-abap_cloud_readiness.jsonc" + } + } + } \ No newline at end of file diff --git a/ci/abaplint-abap_cloud_readiness.jsonc b/ci/abaplint-abap_cloud_readiness.jsonc new file mode 100644 index 00000000..03f862a4 --- /dev/null +++ b/ci/abaplint-abap_cloud_readiness.jsonc @@ -0,0 +1,38 @@ +{ + "global": { + "files": "/src/**/*.*" + }, + "dependencies": [ + { + "url": "https://github.com/abapedia/steampunk-2305-api-intersect-702", + "folder": "/deps", + "files": "/src/**/*.*" + }, + { + "url": "https://github.com/abap2UI5/abap2UI5", + "folder": "/abap2UI5", + "files": "/src/**/*.*" + } + ], + "syntax": { + "version": "Cloud", + "errorNamespace": "." + }, + "rules": { + "begin_end_names": true, + "cds_parser_error": true, + "check_ddic": true, + "strict_sql": true, + "sql_escape_host_variables": true, + "check_include": true, + "check_syntax": true, + "cloud_types": true, + "global_class": true, + "implement_methods": true, + "method_implemented_twice": true, + "parser_error": true, + "superclass_final": true, + "unknown_types": true, + "xml_consistency": true + } + } \ No newline at end of file diff --git a/ci/abaplint-abap_standard_readiness.jsonc b/ci/abaplint-abap_standard_readiness.jsonc new file mode 100644 index 00000000..1fd67bb1 --- /dev/null +++ b/ci/abaplint-abap_standard_readiness.jsonc @@ -0,0 +1,38 @@ +{ + "global": { + "files": "/src/**/*.*" + }, + "dependencies": [ + { + "url": "https://github.com/abapedia/steampunk-2305-api-intersect-702", + "folder": "/deps", + "files": "/src/**/*.*" + }, + { + "url": "https://github.com/abap2UI5/abap2UI5", + "folder": "/abap2UI5", + "files": "/src/**/*.*" + } + ], + "syntax": { + "version": "750", + "errorNamespace": "." + }, + "rules": { + "begin_end_names": true, + "cds_parser_error": true, + "check_ddic": true, + "strict_sql": true, + "sql_escape_host_variables": true, + "check_include": true, + "check_syntax": true, + "cloud_types": true, + "global_class": true, + "implement_methods": true, + "method_implemented_twice": true, + "parser_error": true, + "superclass_final": true, + "unknown_types": true, + "xml_consistency": true + } + } \ No newline at end of file diff --git a/ci/abaplint.jsonc b/ci/abaplint.jsonc new file mode 100644 index 00000000..0f540bf9 --- /dev/null +++ b/ci/abaplint.jsonc @@ -0,0 +1,309 @@ +{ + "global": { + "files": "/src/**/*.*" + }, + "dependencies": [ + { + "url": "https://github.com/abapedia/steampunk-2305-api-intersect-702", + "folder": "/deps", + "files": "/src/**/*.*" + }, + { + "url": "https://github.com/abap2UI5/abap2UI5", + "folder": "/abap2UI5", + "files": "/src/**/*.*" + } + ], + "syntax": { + "version": "v757", + "errorNamespace": "." + }, + "rules": { + "7bit_ascii": false, + "abapdoc": false, + "align_parameters": false, + "allowed_object_naming": true, + "allowed_object_types": true, + "ambiguous_statement": true, + "avoid_use": false, + "begin_end_names": true, + "begin_single_include": false, + "call_transaction_authority_check": true, + "cds_comment_style": true, + "cds_legacy_view": true, + "cds_parser_error": true, + "chain_mainly_declarations": true, + "change_if_to_case": { + "exclude": [], + "severity": "Error", + "skipNames": [] + }, + "check_abstract": true, + "check_comments": false, + "check_ddic": true, + "check_include": true, + "check_subrc": false, + "check_syntax": true, + "check_text_elements": true, + "check_transformation_exists": true, + "class_attribute_names": false, + "classic_exceptions_overlap": true, + "cloud_types": true, + "colon_missing_space": true, + "commented_code": false, + "constant_classes": { + "exclude": [], + "severity": "Error", + "mapping": [] + }, + "constructor_visibility_public": true, + "contains_tab": { + "exclude": [], + "severity": "Error", + "spaces": 1 + }, + "cyclic_oo": false, + "cyclomatic_complexity": { + "exclude": [], + "severity": "Error", + "max": 20 + }, + "dangerous_statement": false, + "db_operation_in_loop": false, + "definitions_top": false, + "description_empty": true, + "double_space": false, + "downport": true, + "empty_line_in_statement": false, + "empty_statement": true, + "empty_structure": { + "loop": true, + "if": true, + "while": true, + "case": true, + "select": true, + "do": true, + "at": true, + "try": true, + "when": false + }, + "exit_or_check": true, + "expand_macros": true, + "exporting": false, + "forbidden_identifier": true, + "forbidden_pseudo_and_pragma": { + "exclude": [], + "severity": "Error", + "pseudo": [], + "pragmas": [], + "ignoreGlobalClassDefinition": false, + "ignoreGlobalInterface": false + }, + "forbidden_void_type": { + "check": [ + "^boole_d$", + "^char10$", + "^char12$", + "^char2$", + "^char20$", + "^char30$", + "^char4$", + "^char50$", + "^char70$", + "^cl_abap_syst", + "^cl_aff_", + "^cl_aucv_test_runner_abstract$", + "^cl_aucv_test_runner_standard$", + "^cl_aunit_assert$", + "^cl_axt_dbtable$", + "^cl_blue_wb_utility$", + "^cl_oo_source$", + "^/ui2/cl_$", + "^cl_saunit_internal_result$", + "^cl_srvd_wb_object_data$", + "^cl_wb_object_operator_factory$", + "^cl_wer_const$", + "^cl_xco_", + "^cx_aff_", + "^cx_wb_object_operation_error$", + "^cx_xco_", + "^flag$", + "^i18_a_langiso2$", + "^if_adt_lock_handle$", + "^if_aff_", + "^if_satc_ci_variant_access$", + "^if_saunit_internal_result$", + "^if_saunit_internal_result_type$", + "^if_srvd_types$", + "^if_wb_adt_plugin_resource_co$", + "^if_wb_object_data_selection_co$", + "^if_wb_object_operator$", + "^if_xco_", + "^int4$", + "^numc2$", + "^sabp_t_tadir_keys$", + "^sap_bool$", + "^srcsystem$", + "^stringtab$", + "^sychar01$", + "^sychar10$", + "^sychar70$", + "^sydatum$", + "^sylangu$", + "^syst_title$", + "^syuzeit$", + "^xubname$", + "^feld$", + "^abap_boolean$", + ] + }, + "form_tables_obsolete": true, + "fully_type_constants": { + "checkData": true + }, + "function_module_recommendations": true, + "functional_writing": { + "ignoreExceptions": true + }, + "global_class": true, + "identical_conditions": true, + "identical_contents": false, + "identical_descriptions": false, + "identical_form_names": true, + "if_in_if": true, + "implement_methods": true, + "in_statement_indentation": false, + "indentation": false, + "inline_data_old_versions": true, + "intf_referencing_clas": true, + "keep_single_parameter_on_one_line": false, + "keyword_case": false, + "line_break_multiple_parameters": false, + "line_break_style": false, + "line_length": false, + "line_only_punc": false, + "local_class_naming": false, + "local_testclass_consistency": true, + "local_variable_names": false, + "main_file_contents": true, + "many_parentheses": true, + "max_one_method_parameter_per_line": true, + "max_one_statement": true, + "message_exists": true, + "method_implemented_twice": true, + "method_length": false, + "method_overwrites_builtin": false, + "method_parameter_names": false, + "mix_returning": true, + "modify_only_own_db_tables": { + "reportDynamic": true, + "ownTables": "^[yz]" + }, + "msag_consistency": true, + "names_no_dash": true, + "nesting": { + "depth": 8 + }, + "newline_between_methods": true, + "no_aliases": true, + "no_chained_assignment": true, + "no_external_form_calls": true, + "no_inline_in_optional_branches": false, + "no_public_attributes": false, + "no_yoda_conditions": false, + "nrob_consistency": true, + "object_naming": { + "exclude": [], + "severity": "Error", + "patternKind": "required", + "ignoreNames": [], + "ignorePatterns": [], + "clas": "^Z2UI5_C(L|X)", + "intf": "^Z2UI5_IF", + "prog": "^Z", + "fugr": "^Z", + "tabl": "^Z", + "ttyp": "^Z", + "dtel": "^Z", + "doma": "^Z", + "msag": "^Z", + "tran": "^Z", + "enqu": "^EZ", + "auth": "^Z", + "pinf": "^Z", + "idoc": "^Z", + "xslt": "^Z", + "ssfo": "^Z", + "ssst": "^Z", + "shlp": "^Z" + }, + "obsolete_statement": true, + "omit_parameter_name": false, + "omit_preceding_zeros": true, + "omit_receiving": true, + "parser_702_chaining": true, + "parser_error": true, + "parser_missing_space": false, + "pragma_style": false, + "prefer_corresponding": true, + "prefer_inline": false, + "prefer_is_not": true, + "prefer_raise_exception_new": true, + "prefer_returning_to_exporting": false, + "prefer_xsdbool": true, + "preferred_compare_operator": true, + "prefix_is_current_class": { + "severity": "Warning" + }, + "reduce_string_templates": false, + "release_idoc": true, + "remove_descriptions": { + "exclude": [], + "severity": "Error", + "ignoreExceptions": false, + "ignoreWorkflow": true + }, + "rfc_error_handling": true, + "select_add_order_by": false, + "select_performance": true, + "selection_screen_naming": true, + "sequential_blank": { + "severity": "Warning" + }, + "short_case": false, + "sicf_consistency": true, + "slow_parameter_passing": true, + "space_before_colon": true, + "space_before_dot": false, + "sql_escape_host_variables": false, + "start_at_tab": false, + "static_call_via_instance": { + "allowInTestclassIncludes": false + }, + "superclass_final": true, + "superfluous_value": true, + "sy_modification": false, + "tabl_enhancement_category": true, + "try_without_catch": true, + "type_form_parameters": true, + "types_naming": false, + "uncaught_exception": true, + "unknown_types": true, + "unnecessary_chaining": false, + "unnecessary_pragma": true, + "unnecessary_return": true, + "unreachable_code": true, + "unsecure_fae": true, + "unused_ddic": true, + "unused_methods": false, + "unused_types": false, + "unused_variables": false, + "use_bool_expression": true, + "use_class_based_exceptions": true, + "use_line_exists": true, + "use_new": true, + "when_others_last": true, + "whitespace_end": true, + "xml_consistency": true + } +}