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.
- Updated
GeneratorFacade
helper class to support execution of genplans with Transform steps that have multiple entries (migrated from the old, deprecated languages list) which have to be executed all together in one single generation step. - Breaking: The language
com.mbeddr.mpsutil.httsupport
was removed. Please usejetbrains.mps.ide.httpsupport
instead.
- A new language
com.mbeddr.mpsutil.collections
was added that adds support for a set typenset
that use nodes as the values of the set. Equivalence of nodes is checked structurally. The hash code calculation is done for all properties and children and the first level of references. The runtime solution also contains a more general classEquivalenceHashSet
to implement hashsets with arbitraryequals
andhashcode
methods.
- The language
com.mbeddr.spreadsheat
was renamed tocom.mbeddr.spreadsheet
.
- The language
com.mbeddr.mpsutil.projectview.favourites
was removed. Please use the MPS bookmarks manager instead: https://www.jetbrains.com/help/mps/navigating-through-the-source-code.html#use_bookmarks - The stub solution
org.apache.batik
were removed. Please usede.itemis.stubs.batik
from MPS-Extensions instead. - The stub solution
org.xml
were removed. Please usede.itemis.stubs.xml
from MPS-Extensions instead.
- 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.