Views

Customize the file-processing pipeline with Views.

Views represent a virtual, filtered perspective of a structured file. They define a series of transformation steps that extract specific, named scopes, effectively changing how the file is represented for linting purposes. By focusing only on relevant sections, Views let you control exactly what content is analyzed—and enable rules that apply only to specific parts of a file.

Each View is defined in a YAML file and consists of a series of steps that are executed in order. Each step includes the following fields:

  • name: The name of the step. If no type is provided, the name is used as the only scope for the value. Otherwise, the name is used as a metascope and will be appended to the active scope – such as heading.<name>.md.

  • expr: An expression that selects the data to be linted. The expression is evaluated by the active engine.

  • type: The type of the data. Supported types are md, adoc, html, rst, or org.

Here’s an example of a View that extracts the title and description fields from an OpenAPI document:

engine: dasel
scopes:
  - name: title
    expr: info.title
    type: md

  - expr: info.description
    type: md

  - expr: servers.all().description
    type: md

Views are stored in <StylesPath>/config/views and can be referenced in the .vale.ini file under any syntax-specific section:

Each step in a View contains a query that is processed by Daselarrow-up-right (JSON, YAML, or TOML), tree-sitterarrow-up-right (source code), or TextFSM (text).

Daselarrow-up-right is a command-line tool that allows you to query and modify data structures using selectors. It works with JSON, YAML, TOML, XML, and more.

Vale uses Dasel to query structured data in files and extract the relevant content. For example, given the following JSON:

You could use the following View to extract the name and description fields from each feature:

Check out the playgroundarrow-up-right to experiment with Dasel queries.

Tree-sitterarrow-up-right is a parser generator tool and an incremental parsing library. It can be used to build parsers for source code in any language.

Vale uses tree-sitter to parse source code and extract structured data. For example, given the following Python code:

You could use the following View to extract all comments and function docstrings:

See Pattern Matching with Queriesarrow-up-right for more information.

Coming soon!

Templates StylesPath