Rust Support now in Beta
Support for Rust has now entered Beta, and we would love your feedback!
Try it with your Rust projects and let us know how it works for you so we can continue improving it.
New Features
Localization
Add Japanese translation files for the plugin manager.
Editor
Add syntax highlighting for Markdown
Entity Filter
Add 'Unused Methods' to entity filter for Basic
Add 'Unused Objects' to entity filter for Python
Interactive Reports
Convert batch graph plugin from Perl to Python and add ability to generate graphs for architectures
Metrics
Add more architecture structural metrics (percentages of parent/root, recursive child count).
Settings
Add ability to remove files from Analysis Log errors - "Remove Missing files" right click menu added to the the project->config->Files dialog.
Improved handling of project configuration changes so that a language option change does not force a full reparse of files of other languages
Settings
AI settings now show the model for providers like LM Studio.
Python MCP Server
- Update get_architecture_details tool to be more useful and actionable.
- Update mcp_server_for_understand_llm_
optimized.py to allow launching in sse mode. - Update mcp_server_for_understand_llm_
optimized.py to use a strict json schema.
VS Code Extension
Add auto-complete for the strings . :: and ->
Language - Web
For Javascript, added 'Assign Initial' reference from properties to the initial value entity. Added ‘Renamecall’ and 'Call Indirect Possible' references for calls made through an exported object literal property.
CodeCheck Checks
- Allow running Dependency Checks and Compiler Warnings without a CodeCheck license.
Added New MISRA23_6.4.3 CPP_DD031: A name that is present in a dependent base shall not be resolved by unqualified lookup
Added new MISRA23_11.6.2: The value of an object must not be read before it has been set
Added new MISRA23_15.8.1: User-provided copy assignment operators and move assignment operators shall handle self-assignment
Added new MISRA23_28.6.4 and CPP_L046 The result of std::remove, std::remove_if, std::unique and empty shall be used
Add check MISRA23_8.18.1: An object or subobject must not be copied to an overlapping object
Added new MISRA23_15.0.1 and CPP_F071: Special member functions shall be provided appropriately
Added new MISRA23_28.3.1 CPP_L047: Predicates shall not have persistant side effects
Add check MISRA23_6.2.2: All declarations of a variable or function shall have the same type
Added new MISRA23_6.4.1 CPP_DD033: A variable declared in an inner scope shall not hide a variable declared in an outer scope
Bug Fixes
AI
Fix crash while generating AI descriptions
Fixed large files not working with AI overviews
Filter
Fixed bug in 'Unused Objects' filter for Ada, C#, Fortran, Java, Pascal and Web where entities were displayed that shouldn't have been
Omnibar
Reduce hang on project open.
Installer
Sign Windows binaries individually to potentially speed up application open
Python API
Fix crash when a plugin script raises an exception
Plugins
Language - C++ (Strict)
Fix invalid line count metrics in function definitions expanded from macros
Fix reference kind of arguments to implicit constructor calls in constructor initialization lists
Language - Web
Fixed syntax errors parsing some css constructs.
For Javascript, made changes to better handle entity lookup using files imported using dynamic import expressions.
CodeCheck Checks
Fix switch statements for "Ignored Return Values" A0-1-2, CPP_F024, CPP_F038_A, MISRA08_0-1-7, MISRA12_17.7, MISRA23_0.1.2, MISRA23_17.7, POWER_OF_TEN_07_A
Add support for non-standard assembly keywords in M7-4-2, MISRA08_7-4-2, CPP_A000, rename CPP_A007 to CPP_A000
Only check copy constructors, add violations for modifying globals in "Side Effects in Copy Constructors" MISRA08_12-8-1, CPP_C008
Add option to check that constructors initialize members, disabled by default, for A12-7-1, CPP_D068
Improve accuracy of "Member Functions That Should Be Static Or Const" MISRA08_9-3-3, M9-3-3, CPP_F014
Add violations if not including header for "Standard Header signal.h" MISRA12_21.5, MISRA23_21.5, CPP_L045
Update keyword list, add options for "Keyword Macros" MISRA12_20.4, MISRA23_20.4, CPP_P018
Fix tags used in other ways for "Unused tag declaration" MISRA12_2.4, MISRA23_2.4, CPP_U005
Fix lexer issue in "Compare classes and not class names" OBJ09-J, JAVA_OBJ09
Fixed: False negatives in MISRA23_14.4 with bitwise operators
Improve accuracy of "Goto Into or Between Blocks" MISRA12_15.3, MISRA23_15.3, CPP_CF011
Fixed: False positive in MISRA23_10.1.1 when parameter is passed to function with non-const pointer/reference param
Fixed: False negatives in MISRA12_17.3 for functions with no definition in project
Known Issues
- Understand can take up to a minute to launch on Windows
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus license server
- Print Preview may not function correctly
