New Eclipse Todo Editor Release (1.1.0)

It has been a while since the last release of the Eclipse Todo Editor. After its initial release I have been using and updating it on a regular basis. Besides using it for tracking my todo lists, it has also become my favorite tool for taking notes during meetings and discussions. Now I am happy to announce the new 1.1.0 release. It has some great new features, shifting its focus from a todo list manager to a general note taking application. You can install it either via Eclipse Market Place or its Update Site.

Screenshot

Syntax Highlighting

While developing, I often store code snipplets in my todo files. To make these more readable, I added support for custom syntax highlighting for different programming languages. The only thing you need to do is to declare the language after the code block literal:

'''java
public class MyClass{
  public static void main(String[] args){
    System.out.println("Hello World");
  }
}
'''

Here is an example what it looks like in the editor

Syntax highlighting example

Images & Links

You can now specify links and images in the todo files. The editor automatically underlines links within the text. You can open a link by pressing F3 or hold CMD/STRG when clicking on it. Links with descriptions and images can be specified in Markdown syntax:

Images and hyperlinks

Export

You might have wondered why one wants to specify links or images in a todo file. This comes in handy with the new export feature: todo files can now be exported into HTML or Confluence Markup using the context menu in the editor. Links and images will be translated into their respective counterparts. Here is an example how this blog post would look like (note that the syntax highlighting in the code snippet is still present).

More

Other new features are:

  • Migration to Xtext 2.2.1
  • CMD/Ctrl + Click a tag and it will automatically open the query view showing all elements with this tag
  • Notes and projects can now be tagged
  • Tags do now also apply to subtasks
  • Support for text folding
  • Improved spell checking (Quick fixes, can be disabled via preferences)

Filed under  //  eclipse   gtd   todo   xtext  
Comments (0)
Posted

Register for Coderetreat Munich

The registration for our Coderetreat in Munich has started. Head over to http://coderetreatmunich2011.eventbrite.com/ to join the event. It's going to be great! You can find more information here: http://coderetreat-munich.de/.

Carit

Comment (1)
Posted

Global day of Coderetreat: Munich Edition

Where I work we have some really great programmers. They all have different backgrounds, which make them a great source to learn from. Unfortunately, I never really had the chance to program with most of them, because they either work in a different team or in a different project. I always considered this to be a missed opportunity and was searching for a way to improve skill transfer among my colleagues. My search ended when I heard about coderetreats.

A coderetreat is a daylong event, focused on practicing the basic principles of good design without the pressure of having to get things done. The day is split into six sessions, in which you work on the same problem over and over again. In each session you will pair with a different programmer to maximize the knowledge transfer. The important thing is that after each session all the code that has been written so far is deleted. This gives you the chance in the next session to all start over again without being constrained by any design decisions you made in the previous one. The combination of pair programming with the focus on writing perfect code instead of solving the problem gives you a unique opportunity to improve your skills.

Since hearing about coderetreats I have facilitated two internal coderetreats at my workplace. They turned out be great fun and we all learned a lot during the day. This is why I am really happy to announce that we will be facilitating a public coderetreat at BMW Car IT on December 3rd. This coderetreat will be part of the Global Day of Code Retreat initiated by Corey Haines. Coderetreats will take place all over the world. The event is free of charge, food and drinks will be provided by BMW Car IT. If you are a programmer and eager to learn, head over to www.coderetreat-munich.de for more information and registration.

Filed under  //  munich   coderetreat  
Comments (0)
Posted

A simple text-based todo editor for Eclipse

While developing I like to keep track of small issues that come up over time - a duplication to remove; a missing test for a corner case. All these little things you don’t create a bug for, but which would be annoying to forget. There exists a plethora of tools for managing todo lists. Unfortunately, I never found one that fitted my workflow. So I ended up writing my todo lists in simple text files (I tend to lose anything that I write on paper, so pen and paper never really was an alternative). 

At least, this was the case until I discovered Taskpaper. Taskpaper is a text editor with special syntax highlighting support for managing todo lists (and some other really cool features). While Taskpaper is really great, it is only available for Mac OSX. Unfortunately, I am at work still stuck with windows. So I decided to create a todo list editor that provides the effectiveness of Taskpaper while being fully integrated into Eclipse. Being a big fan of Xtext, it was the obvious choice to use Xtext for the implementation. I have been actively using my todo list editor now for several month and it has turned from just a todo list to my favorite everyday note-taking application. 

The editor in action

Installation

You can install the editor via its update site or via the Eclipse Marketplace. It runs with Eclipse 3.6 and 3.7 and requires Xtext 2.0. The source code is available at Github.

How does it work?

Create a new file with the extension *.todo or *.taskpaper. The file will be opened in the todo editor. The basic elements of a todo list are: Todos, Projects, Tags, and Notes. These help you to structure and manage your todos.  

Todos

Write a new todo by starting a new line with a hyphen. Todos can be marked as done by adding the ‘@done’ tag. They will be marked with strike through.

Todoexample
Projects

You can use projects to structure your todo lists. Declare a project by appending a colon at the end of the line. Project names are automatically highlighted with a bigger font to separate them more clearly. Be careful not to add additional whitespaces before the line break. Projects are hierarchical. You can attach content to a project by indenting its content with a tab or two spaces. 

Projectexample
Code

I often keep code snippets in my todo list. To make them more readable, you can enclose them within ‘’’ ‘’’. The text in between will be written in a fixed width font.

Notes 

Any other text that you write in your text file is treated as a note. Notes are highlighted in gray.

Tags

One of the most powerful features of the editor are tags. You can use tags to annotate any element in your file. You have already seen the @done tag earlier. It is used to mark todos as done. But you can use your own tags as well. Tags can even have additional parameters, written in parentheses. We will see later what they are good for.

Queries

Queryexample

Often I want to quickly list all open todos for today. This is possible with the query view. You can use the view to search through all todo files in your workspace. Open it by selecting: "Window -> Show View -> Others -> Todos -> Query". Enter queries into the search box at the top, to search for todo by their text, keywords, or tags.

Here are some examples:

“a phrase” => returns all elements that contains the specified phrase

@done => returns all todos with the tag done

not @done => returns all todos which do not have the tag @done

 @prio = 1 => returns all todos with the tag @prio(1)

@prio < 3 => returns all todos which tag @prio has a value less that 3

Queries can also be combined:

“a phrase” and not @done => returns all open todos that contain the specified phrase

By the way, the query language is also implemented in Xtext. The search box is a little Xtext editor that provides even code completion. 

Shortcuts

There are some keyboard shortcuts availabe:

CMD + R / STR + R => remove all done todos in the editor

CMD + T / STR + T => create a new empty todo list (works only in the standalone application)

Standalone RCP application

There is also a standalone todo editor available. It is still a little rough around the edges but completely usable. You can find the instructions on how to build the RCP application on the Github page. 


A screenshot of the standalone todo editor.

 

Filed under  //  eclipse   gtd   xtext  
Comments (12)
Posted

Xbase interactive programming environment

One of the exciting new features of the upcoming Xtext 2.0 is the integration of the general purpose expression language Xbase. Sven Efftinge gives an excellent introduction to Xbase in his blog post. Having such a language makes it a lot easier to create more complex DSLs which require some form of expression language. For example, creating a DSL for modeling statecharts with states and transitions is already really easy with Xtext. However, extending the language to support defining guards and actions for transitions is still quite complicated, because these require an expression language. Implementing such a language with Xtext is not trivial. But with Xbase this will be a thing of the past, because you can integrate it directly into your DSL. Even better, Xbase also provides an interpreter which you can use for executing your statecharts.

Screen_shot_2010-12-11_at_1

Xtext 2.0 will be released together with Eclipse Indigo in June 2011. However, being curious I wanted to try the current implementation of Xbase. One of the best ways to explore a new language is via an interactive programming environment (often called a REPL for Read-Evaluate-Print-Loop). So far Xtext only provides an interpreter for Xbase, without an actual REPL. So I started to write my own. I wanted to see whether it was possible to create a REPL for Xtext-based languages. Of course, the REPL should support all the goodness that is provided by Xtext, such as syntax highlighting, code completion, and validation. It proved to be simpler than expected. My implementation is based on the Xtext forms integration and the OCL console which is part of the OCL Examples. Here is a short screen cast demonstrating the capabilities of the new REPL (and of course Xbase).

Xbase is currently in active development and does not yet supports all of its planned upcoming features. I think the REPL is a nice way to explore Xbase. Therefore I plan to make it publicly available with one of the next Xtext milestone releases. I am really excited about the possibilities that Xbase provides and have some great ideas for future versions of the REPL. So stay tuned...

Filed under  //  eclipse   xbase   xtext  
Comments (8)
Posted