Enable Code Analysis for AL

23. January 2018 - Waldo
This post was originally published on this site

It’s the week of “undocumented features”, apparently. Today: code analysis. Apparently, the al-language extension comes with a built-in analysis for your al-code. Thing is: it’s disabled by default. Just go to settings (File/Preferences/Settings) and enabled it.

By adding the line to your settings.json of your environment (the right pane). Here is my settings.json-file:

You will get quite a number of “topics” it will analyse your code for. On the points it has issues with, it will show you a green line in your code, and you can see the exact “problem” as a tooltip when you hover over it, or in the “problems”-pane (CTRL+j / Problems). Here are just a few examples:

In this piece of code, I have 3 problems, which you can read below:

When hovering over the symbol with green line, you can see the problem. In this case, an unused variable:

What do you think of this one: you risk an overflow when you use this code:

Or one of my favorites: code that will never get executed:

Can I create my own analysis?

You can, but it’s a little bit cumbersome. You can create your own analysis-dll, drop it in the extension-folder, and go from there. I haven’t had a look at it .. because I’ll wait until this undocumented-but-already-cool-feature gets documented-and-even-cooler and supported, so we are sure that the work we put into it, is worth it. In the mean time: thumbs up, Microsoft! 🙂

Performance impact

I was told it does have a performance impact, so I guess that’s why it’s disabled by default. I haven’t noticed too much of an impact myself, to be honest.. but you are warned ;-).