Acuminator is a Visual Studio extension that simplifies development with Acumatica Framework. Acuminator provides the following functionality to boost developer productivity:
- Static code analysis diagnostics, code fixes, and refactorings
- Syntax highlighting of Acumatica-specific code elements
- BQL formatting and outlining
- Navigation between related code elements
- The Code Map tool which displays the structure of graphs, DACs, and their extensions
- Acumatica Code Snippets which contain templates for DACs, DAC fields, and graph events
Acuminator provides diagnostics and code fixes for common developer challenges related to Acumatica Framework. Acuminator finds common mistakes and typos that are usually not so easy to find, for example:
- Incorrect signatures of the
PXAction
delegates - Typos in the names of view delegates
PXStringList
declarations without thePXDBString
attribute- C#-style inheritance from
PXCacheExtension
- Incompatible types of a DAC property and a DB field attribute declared on it
- Improper localization of a string
For the detected errors, Acuminator suggests code fixes. For the full list of supported diagnostics and code fixes, see Diagnostics.
Acuminator supports two approaches for the suppression of unwanted diagnostic alerts:
- Suppress diagnostic with a special comment placed a line above the code
- Suppress diagnostic with a specific suppression file. With this mechanism, a specific project file will store a list of diagnostics suppressed in the project. This approach is supported only if Acuminator is installed as a VSIX plugin.
Acuminator adds code coloring to the following Acumatica-specific code elements:
- Graphs and graph extensions
- DACs and DAC extensions
- DAC fields
- BQL queries: operators and angle braces
- BQL constants
- Actions
You can adjust the color schema in the "Fonts and Colors" section of Visual Studio settings.
Acuminator allows you to format BQL statements, which improves the readability of complex BQL queries. The command to enable formatting of BQL queries is located in the context menu of the Visual Studio code editor.
Also, Acuminator provides an outlining functionality. It can collapse parts of BQL queries and the code inside attributes to small tags, which makes it easier for you to focus on the parts of code related to the current task.
Acuminator adds a command to the context menu of the Visual Studio code editor. The command allows you to quickly navigate between the following objects:
- A graph view and its view delegate
- An action and its delegate
Acuminator provides the Code Map tool which displays to the user a structure of the following Acumatica-specific code elements:
-
Graphs and graph extensions. For these elements, the Code Map displays the following:
- Views and corresponding view delegates
- Actions and corresponding action delegates
- Cache attached events with attributes declared on them. The events are grouped by the DAC type and the DAC field
- Row events grouped by the DAC type
- Field events grouped by the DAC type and the DAC field
- Members overridden using the
PXOverride
attribute - Overrides of virtual type members including the
Persist
method in the Base Overrides node - Constructors and the
IsActive
method in the Initialization and Activation node
-
DACs and DAC extensions. For these elements, the Code Map displays:
- Key DAC fields with attributes declared on them
- All DAC fields with attributes declared on them
- The
IsActive
method for a DAC extension in the Initialization and Activation node
For each DAC field, the Code Map displays the following additional information:
- The field data type
- Indicator of whether the field is bound or unbound
- Indicator of whether the field has identity functionality
- Indicator of whether the field has auto-numbering functionality
The Code Map shows the elements in a tree view. You can collapse a tree node to hide all its descendants. The Code Map also provides an ability to sort nodes children and descendants alphabetically or by the declaration order.
You can navigate to every code element displayed in the Code Map by double clicking on the corresponding tree node. Some category nodes support cycling navigation. You can double click them sequentially and navigate through the list of its children code elements.
A code snippet is a small block of reusable code that a developer can paste in a code file. Acuminator provides Acumatica Code Snippets which represent a collection of C# code snippets designed for customizations of Acumatica ERP. Acumatica Code Snippets provide templates for the following:
- DACs and DAC fields
- Graph event handlers with the following signature styles:
- Classic Name Convention signature
- Generic signature
- Short generic signature for graph field events
All code snippets are located in the Acumatica Code Snippets repository and can be downloaded separately.