All notable changes to this project will be documented in this file.
The format is loosely based on Keep a Changelog. The project does not follow Semantic Versioning and the changes are simply documented in reverse chronological order, grouped by calendar month.
- Adds a caching mechanism for caching the retrieval of 'ILogicalChild' by 'ILogicalChildOwner'
- Diagrams are not auto-layouted before taking a screenshot.
- Some unncessary dependencies were removed from
com.mbeddr.mpsutil.ecore.stubs
.
- Breaking change: debugger and spawner were not maintained and were removed.
- Added user defineable call back function when trace node is added to the trace tree
- The
auto-layout on init
flag is now working correctly.
- The preference component now shows the actively loaded profile correctly.
- A new kind of Checkin handlers (background handler) now support the interface
CommitCheck
which allows more options like running the code after the commit or in the background.
- When the attached cell can't be found (e.g. it is collapsed), the next suitable anchestor cell is now used to align the margin cell.
- The handling of enumeration properties by the Ecore importer/exporter has been improved, esp. if and how default literals are persisted on MPS and EMF side.
- A new language
com.mbeddr.mpsutil.checkinHandler
was added that can be used to execute pre-commit handlers which can approve or reject commits or execute arbitrary code before the checkin happens.
- The tests build script (
com.mbeddr.platform.tests.ts.build
) is no longer part of thecom.mbeddr.platform
build solution.
- RCP, installer, and all-in-one distribution was removed.
- Added trace explorer option to decorate nodes with values of evaluated counterparts, which are not part of the model.
- Added method to interface ITraceRecord
- The complete com.mbeddr.analyses project (integration with static checkers for C) was removed as it was unmaintained and apparently no longer used.
- In addition to some null checks, node annotations can now be compared and also children of references. The node difference descriptions were also improved.
- Some classloading issues with stubs were fixed.
- The language
com.mbeddr.mpsutil.favourites
was deprecated in favor of the builtin MPS bookmark manager. See: https://www.jetbrains.com/help/mps/navigating-through-the-source-code.html#use_bookmarks
- The usability of the language was improved and buttons were added to automatically populate a diagram. Auto-layout on init and saving the layout information can also be customized. The diagrams are now also more compact.
- A new option was added to supported automatically populating the diagram based on the declared language or the language that the diagram is contained in.
- The image aspect ratio is now kept when scaling the image in the presentation mode down to the maximum size.
- Antialising is now activated for images displayed in the presentation mode.
- A new generic class
Traversal<T>
is provided. It allows to do breadth-first traversals on data structures like graphs or trees. It is robust against cycles.
- Base: Added possibility to explicitly not display roots of concept
IMbeddrIDERoot
in mbeddr menus.
- A null pointer was fixed that was related to showing the documentation when the documentation tab is not opened.
- The documentation Tool is now only updated when the selection changed.
- com.mbeddr.mpsutil.compare: the diff preview feature now also works in external classes and not only test cases.
- An initialization issue related to the context actions tool was fixed.
- EditingGuide:
ProgramFragments
support error suppression, i.e. all model-checking errors are suppressed inProgramFragments
, so modelchecker will disregard them and not clutter. - EditingGuide: Fragment module depends on its original module, to access data that is needed, but in the original module and not copied to the temporary exercise model.
- Hyperlink:
HyperlinkUtil.openInBrowser()
behaves like no-op instead of raising an exception on null or empty URLs. - Asynccell: Stops polling for the calculated value in case the poll-request throws an exception and shows to the user, that the calculation has failed together with the thrown exception, instead of spamming the log on each poll with the exception.
- The comparator language now supports a diff tool that can be activated through the
show diff
checkbox.
- The interface
IIsDocumentationComment
is now integrated into the MPS TODO window and the old mbeddr todo viewer was completely removed.
- Interpreters now support data flow analysis.
- Action profiles now support priorities if multiple profiles are activated by default.
- Some small issues with the action profiles were fixed as well.
- When embedding a documentation section or model content as image, the inspector can now be rendered instead of the editor.
- Many usability were fixed and the editors (including presentation mode) polished.
- Higher level of nesting in sections is now support by all generators.
- PlantUML was updated to PlantUML to v1.2023.13 EPL version (regression bug).
- A dummy computation trace is now used when the computation trace is not available in the interpreter to prevent NullPointerExceptions.
- Referenced actions in action profiles now emit a warning when they can't be found.
- The Java library xmlbeans of the spreadsheet language was upgraded from version 2.6.0 to 4.0.0
- The Java library Apache Poi of the spreadsheet language was upgraded from 2.6.0 to 5.0.0
- The deprecated language
com.mbeddr.mpsutil.coverage.emma
was removed. As a replacement, the JaCoCo code coverage integration from mbeddr/mps-qa can be used (more information).
- The removed language
com.mbeddr.mpsutil.nodediff
was added back since the MPS action can only compare root nodes and not arbitrary nodes.
- The project was relicensed from EPL 1.0 to EPL 2.0 and PlantUML was updated to PlantUML to v1.2023.13 EPL version.
- The escaping of the new line character works again.
- Enhanced TraceExplorer to hide toolbar buttons.
- The language com.mbeddr.mpsutil.lantest was removed since it isn't fully working anymore.
- Assessement result entries with invalid references are now automatically removed.
- The cell editor screenshooter doesn't trim the offset of the editor component anymore.
- The cell editor screenshooter now supports editor extensions and the rendering quality was slightly improved.
- Fix the issue where the documentation annotation interferes with other annotations.
- Enhanced generateScreenshots to support multiple output models (forks in genplans).
- Enhanced TraceExplorer to allow custom filters on trace nodes, choose filters by menu and stores and can restore a manually unfolded trees.
- The language will no longer attempt to generate screenshots when run from an
MpsEnvironment
(i.e. the<generate>
Ant task) but will instead output a warning. Use mps-gradle-plugin, mps-build-backends, MPS tests, or other means to run the MPS make process in an IDEA environment. - plantuml was upgraded to v1.2023.12.
- When actionsfilter was enabled, MPS will no longer display an error saying that settings could not be saved.
- Added possibility to update the ToolWindow contents of context action 2 even if the Window is not visible.
- For documentation annotations of concepts there is a new flag
override children
in the inspector. It allows to show the document of a node even if the currently selected child node would have its own documentation. - By default, this new behavior is switched off. The
documentationAspectConfiguration
extension point now has a configuration optionallowOverrideChildren
which has to be set to true in order to use the override functionality. - A cache has been added to speed up the look-up and display of concept-specific documentation in the documentation view.
- The aspect documentation now can handle solution-level documentation as well and is not limited to extending languages.
- Improved the assessment editor to better separate individual assessments in an assessment container.
-
Concept
SectRefWord
, i.e.@sect[a section]
: It was only possible to open a referenced section in the sameDocument
by clicking the section-link in the documentation-tool-window. With this change it's possible to open a referenced section from anotherDocument
in the same model. -
Concept
DocRefWord
, i.e.@doc[a document]
: The reference to anotherDocument
was not shown as a reference/link in the documentation-tool-window. It would also not open the referencedDocument
on click. By adding a special editor, similar toSectRefWord
, document references are now perceived as references/links and open the referenced documentation, scrolled to the top, on click on theDocRefWord
.
The following languages/plugins were removed:
- com.mbeddr.mpsutil.testScope (superseded by MPS test scopes)
- com.mbeddr.mpsutil.runconfiguration (the workaround is included in MPS nowadays)
- com.mbeddr.mpsutil.rcpconfig (an internal module that is not needed anymore)
- com.mbeddr.mpsutil.nodediff (replacement: selected two nodes in the logical view, right-click -> Compare two nodes)
- com.mbeddr.mpsutil.licensemanager.common (an internal module that is not needed anymore)
- com.mbeddr.mpsutil.langstats (not very useful, was never meant as a productive language)
- com.mbeddr.mpsutil.gradlesupport (incomplete; use the language com.dslfoundry.plaintextgen from MPS-extensions instead)
- com.mbeddr.mpsutil.buildutil (an internal module that is not needed anymore)
- com.mbeddr.mpsutil.forms (experimental language that was never completed)
Update mbeddr.core languages to MPS version 2022.2
- use jbr 17 instead of jbr 11
- download jbr with mps gradle plugin
com.mbeddr.mpsutil.smodule.runtime.lib.ModelHelper#createModel()
method (used to implement theaddModel
operation of languagecom.mbeddr.mpsutil.smodule
) no longer deadlocks when run from EDT.
@doc[some document]
causes broken build unless a "some document" was also used in include.
c.m.m.xml.fix
: Go back to the old behavior of escaping all special characters in the text. There is an XMLExtension point which can be used to revert this change.
- Resource editor by default uses forward slashes instead of platform-specific forward and backward slashes
- Don't throw exceptions when the output path doesn't exist.
- Run auto layout on init for the diagrams.
- Fix freeze when opening the filepicker.
- Make the "documents" annotation deletable.
- Fix generation of references in the text.
- Support previewing gifs with image paragraphs.
- There is a new extensions point DocumentationAspectConfiguration with a method showReferenceConceptDocumentation. When the method is set to true, the documentation for the reference's concept is shown and not the referenced node (this is the old standard behavior).
- Fix issues with loading and unloading the language.
- Fix exception + adjust fonts in analyses results tool
- Fix layout issues caused by missing style in CRHelperCell
- Added two interfaces: ILogicalChild and ILogicalChildOwner to define child relation between nodes in different roots.
c.m.m.xml.fix
: in 2021.3.2 thejetbrains.mps.core.xml
language escapes the generated XML automatically and the escaping functionality ofxml.fix
is no longer necessary and is removed. However, the auto-escaping contains a bug in 2021.3 (fixed in 2022.2) where"
is incorrectly escaped as&quot;
and a new workaround is introduced for this bug.- Documentation: replace ModuleIdentity with ModulePointer in ModuleRefWord. This was a deprecated concept.
- Datepicker: Fix entering dates in the datepicker field (#1359).
- Trace explorer: don't try to highlight a node when there is no node in the tool.
- Trace explorer: Fix exception that occured when the rerun button is pressed when there is no trace.
- Fix exception
NullPointer: Cannot create configurable
in userstyles language. - json: Added paste and import action for json snippets and files.
- Don try attaching the mbeddr root menu when the model or repository is null.
- Set caption of CopySource action to "Copy sources to clipboard". It was previously set to "Zoom In".
- To avoid deadlocks, screenshots are now rendered from a Make facet rather than from the generator.
- Any screenshots that fail to render will cause the build to fail.
- The concepts SectionAsImageParagraph
and Visualization
now also use correct generation paths inside the
doc_gen
folder.
- Visualization of glossary term dependencies (com.mbeddr.doc.terms).
- Doc aspect: Activate editor extensions for the tools' editor component (styles like margin and border from celllayout work now).
-
CellEditorScreenshooter#takeScreenshotSynchronously
method that renders screenshots synchronously in the caller's thread. -
Documentation xhtml generator: links are now generated to referenced documents not only in the table of contents but also in the document itself.