Angel \”Java\” Lopez on Blog

March 13, 2012

Acquarella Syntax Highlighter

Filed under: .NET, Acquarella, C Sharp, Open Source Projects — ajlopez @ 2:15 pm

Past weekend, I was coding a simple and configurable syntax highlighter, in C#, named Acquarella. You can see the result at:

The current solution has a class library project, a console program and a test project:

The idea is to have a library you can reference and use from your projects, in case you need some syntax highlighting functionality. The library takes a text (an string) and, giving the source code language and style name, transform it to another text, using configuration files. There is a more detailes information at project

Dog fooding, the Token.cs class transformed by Acquarella:

namespace Acquarella.Lexers
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    public class Token
        private string text;
        private int start;
        private int length;
        private TokenType type;

        public Token(TokenType type, string text, int start, int length)
            this.type = type;
            this.text = text;
            this.start = start;
            this.length = length;

        public string Value
                return this.text.Substring(this.start, this.length);

        public TokenType Type { get { return this.type; } }

        public int Start { get { return this.start; } }

        public int Length { get { return this.length; } }

Nice 🙂

Pending work: Recognize comments, more styles (maybe using css files), more language configurations, extending Lexer (maybe RubyLexer, CSharpLexer, etc.)

Keep tuned!

Angel “Java” Lopez

Create a free website or blog at