mbeddr / mbeddr.core

The mbeddr core. An extensible C
Eclipse Public License 2.0
223 stars 77 forks source link

mbeddr.doc: DocumentationDescriptor cannot be resolved #2175

Open arimer opened 3 years ago

arimer commented 3 years ago

Adding a documenation aspect to your language and an empty Document http://127.0.0.1:63320/node?ref=r%3A5f7188a9-e7b4-4a2e-bef9-38d2cf379fdc%28com.mbeddr.doc.structure%29%2F3350625596579911728 leads to a compilation error.

It looks like the Document needs to at least reference one Concept of the structure model of the corresponding language to be able to compile successfully.

eugenschindler commented 3 years ago

To be a bit more precise: one needs to add a DocumentedConceptAnnotation to a section in order to make it have no compiler error. This can be done as follows:

I tested and it also works with the Add reference to documented property intention.

Thanks to @kbirken for the hints. Maybe it's good to have a look at this, since more people are getting into this "undocumented feature" of the doc language?

If it is not possible to solve the issue timely, maybe it would be possible to make a mitigation? A very simple improvement could be to simply put a document model into the documentation aspect upon its creation, with a section and in it the hint text "In order to prevent compiler errors, execute Add reference to documented concept/property on this section and point to a concept of the language to which this documentation aspect belongs".

eugenschindler commented 3 years ago

For making this piece of information better accessible to search engines: the error that you get in this specific situation is something along the lines of: [jetbrains.mps.make.CompilationErrorsHandler] MbeddrDocLangTest\Language.java : The import MbeddrDocLangTest.documentation.DocumentationDescriptor cannot be resolved
[jetbrains.mps.make.CompilationErrorsHandler] MbeddrDocLangTest\Language.java : DocumentationDescriptor cannot be resolved to a type