{
  "global": {
    "files": "/{test,src}/**/*.*",
    "skipGeneratedGatewayClasses": true,
    "skipGeneratedPersistentClasses": true,
    "skipGeneratedFunctionGroups": true
  },
  "dependencies": [
    {
      "folder": "/deps",
      "files": "/**/*.*"
    },
    {
      "url": "https://github.com/abaplint/deps",
      "folder": "/lint_deps",
      "files": "/src/**/*.*"
    }
  ],
  "syntax": {
    "version": "v702",
    "errorNamespace": "^(Z|Y|LT?CL_|TY_|LIF_|.*ABAPGIT)",
    "globalConstants": [
      "abap_func_exporting",
      "abap_func_tables",
      "cssf_formtype_text",
      "seoc_category_exception",
      "seoc_category_webdynpro_class",
      "seoc_exposure_private",
      "seoc_exposure_protected",
      "seoc_exposure_public",
      "seoc_version_active",
      "seoc_version_inactive",
      "seok_access_free",
      "seok_access_modify",
      "seok_pgmid_r3tr",
      "seop_ext_class_locals_def",
      "seop_ext_class_locals_imp",
      "seop_ext_class_macros",
      "seop_ext_class_testclasses",
      "seop_incextapp_definition",
      "seop_incextapp_implementation",
      "seop_incextapp_macros",
      "seop_incextapp_testclasses",
      "sews_c_vif_version",
      "skwfc_obtype_folder",
      "skwfc_obtype_loio",
      "so2_controller",
      "ststc_c_type_dialog",
      "ststc_c_type_object",
      "ststc_c_type_parameters",
      "ststc_c_type_report",
      "swbm_c_op_delete_no_dialog",
      "swbm_c_type_ddic_db_tabxinx",
      "swbm_c_type_wdy_application",
      "swbm_version_active",
      "swbm_version_inactive",
      "swfco_org_standard_task",
      "swfco_org_workflow_template",
      "wbmr_c_skwf_folder_class",
      "wdyn_limu_component_controller",
      "wdyn_limu_component_definition",
      "wdyn_limu_component_view"
    ],
    "globalMacros": []
  },
  "rules": {
    "classic_exceptions_overlap": true,
    "local_testclass_consistency": true,
    "no_external_form_calls": false,
    "no_inline_in_optional_branches": true,
    "pragma_style": true,
    "slow_parameter_passing": false,
    "unnecessary_pragma": false,
    "align_parameters": false,
    "cds_parser_error": true,
    "constant_classes": true,
    "no_aliases": false,
    "nrob_consistency": true,
    "omit_preceding_zeros": true,
    "prefer_corresponding": true,
    "static_call_via_instance": false,
    "unnecessary_chaining": false,
    "unsecure_fae": false,
    "identical_descriptions": false,
    "modify_only_own_db_tables": false,
    "no_yoda_conditions": false,
    "no_chained_assignment": true,
    "select_add_order_by": false,
    "dangerous_statement": false,
    "db_operation_in_loop": false,
    "select_performance": false,
    "max_one_method_parameter_per_line": true,
    "unused_ddic": true,
    "prefer_raise_exception_new": true,
    "use_class_based_exceptions": true,
    "uncaught_exception": true,
    "intf_referencing_clas": false,
    "method_implemented_twice": true,
    "parser_702_chaining": true,
    "sy_modification": false,
    "call_transaction_authority_check": true,
    "function_module_recommendations": false,
    "method_overwrites_builtin": false,
    "omit_parameter_name": false,
    "omit_receiving": true,
    "unused_methods": true,
    "identical_contents": false,
    "many_parentheses": true,
    "prefer_xsdbool": true,
    "prefer_is_not": false,
    "use_bool_expression": true,
    "check_subrc": false,
    "cyclomatic_complexity": {
      "max": 25
    },
    "identical_conditions": true,
    "use_line_exists": true,
    "line_break_style": true,
    "forbidden_pseudo_and_pragma": {
      "ignoreGlobalClassDefinition": true,
      "ignoreGlobalInterface": true,
      "pragmas": ["##NO_TEXT"],
      "pseudo": ["#EC NOTEXT"]
    },
    "unused_types": true,
    "begin_single_include": true,
    "names_no_dash": true,
    "parser_missing_space": true,
    "prefer_inline": false,
    "reduce_string_templates": true,
    "downport": false,
    "line_break_multiple_parameters": true,
    "unknown_types": true,
    "forbidden_void_type": {
      "check": ["^stringtab$", "^SYCHAR01$", "^char2$", "^char20$", "^int4$", "^SYREPID$",
        "^flag$", "^char12$", "^char10$", "^char70$", "^char4$", "^sydatum$", "^syuzeit$",
        "^syst_title$", "^sychar70$", "^char30$", "^char50$",
        "^numc2$", "^sap_bool$", "^SYCHAR10$", "^sylangu$",
        "^cl_blue_wb_utility$", "^boole_d$",
        "^cl_srvd_wb_object_data$", "^cx_aff_", "^cl_aff_", "^if_aff_",
        "^cl_wb_object_operator_factory$",
        "^cl_aunit_assert$",
        "^cx_wb_object_operation_error$",
        "^if_srvd_types$", "^xubname$",
        "^if_wb_adt_plugin_resource_co$",
        "^if_wb_object_data_selection_co$",
        "^if_wb_object_operator$"
      ]
    },
    "forbidden_identifier": true,
    "try_without_catch": true,
    "unused_variables": false,
    "prefix_is_current_class": true,
    "allowed_object_naming": true,
    "check_comments": false,
    "cyclic_oo": false,
    "fully_type_constants": true,
    "keep_single_parameter_on_one_line": true,
    "prefer_returning_to_exporting": true,
    "selection_screen_naming": true,
    "sicf_consistency": true,
    "sql_escape_host_variables": true,
    "xml_consistency": true,
    "newline_between_methods": false,
    "chain_mainly_declarations": {
      "definitions": true,
      "write": true,
      "move": true,
      "refresh": true,
      "unassign": true,
      "sort": true,
      "clear": true,
      "hide": true,
      "free": true,
      "include": true,
      "check": true
    },
    "check_abstract": true,
    "check_text_elements": true,
    "types_naming": {
      "pattern": "^TY_.+$",
      "exclude": ["/json/"]
    },
    "7bit_ascii": {
      "exclude": [
        "zcl_abapgit_utils.clas.testclasses.abap",
        "zcl_abapgit_html_action_utils.clas.testclasses.abap"
      ]
    },
    "abapdoc": false,
    "check_ddic": true,
    "check_include": true,
    "allowed_object_types": {
      "allowed": [
        "PROG",
        "CLAS",
        "INTF",
        "FUGR",
        "DEVC",
        "TRAN",
        "W3MI"
      ]
    },
    "ambiguous_statement": true,
    "avoid_use": {
      "define": true,
      "testSeams": true,
      "defaultKey": false,
      "describeLines": true,
      "break": true,
      "statics": true
    },
    "begin_end_names": true,
    "check_transformation_exists": true,
    "check_syntax": true,
    "class_attribute_names": {
      "ignoreExceptions": true,
      "ignoreInterfaces": false,
      "statics": "^G._.*$",
      "ignoreLocal": false,
      "constants": "",
      "instance": "^M._.*$"
    },
    "cloud_types": true,
    "colon_missing_space": true,
    "commented_code": {
      "allowIncludeInFugr": false,
      "exclude": ["otgr"]
    },
    "constructor_visibility_public": true,
    "contains_tab": true,
    "definitions_top": {
      "exclude": ["/json/"]
    },
    "description_empty": {
      "exclude": ["/test/"]
    },
    "double_space": false,
    "empty_line_in_statement": {
      "allowChained": true
    },
    "empty_statement": true,
    "empty_structure": {
      "loop": true,
      "if": false,
      "try": true,
      "while": true,
      "case": true,
      "select": true,
      "when": false,
      "do": true,
      "at": true
    },
    "exit_or_check": true,
    "exporting": true,
    "form_tables_obsolete": false,
    "functional_writing": {
      "ignoreExceptions": true
    },
    "global_class": true,
    "identical_form_names": true,
    "if_in_if": true,
    "implement_methods": true,
    "in_statement_indentation": false,
    "indentation": {
      "ignoreExceptions": true,
      "alignTryCatch": false,
      "selectionScreenBlockIndentation": false,
      "globalClassSkipFirst": false,
      "ignoreGlobalClassDefinition": false,
      "ignoreGlobalInterface": false
    },
    "inline_data_old_versions": true,
    "keyword_case": {
      "style": "upper",
      "ignoreExceptions": true,
      "ignoreLowerClassImplmentationStatement": true,
      "ignoreGlobalClassDefinition": false,
      "ignoreGlobalInterface": false,
      "ignoreKeywords": [],
      "ignoreGlobalClassBoundaries": false,
      "ignoreFunctionModuleName": false
    },
    "line_length": {
      "length": 120,
      "exclude": ["zcl_abapgit_object_pdts.clas.testclasses.abap"]
    },
    "line_only_punc": {
      "ignoreExceptions": true
    },
    "local_class_naming": {
      "exception": "^LCX_.*$",
      "local": "^LCL_.*$",
      "test": "^LT.+$"
    },
    "local_variable_names": {
      "expectedData": "^L._.*$",
      "expectedConstant": "^LC_.*$",
      "expectedFS": "^<L._.*>$",
      "exclude": ["/json/"]
    },
    "main_file_contents": true,
    "max_one_statement": true,
    "message_exists": false,
    "method_length": {
      "statements": 100,
      "checkForms": true,
      "ignoreTestClasses": false,
      "errorWhenEmpty": false
    },
    "method_parameter_names": {
      "ignoreExceptions": true,
      "importing": "^I._.*$",
      "returning": "^R._.*$",
      "changing": "^C._.*$",
      "exporting": "^E._.*$",
      "ignoreNames": [
        "P_TASK"
      ],
      "exclude": ["/json/"]
    },
    "mix_returning": true,
    "msag_consistency": true,
    "nesting": {
      "depth": 6
    },
    "no_public_attributes": false,
    "object_naming": {
      "clas": "^ZC(L|X)\\_ABAPGIT\\_",
      "intf": "^ZIF\\_ABAPGIT\\_",
      "prog": "^ZABAPGIT",
      "fugr": "^ZABAPGIT",
      "tabl": "^Z",
      "ttyp": "^Z",
      "dtel": "^Z",
      "doma": "^Z",
      "msag": "^Z",
      "tran": "^Z",
      "enqu": "^EZ",
      "auth": "^Z",
      "pinf": "^Z",
      "idoc": "^Z",
      "ssfo": "^Z",
      "ssst": "^Z",
      "shlp": "^Z",
      "xslt": "^Z"
    },
    "obsolete_statement": {
      "refresh": true,
      "compute": true,
      "add": true,
      "occurences": true,
      "selectWithoutInto": true,
      "ranges": true,
      "callTransformation": true,
      "regex": true,
      "sortByFS": true,
      "subtract": true,
      "freeMemory": true,
      "exitFromSQL": true,
      "multiply": true,
      "communication": true,
      "typePools": true,
      "load": true,
      "move": true,
      "divide": true,
      "fieldSymbolStructure": true,
      "requested": true,
      "pack": true,
      "setExtended": true,
      "withHeaderLine": true,
      "occurs": true,
      "parameter": true
    },
    "parser_error": {},
    "preferred_compare_operator": {
      "badOperators": [
        "EQ",
        "><",
        "NE",
        "GE",
        "GT",
        "LT",
        "LE"
      ]
    },
    "release_idoc": true,
    "remove_descriptions": {
      "ignoreWorkflow": false,
      "ignoreExceptions": false,
      "exclude": ["/json/"]
    },
    "rfc_error_handling": false,
    "sequential_blank": {
      "lines": 4
    },
    "short_case": {
      "length": 1,
      "allow": [
        "iv_action",
        "sy"
      ]
    },
    "space_before_colon": true,
    "space_before_dot": {
      "ignoreGlobalDefinition": true,
      "ignoreExceptions": true
    },
    "start_at_tab": true,
    "superclass_final": true,
    "tabl_enhancement_category": true,
    "type_form_parameters": true,
    "unreachable_code": true,
    "use_new": true,
    "when_others_last": true,
    "whitespace_end": true
  }
}
