A collection of code analyzers
Enable the ones that work for you, from coding style and preferences to project guidelines.
PlatformCop
Does it work? Constructs the platform rejects, ignores, or executes differently from what the code says.
ApplicationCop
Does it fit Business Central? How tables, fields, pages, enums, labels and permissions are modeled.
LinterCop
Is it maintainable? Procedure bodies that are valid but harder to read, change or keep fast than they need to be.
DocumentationCop
Is it explained? Comments and XML documentation on public procedures and on constructs whose intent is not stated in code.
FormattingCop
Does it read the same everywhere? Casing, spacing, blank lines and ordering. Purely visual, never changes behavior.
TestAutomationCop
Will the test runner run it? Test codeunits only; silent on production code.
Where it runs
VS Code
The extension downloads the analyzer build that matches your AL Language version and registers it with the compiler. Diagnostics show up as you type, and the status bar lets you switch individual analyzers on and off.
CI/CD pipelines
GitHub with AL-Go and Azure DevOps with the ALCops pipeline task both run the same analyzers on every build. A rule that shows a warning in the editor fails the build, or is reported, according to your ruleset.
AI assistants
The MCP server exposes the analyzers to Claude, Cursor and other assistants. An assistant can analyze a file, look up a rule and apply its code fix without leaving the conversation.
Built in the open
ALCops is open source under the MIT license. Our rules are created collaboratively by developers and we welcome everyone to share their thoughts, ideas and improvements.
ALCops is a continuation of BusinessCentral.LinterCop and this project wouldn’t exist without the foundation built the community.
A heartfelt thank you to every contributor who invested their time, ideas and code into the original LinterCop. Your work didn’t end there, it lives on and grows further here in ALCops.