2. Environment Setup

2.1. Compiling from the Source Repository

The Vala README.md file contains full and up to date instructions on how to download and compile Vala from the git repository.

2.2. Setting up your editor

A list of IDE(s) with Vala support is available.

Vala support is available also for build tools and editors.

2.3. Files

Vala source files are named in the GTK+ style, i.e. all lowercase, with no separators between words, in the format namespaceclassname.vala. For example, the filename for Vala.FormalParameter is valaformalparameter.vala.

For the Vala compiler and library there is only one namespace, and it is called “Vala”. Don’t put “using Vala;”; instead qualify the name of types you declare. For example “class Vala.FormalParameter : Symbol”.

2.4. Coding Style

The coding style used in Vala itself seems to be a variation of the GTK+ coding style.

  • Tabs rather than spaces.

  • Tab width unspecified, but 4 works well.

  • Hanging braces.

  • Cuddled else.

  • Braces necessary for single-line blocks.

  • Variable and method identifiers in lowercase, words seperated by underscores.

  • Type identifiers in CamelCase.

  • Enum members and constants in ALL_CAPS, words seperated by underscores.

  • C-style /* comments. */

  • Hungarian notation not used.

  • Variables are often declared with implicit type (i.e. var foo = new Foo ()).

  • No line-length limit.

  • No function-length limit.

  • Space between method name and parameters’ opening parenthesis.

  • Property get, set, default declaration all on one line, seperated by semicolons, if default implementations are used.

  • If properties have implementations, then get {, set { open new lines.

  • Attributes on their own line.

  • JavaDoc-style commenting on types, methods, variables.

  • Header at top of file contains:

/* filename.vala
 *
 * Copyright (C) 20yy-20yy  Copyright Holder <email@address>
 *
 * License text.
 *
 * Author:
 *   Programmer Name <programmer@email>
 */