Notepad++ and ThingML

I still haven’t properly talked about my master thesis topic, and now is not the time I’m going to do it either. What I will do is talk about the language my thesis is around, namely ThingML.

ThingML is a new domain specific language currently under development at SINTEF, it’s probably easier to just copy + paste the working on the page;

ThingML is a modeling language for embedded and distributed systems. It is developped by the Networked Systems and Services department of SINTEF in Oslo, Norway.

ThingML stands for “Thing” Modeling Language as a reference to the so called Intenet of Things.

The idea of ThingML is to develop a practical model-driven software engineering tool-chain which targets resource constrained embedded systems such as low-power sensor and microcontroller based devices.

ThingML is developed as a domain-specific modeling language which includes concepts to describe both software components and communication protocols. The formalism used is a combination of architecture models, state machines and an imperative action language.

The ThingML toolset includes text editors to create and edit ThingML models, a set of transformations to create diagrams from ThingML models and a set of code generators to compile ThingML to C, Java and Scala.

So, what does ThingML have to do with Notepad++? The current ThingML Editor isn’t really good, to be honest, it’s crap. Sadly, since there is no other editor (that not completely true, there is an Eclipse plugin, but Ecplise is way to big for ThingML. A simple stand-alone editor is preferably best for ThingML.) out there. Luckily you can make your own user defined languages packs for Notepad++, to make it easier to read code, indent it, and generally edit it. So that what I did today, so for you five other ThingML users out there, you can download the .xml file at the bottom of this post. For best usage you should install  the “Indent by Fold” plugin. You can find it here or in the Plugin Manager. Here is a little how-to on installing my language pack.

Import the file by opening  “User Defined Language” which you can find under “View->User Defined Dialog…”. Then click the  “Import” button and choose “ThingML_Npp.xml”. Then install the “Intend by Fold” plugin either by going to or by the Plugin Manager;  “Plugins->Plugin Manager->Show Plugin Manager”. Which is easiest.