Salute your Heros: Andrzej Z

In this video, I pay tribute to Andrzej Zwierzchowski, the author of the fantastic AZ AL Dev Tool extension to VS Code. Join me in saluting AZ in this video:

https://youtu.be/pRS4aZgT4S0

In this episode of “Salute Your Heroes,” Erik shines a spotlight on Andrzej Zwierzchowski — the Polish developer behind the incredibly popular AZ AL Dev Tools VS Code extension for Business Central. Erik walks through the staggering number of features packed into this open-source tool and explains why he considers Andrzej one of the unsung heroes of the AL development community.

Who is Andrzej Zwierzchowski?

Andrzej (whose initials “AZ” give the tool its name) is a developer who works more in the background compared to those constantly in the spotlight. Yet his contribution to the Business Central ecosystem is enormous. Erik admits he uses the AZ AL Dev Tools extension daily and credits tools like this for enabling him to produce the tremendous amount of AL code he writes.

As Erik puts it: “The world of AL is better because of you.” If you ever see Andrzej at a conference or event, buy him a beer — or whatever his preferred beverage may be.

Exploring the AZ AL Dev Tools Extension

Finding Extension Commands in VS Code

Erik shares a useful tip for exploring any VS Code extension. When you open the extension panel and view an extension’s page, you’ll see a Details tab (written by the extension author) and a Features tab. Under Features, there’s a section called Commands that lists every command the extension has added to VS Code.

For the AZ AL Dev Tools extension, the list of commands is staggering. Erik scrolls through what seems like an endless list, noting: “I don’t even know how many there are, and every one of them is a tool for you.”

Example: Make Flow Fields Read-Only

One example Erik highlights is the ability to make flow fields read-only. As a reminder, flow fields can technically be made editable, but in most cases they shouldn’t be. The extension provides two commands for this:

  • Make Editor Flow Fields Read-Only — applies to the currently active editor
  • Make Project Flow Fields Read-Only — applies to your entire project in one command

The naming convention is consistent: when a command says “editor,” it operates on the active open file; when it says “project,” it runs across the entire app.

Code Cleanup Commands

One of the most powerful recent additions is the Code Cleanup feature. This lets you run multiple code transformation commands one after another to fix numerous problems in your code. There are three variants:

  1. Run Code Clean Up on the Active Editor — cleans up the current file
  2. Run Code Clean Up on the Active Project — cleans up the entire project
  3. Run Code Clean Up on Uncommitted Files — targets only changed files, which is faster for large projects when you want to clean up before committing to your Git server

The cleanup operations are configurable and include an impressive list of transformations:

  • Remove and re-add Application Area
  • Add ToolTips / Refresh ToolTips
  • Add table field captions
  • Add page field captions
  • Fix keyword casing and identifiers
  • Convert object IDs to names
  • Add missing parentheses (for function calls without enclosing parentheses)
  • Sort permissions
  • Sort procedures
  • Remove unnecessary begin/end blocks
  • Format document

This is essentially a comprehensive linting system for AL — a concept familiar from other programming languages. Some of these operations accept parameters, such as specifying a default Application Area. You can run a complete code cleanup with all of these transformations in a single command.

Reusing ToolTips Across Pages

The extension includes the ability to reuse existing ToolTips defined for the same table fields on other pages. For example, if you’ve added a field on one page with a ToolTip and then use the same field on a different page, the extension can pull in that existing ToolTip automatically. This is especially useful for versions prior to BC24, where ToolTip inheritance behavior was being changed.

Image Browser

Another fantastic feature is the built-in image browser. The extension provides commands to visually browse all available images in Business Central:

  • Show Cue Group Field Images — displays images available for field groups and Cues
  • Show Action Images — displays all action images (shown in their colored versions as stored in the DLLs, though they render as monochrome on screen)
  • Show Role Center Action Images — displays images specific to Role Center actions

This is incredibly handy when you need to pick the right icon for an action or cue and don’t want to guess at image names.

Fix Begin/End Warnings

The extension includes commands that remove unnecessary begin and end statements around single commands — addressing warnings reported by the code analyzers and keeping your code clean.

A Simple AL Project for Context

To give you a sense of the kind of project where these tools shine, here’s a basic AL extension structure. Even a simple table definition like this benefits from the AZ AL Dev Tools cleanup commands:

table 50100 "Awesome AZ demo"
{
    Caption = 'Awesome AZ demo';
    DataClassification = ToBeClassified;
    
    fields
    {
        field(1; "Key Field"; Code[20])
        {
            Caption = 'Key Field';
            DataClassification = SystemMetadata;
        }
        field(10; Name; Text[100])
        {
            Caption = 'Name';
            DataClassification = SystemMetadata;
        }
    }
    keys
    {
        key(PK; "Key Field")
        {
            Clustered = true;
        }
    }
    
}

And a page extension like this, where ToolTips, application areas, and proper formatting all come into play:

pageextension 50100 CustomerListExt extends "Customer List"
{
    trigger OnOpenPage();
    begin
        Message('App published: Hello world');
    end;
}

Imagine running the code cleanup command across an entire project with dozens of tables, pages, and extensions — the time savings are enormous.

Open Source and Community-Driven

Perhaps the most impressive aspect of the AZ AL Dev Tools extension is that it’s completely open source. The full source code is available on GitHub, meaning you can inspect it, contribute to it, or learn from it. This is a tremendous gift to the Business Central developer community.

Conclusion

Andrzej Zwierzchowski is one of the true heroes of the AL development world. His AZ AL Dev Tools extension has grown into an incredibly comprehensive toolkit that covers everything from code cleanup and linting to image browsing and ToolTip management. The sheer number of commands available is staggering, and each one solves a real problem that AL developers face every day.

If you haven’t tried the AZ AL Dev Tools extension yet, go install it now from the VS Code marketplace. And if you ever run into Andrzej — make sure to thank him. The Business Central development community is genuinely better because of his work.