#### Language Definition v2.0 Introduction

Introduction to the GtkSourceView language definition files.

## Purpose

The primary purpose of a language definition file (a `*.lang` file) is to add support for syntax highlighting for a specific language.

## About the versions

We need to distinguish:

- The GtkSourceView library versions.
- The language definition file format versions.

The file format is at version 2 and is supported by the GtkSourceView library versions 2 to 5.

## Directories

To find `*.lang` files, GtkSourceView looks by default at several directories, relying on the XDG Base Directory Specification.

On Linux it is usually:

- `~/.local/share/gtksourceview-5/language-specs/` for custom `*.lang` files.
- `/usr/share/gtksourceview-5/language-specs/` for the `*.lang` files installed by GtkSourceView 5.

More precisely:

- `${XDG_DATA_HOME}/gtksourceview-${GSV_API_VERSION}/language-specs/` used in priority.
- `${data_dir}/gtksourceview-${GSV_API_VERSION}/language-specs/` for each `data_dir` of `${XDG_DATA_DIRS}`.

Replace `${GSV_API_VERSION}` by `5` for GtkSourceView 5.

## List of `*.lang` files shipped by GtkSourceView

To see if a language is supported by GtkSourceView, see the list of `*.lang` files in the Git repository.