Cedalion uses projectional editing, so editing Cedalion code requires some getting used to. The following short “hello, world” video tutorial demonstrates what it means to be working in a projectional environment. It shows how you can define new concepts by declaring them and then by (optionally) defining their projection. We show how we start by writing the code textually first, and then add the necessary definitions. For concepts we already defined we can use auto-completion to select the desired concept.
When editing Cedalion code you actually edit the program’s Abstract Syntax Tree (AST). For this reason, the “cursor” you see in the Cedalion editor is a rectangle surrounding some rectangular area of the code, which represents a node in the program’s AST. Navigation is the process of moving the cursor from one node to another on the tree.
The Cedalion editor supports three kinds of navigation:
- Mouse navigation: When the mouse is left-clicked, the cursor will wrap the inner-most rectangle that contains the coordinates of the click.
- Logical keyboard navigation: Moving from one node to either its parent node, or one of its children (first child or last child).
- Visual keyboard navigation: Moving from one node to a leaf node located on the next/previous row/column.
Keyboard navigation (logical or visual) is done with the Alt+Shift buttons pressed, in combination with the following buttons:
- Page-Up: Move to the parent node.
- Page-Down / Home: Move to the first child.
- End: Move to the last child.
- Left: Move to a leaf node on the next column.
- Right: Move to a leaf node on the previous column.
- Up: Move to a leaf node on the previous row.
- Left: Move to a leaf node on the next row.
Working with Git
If you installed Cedalion using docker or a VM, your project files will be stored inside the container/VM and not accessible to you on the outside. To fix that (and generally, to keep your files backed-up and versioned) we recommend using Git from within Eclipse. Eclipse has comprehensive support for Git, and we can use it to keep our Cedalion code in the cloud, as demonstrated in the following video: