Supervision
Supervision is a free software program which can transform C/AL object text files into color-coded
hyper-linked interactive HTML files.
The purpose of Supervision is to give Microsoft Dynamics NAV developers an easy and intuitive way
to browse C/AL source code which provides better insight into the semantics of C/AL programs.
Supervision is tested against Microsoft Dynamics NAV 2009 and NAV 2013.
Status
- 2013/03/24 Supervision 1.0.1
- 2013/01/30 Supervision 1.0.0
- 2012/12/11 Supervision 0.9.3.0
- 2012/09/13 Supervision 0.9.2.0
- 2012/08/24 Supervision 0.9.1.0
- 2012/08/12 Supervision 0.9.0.1
- 2012/08/10 Supervision 0.9.0.0
Features
- Output: Produces HTML/JavaScript code from Microsoft Dynamics NAV text export files
- Hyperlinks:
- Usages of user-defined functions, variables, parameters, fields, system-defined
variables, and object types link to their declaration
- Usages of C/AL system functions link to official Microsoft C/AL language
documentation
- Tool-tips:
- When hovering over a declaration, usages within the same object is counted and usages
are high-lighted
- When hovering over usages of variables, parameters etc, the type of the corresponding
declaration is displayed
- Indexing:
- An object index page provides overview of the NAV objects processed
- For individual C/AL objects, the object is outlined, enabling easy navigation to e.g.
user-defined functions
- Code colouring: Detailed and customisable code colouring
- View options:
- Hide/show comments
- Enable/disable tool-tips
- Navigation history is listed in-page for easy back and forth navigation
License
Statical Supervision is provided free and as-is (no warrenties).
You can freely distribute the software as long as it is for free and you do not re-package or
re-brand the software.
You are not allowed to reverse-engineer the software and you are not allowed to build and
distribute software that processes the output produced by Statical Supervision.
Supervision uses the following 3rd party components licensed as follows:
F# PowerPack is licensed under
Apache License 2.0.
Rx (Reactive Extensions) is licensed under
Apache License 2.0
Installation
Download and install:
Please note that the previous version may need to be uninstalled before running the installer.
- Microsoft .NET Framework 4.5 (Full)
- Supervision 1.0.1 (MSI)
Then follow these steps:
- Start Supervision
- Export the objects you want to supervise via Microsoft Dynamics NAV - you must choose export to text format
- In Supervision select the object text file as the source file
- In Supervision select an output directory (or create a new one)
- Press Process
- When the process has finished go to the output directory
- Open the index.html file in one of the supported browsers (see Browser Compatibility)
Export an object source text file from Dynamics NAV
Browser Compatibility
Our browser testing has been as follows:
- Chrome: primary test platform
- Internet Explorer: secondary test platform
- Firefox: loosely tested and appears to work very well
- Opera: loosely tested and appears to work very well
We invite the community to
submit Javascript/HTML fixes for improved x-browser compatibility. This is possible because the
Javascript files are not compacted or otherwise obfuscated (except jQuery).
How to customize code coloring
We have provided a dark code colour scheme resembling the one provided by Visual Studio 2012.
We encourage developers to experiment with different colour schemes. To do that, follow these
steps:
- Process a C/AL text file exported from NAV
- Locate the Cascading Style Sheet (CSS) file dark.css in the folder assets of the output
directory
- Experiment with colours by adapting the file dark.css and reloading
- Once you are happy with the colours, copy dark.css to the installation folder of Supervision,
overriding the existing file which is located in the assets folder
If you think your stylesheet may be of use to others, please e-mail the sheet to us, and we may
distribute the sheet with future version of to download from our web-site.
Limitations & known bugs
- Tested with Dynamics NAV 2013 and 2009 object text files - may not work with previous versions
- Dataports and XML ports are not supported
Submitting bug reports
Please note that this is a hobby project and so we do not provide support as such. Nonetheless
we are very interested in bug reports so we can add them to the list of known bugs and resolve them
when we have the time to do so.
supervision-bugs@stati-cal.com
Other Feedback
Send other feedback to:
feedback@stati-cal.com
What's under the hood
The processing code is written in F#, which is a multi-paradigm language provided by Microsoft.
We have almost exclusively used the functional features of F#.
Roughly, the processing consists of this:
- Lexing: Tokenizes text files into e.g. keywords, operators, and identifiers
- Parsing: Builds a parse tree of an object
- Semantic analysis: Relates names to declarations
- Annotation: produce an annotated source-code file
For more details, please take a look at our whitepaper,
Supervision—F# for Static Analysis.