Abstract
In modern Integrated Development Environments (IDEs), textual editors are interactive and can handle intermediate, incomplete, or otherwise erroneous texts while still providing editor services such as syntax highlighting, error marking, outline views, and hover help. In this paper, we present an approach for the robust synchronization of interactive textual and graphical editors. The approach recovers from errors during parsing and text-to-model synchronization, preserves textual and graphical layout in the presence of erroneous texts and models, and provides synchronized editor services such as selection sharing and navigation between editors. It was implemented for synchronizing textual editors generated by the Spoofax language workbench and graphical editors generated by the Graphical Modeling Framework.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Bravenboer, M., Kalleberg, K.T., Vermaas, R., Visser, E.: Stratego/XT 0.17. A language and toolset for program transformation. SCP 72(1-2), 52–70 (2008)
Brun, C., Pierantonio, A.: Model differences in the Eclipse Modeling Framework. In: UPGRADE, IX (April 2008)
Colvin, R., Hayes, I.J.: A semantics for Behavior Trees using CSP with specification commands. SCP 76(10), 891–914 (2011)
de Jonge, M., Nilsson-Nyman, E., Kats, L.C.L., Visser, E.: Natural and flexible error recovery for generated parsers. In: van den Brand, M., Gašević, D., Gray, J. (eds.) SLE 2009. LNCS, vol. 5969, pp. 204–223. Springer, Heidelberg (2010)
de Jonge, M., Visser, E.: An algorithm for layout preservation in refactoring transformations. In: Sloane, A., Aßmann, U. (eds.) SLE 2011. LNCS, vol. 6940, pp. 40–59. Springer, Heidelberg (2012)
Dmitriev, S.: Language oriented programming: The next programming paradigm (2004)
Dromey, R.G.: From requirements to design: Formalizing the key steps. In: SEFM, pp. 2–11 (2003)
Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: OOPSLA, pp. 307–309 (2010)
Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF - reference manual. SIGPLAN 24(11), 43–75 (1989)
Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and refinement of textual syntax for models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)
Hemel, Z., Kats, L.C.L., Groenewegen, D.M., Visser, E.: Code generation by model transformation: a case study in transformation modularity. SoSyM 9(3), 375–402 (2010)
Jouault, F., Bézivin, J., Kurtev, I.: TCS: a DSL for the specification of textual concrete syntaxes in model engineering. In: GPCE, pp. 249–254 (2006)
Kats, L.C.L., Visser, E.: The Spoofax language workbench: rules for declarative specification of languages and IDEs. In: OOPSLA, pp. 444–463 (2010)
Konat, G., Kats, L., Wachsmuth, G., Visser, E.: Declarative name binding and scope rules. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 311–331. Springer, Heidelberg (2013)
Krahn, H., Rumpe, B., Völkel, S.: Integrated definition of abstract and concrete syntax for textual languages. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 286–300. Springer, Heidelberg (2007)
Mülder, A., Nyßen, A.: TMF meets GMF. Kombination textueller und grafischer Editoren. Eclipse Magazin 3, 74–78 (2011) (in German)
Myers, T.: TextBE: A textual editor for behavior engineering. In: ISSEC (2011)
Object Management Group. Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification. Version 1.1 (January 2011)
Scheidgen, M.: Integrating content assist into textual modelling editors. In: Modellierung, pp. 121–131 (2008)
Scheidgen, M.: Textual modelling embedded into graphical modelling. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 153–168. Springer, Heidelberg (2008)
Simonyi, C.: The death of computer languages, the birth of intentional programming. In: NATO Science Committee Conference (1995)
Smith, C., Winter, K., Hayes, I.J., Dromey, R.G., Lindsay, P.A., Carrington, D.A.: An environment for building a system out of its requirements. In: ASE, pp. 398–399 (2004)
Steel, J., Raymond, K.: Generating human-usable textual notations for information models. In: EDOC, pp. 250–261 (2001)
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework, 2nd edn. Addison-Wesley (2009)
van der Storm, T., Cook, W.R., Loh, A.: Object grammars: Compositional & bidirectional mapping between text and graphs. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 4–23. Springer, Heidelberg (2013)
Visser, E.: A family of syntax definition formalisms. Technical Report P9706, Programming Research Group, University of Amsterdam (August 1997)
Wen, L., Colvin, R., Lin, K., Seagrott, J., Yatapanage, N., Dromey, R.G.: “Integrare”, a collaborative environment for behavior-oriented design. In: Luo, Y. (ed.) CDVE 2007. LNCS, vol. 4674, pp. 122–131. Springer, Heidelberg (2007)
Xing, Z., Stroulia, E.: UMLDiff: an algorithm for object-oriented design differencing. In: ASE, pp. 54–65 (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
van Rest, O., Wachsmuth, G., Steel, J.R.H., Süß, J.G., Visser, E. (2013). Robust Real-Time Synchronization between Textual and Graphical Editors. In: Duddy, K., Kappel, G. (eds) Theory and Practice of Model Transformations. ICMT 2013. Lecture Notes in Computer Science, vol 7909. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38883-5_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-38883-5_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38882-8
Online ISBN: 978-3-642-38883-5
eBook Packages: Computer ScienceComputer Science (R0)