From 65a2e283d45362d46b6eec2fcd65d6c8bc3f81fd Mon Sep 17 00:00:00 2001 From: Arthur van de Vondervoort Date: Fri, 11 Sep 2026 16:13:17 +0200 Subject: [PATCH] docs(LC0092): document skipped platform-named action and control kinds Action and layout areas, system actions and action groups named after a predefined promoted category carry platform-defined names, so LC0092 no longer checks them. Record that in the naming-targets table and the exception list, together with the existing API-object control skip. Co-Authored-By: Claude Fable 5.1 --- content/docs/analyzers/LinterCop/LC0092.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/content/docs/analyzers/LinterCop/LC0092.md b/content/docs/analyzers/LinterCop/LC0092.md index b662c11..271ab7b 100644 --- a/content/docs/analyzers/LinterCop/LC0092.md +++ b/content/docs/analyzers/LinterCop/LC0092.md @@ -55,9 +55,9 @@ The rule checks the following naming targets, each with a default convention: | ReturnValue | Must start with an uppercase letter | Named return values | | Object | Must start with an uppercase letter | Tables, pages, codeunits, reports, queries, XmlPorts, enums, interfaces, permission sets | | Field | Must start with a letter (upper or lower); must not contain %, &, !, ? | Table fields | -| Action | Must start with an uppercase letter | Page actions | +| Action | Must start with an uppercase letter | Page actions, action groups, action references, separators, custom and file-upload actions | | EnumValue | No default (opt-in only) | Enum values | -| Control | Must start with an uppercase letter | Page controls | +| Control | Must start with an uppercase letter | Page controls, except layout areas | These conventions are implemented as regex patterns under the hood (`^[A-Z]`, `^[A-Za-z]`, `[%&!?]`). You can override them with custom patterns in `alcops.json` (see [Configuration](#configuration)). @@ -72,6 +72,10 @@ These conventions are implemented as regex patterns under the hood (`^[A-Z]`, `^ - The method implements an interface (can't change the name) - Object names have AppSourceCop affixes stripped before checking - **Enum values** are not checked by default (opt-in only) +- Action areas (`area(Processing)`, `area(Promoted)`, ...) and layout areas (`area(Content)`, `area(FactBoxes)`, ...): the name selects a platform area and cannot be chosen freely +- System actions (`systemaction(OK)`, `systemaction(Cancel)`, ...) on a `ConfigurationDialog` or `PromptDialog` page: the name selects a platform system action +- Action groups named after a promoted category (`Category_New`, `Category_Process`, `Category_Report`, `Category_Category4` through `Category_Category20`): the name binds the group to that platform category +- Controls on API pages and queries (`PageType = API`, `QueryType = API`): AA0102 requires camelCase there ### Opting in to enum value checks