GithubHelp home page GithubHelp logo

Comments (4)

wpiers avatar wpiers commented on July 2, 2024

This is due to the fact that we store models in XMI, not in text. Thus the model is parsed/serialized on each save.

To avoid that, the solution would be to store models in textual syntax, in a standard XText mode.
This implies that the XText syntax must be flawless.
Also, storing models in text prevents the use of Eclipse CDO, but this might not be relevant for us.

from ecore.

vincent-zurczak avatar vincent-zurczak commented on July 2, 2024

I don't know what is the interest of storing models in XMI files.
Maybe other members of the project need it.

A dirty workaround would be to hack the save process.

  • Intercept the new serialized text, remove all the spaces and line breaks...
  • ... (re)load the current text content, remove all the spaces and line breaks...
  • ... and compare it (optimistic hypothetisis: the serializer does not modify elements order).

If it is the same, we do not write into the file.
And normally, it should be the same...

No matter how it is done, the XText editor looses its interest if it reformats all the code. 😢

PS: unlike the text format, I think almost no one will edit XMI directly.
So, if I had to choose one side, I would do generate XMI from the textual reprensentation. 🚸

from ecore.

vincent-zurczak avatar vincent-zurczak commented on July 2, 2024

Then, there are elements I don't know much about... because I did not search.
As an example, maybe the XMI is used by the OCCIE modeler. How does it work when both editors are open?

from ecore.

philippemerle avatar philippemerle commented on July 2, 2024

In EMF, the default serialization format is XMI.
XMI files can be read by Eclipse tools we use, e.g., Sirius, Acceleo, etc.
Saving extensions in text format could be incompatible with Eclipse tools we use.
But saving extensions in text format allows one to add comments, identations, and so on.
So we should find a solution supporting text format but also compatibility with used Eclipse tools.

from ecore.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.