Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>AL Project ScaffoldNew to Visual Studio Code? Get it now.
AL Project Scaffold

AL Project Scaffold

Roland Thompson

|
215 installs
| (0) | Free
Scaffolds an AL Project with the defaults
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AL Scaffold

This extension provides a quick method to prep a new AL project with defaults for easy standardisation across your development team.

Features

The extension will create the required folder structure as defined in a config file (see below)

Once created it can move any existing .al files into a specific folder. The project app.json file will be modified to include the specified object range, project name, Company name and Url along with other settings as defined in the config file

Requirements

You need to make sure you run the AL:Go command first.

Extension Settings

This extension contributes the following settings:

  • rolandthompson.al.scaffold.workspaceSettingsUrl: Specifies a url that should point to a txt file (can be web based or network/local), this will be added to the local project workspace settings. (See next section for more information)
  • rolandthompson.al.scaffold.companyName: Specifies the Company name to use
  • rolandthompson.al.scaffold.logoUrl: Specifies the url for the Logo, the extension will download and add it to the app.json file.
  • rolandthompson.al.scaffold.foldersToCreate: Specifies the folders to create. Json - See below example
  • rolandthompson.al.scaffold.url: Company URL to set in the app.json file.
  • rolandthompson.al.scaffold.moveALFiles: Move .al files to folders. true/false.
  • rolandthompson.al.scaffold.moveALFilesToDir: Folders to move .al files to.
  • rolandthompson.al.scaffold.customObjectRange: Default object range to allow for extensions. You can specify multiple ranges.
  • rolandthompson.al.scaffold.copySettingsToWorkspace: Specifies if the settings should be copied to the local workspace.
  • rolandthompson.al.scaffold.brief: Brief description of the project
  • rolandthompson.al.scaffold.description: Detailed description of the project
  • rolandthompson.al.scaffold.privacyStatement: Url to privacy statement
  • rolandthompson.al.scaffold.EULA: Url to your EULA
  • rolandthompson.al.scaffold.help: Url for general help
  • rolandthompson.al.scaffold.contextSensitiveHelpUrl: Url for context help
  • rolandthompson.al.scaffold.target: Target platform
  • rolandthompson.al.scaffold.applicationInsightsConnectionString: Application insights connection

Remote File Based Configuration

While all the settings can be manualy typed, by using the rolandthompson.al.scaffold.workspaceSettingsUrl setting, you can specify a remote file (json), with the settings already in. This file will be downloaded and will overwrite the current Workspace settings.json file.

You can also specify other extension settings in this file, as you would with workspace settings.

For example, if your file looked like:

{
    "rolandthompson.al.scaffold.companyName": "You Company/Publisher Name",
    "rolandthompson.al.scaffold.companyUrl": "https://yoururl.com",
    "rolandthompson.al.scaffold.logoUrl": "https://yoururl.com/logo.png",
    "rolandthompson.al.scaffold.brief": "A brief description",
    "rolandthompson.al.scaffold.description": "Something more descriptive",
    "rolandthompson.al.scaffold.privacyStatement": "https://yoururl.com/privacy",
    "rolandthompson.al.scaffold.EULA": "https://yoururl.com/eula",
    "rolandthompson.al.scaffold.help": "https://yoururl.com/help",
    "rolandthompson.al.scaffold.contextSensitiveHelpUrl": "https://yoururl.com/{projectid}/0",
    "rolandthompson.al.scaffold.target": "Cloud",
    "rolandthompson.al.scaffold.applicationInsightsConnectionString": "",
    "rolandthompson.al.scaffold.foldersToCreate": [
        {
            "name": ".builds"
        },
        {
            "name": "src",
            "subfolders": [
                {
                    "name": "Tables"
                },
                {
                    "name": "TableExts"
                },
                {
                    "name": "Codeunits"
                },
                {
                    "name": "Pages"
                },
                {
                    "name": "PageExts"
                },
                {
                    "name": "Reports"
                },
                {
                    "name": "Enums"
                },
                {
                    "name": "EnumExts"
                },
                {
                    "name": "XmlPorts"
                },
                {
                    "name": "Querys"
                }
            ]
        },
        {
            "name": "res"
        },
        {
            "name": "test"
        }
    ],
    "rolandthompson.al.scaffold.customObjectRange": [
        {
            "from": 50000,
            "to": 50100
        },
        {
            "from": 60000,
            "to": 60100
        }
    ],
    "rolandthompson.al.scaffold.moveALFiles": true,
    "rolandthompson.al.scaffold.moveALFilesToDir": "src",
    "rolandthompson.al.scaffold.downloadFilesToRoot": [
        {
            "filename": "https://yoururl.com/build.ps1",
            "destfile": "build.ps1"
        },
        {
            "filename": "https://yoururl.com/.gitignore",
            "destfile": ".gitignore"
        }
    ]
}

Then all these will be applied to the current Workspace. The settings specific to this extension will then be skipped when running the scaffold, as they have already been specified.

Release Notes

Version 0.0.6

Improved folder/subfolder creation Allowed for additional fields Ability to download extra files

Version 0.0.5

Fixed issue downloading with some SSL certs

Version 0.0.4

Altered Object range settings to use JsonObject Altered FoldersToCreate to use Objects, now supports subfolders

Version 0.0.3

Fixed an issue with Object range arrays not being supported

Version 0.0.2

Fixed issue with folders not being created

Version 0.0.1

Initial release

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft