Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Qualimetry Gherkin AnalyzerNew to Visual Studio Code? Get it now.
Qualimetry Gherkin Analyzer

Qualimetry Gherkin Analyzer

Qualimetry

|
13 installs
| (0) | Free
Real-time static analysis for Cucumber Gherkin .feature files - structure, design, style, and correctness rules powered by the Qualimetry analysis engine.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Qualimetry Gherkin Analyzer - VS Code Plugin

CI

A VS Code extension that provides real-time static analysis for Cucumber Gherkin .feature files as you edit.

Powered by the same analysis engine as the Qualimetry Gherkin Analyzer for SonarQube and the Qualimetry Gherkin Analyzer for IntelliJ.

Features

  • 86 analysis rules covering structure, design, style, tags, variables, spelling, and more.
  • Real-time diagnostics - issues appear as you type, with squiggly underlines and Problems panel entries.
  • Cross-file analysis - checks for unique Feature names, unique Scenario names, and consistent Gherkin language across all .feature files in the workspace.
  • Configurable severity - override the default severity of any rule.
  • Per-rule properties - tune thresholds (e.g. max scenario count, indentation size) per rule.
  • TextMate syntax highlighting - Gherkin keywords, tags, variables, and strings are highlighted out of the box.

Rule categories

Category Examples
Structure Feature/scenario/step required, naming conventions
Design Step ordering, single When, background best practices
Style & Convention Indentation, trailing whitespace, line endings, spelling
Tags Naming patterns, placement, duplicates, restrictions
Variables & Data Unused variables, Examples column coverage
Step Patterns Given/When/Then patterns, unknown step types
Comments & Markers TODO, FIXME, comment patterns
Structural Integrity Outline placeholders, Examples required, blank lines
Configurable Thresholds Max scenarios, max steps, max tags, max lines

Installation

From GitHub Releases

Download the latest .vsix from GitHub Releases, then install via Extensions: Install from VSIX... (Command Palette).

Manual Install (VSIX)

  1. Download or build the .vsix file (see Building from Source).
  2. In VS Code, open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and run Extensions: Install from VSIX...
  3. Select the .vsix file and reload when prompted.

Requirements

  • Java 17+ - The analyzer runs on a Java-based language server. Java is auto-detected from JAVA_HOME or PATH. If Java is not found automatically, set the path in your VS Code settings:

    {
      "gherkinAnalyzer.java.home": "C:\\path\\to\\java17"
    }
    

Configuration

All settings are under the gherkinAnalyzer namespace:

Setting Type Default Description
gherkinAnalyzer.enabled boolean true Enable/disable the analyzer.
gherkinAnalyzer.java.home string "" Path to a Java 17+ installation. When empty, the extension searches JAVA_HOME and PATH.
gherkinAnalyzer.rules object (full default) Per-rule configuration. List rules to override or replace the default set (see below).
gherkinAnalyzer.rulesReplaceDefaults boolean false When true, only the rules listed in gherkinAnalyzer.rules run (e.g. after Import from SonarQube). When false, listed rules are overrides and unlisted rules use the extension default profile.

How to customize rules

You can either override a few rules on top of the default profile, or replace the active set entirely (e.g. after importing from SonarQube).

  • Override mode (default) - Set gherkinAnalyzer.rulesReplaceDefaults to false or omit it. Add only the rule IDs you want to change (e.g. severity or enabled); all other rules use the extension default. You do not need to list all rules.
  • Replace mode - Set gherkinAnalyzer.rulesReplaceDefaults to true. Only the rules listed in gherkinAnalyzer.rules run. Use this when you have imported a profile from SonarQube or maintain your own full list.
  • Full default - Omit gherkinAnalyzer.rules or set it to {} with rulesReplaceDefaults false to use the built-in default profile (55 rules active).
  • After an upgrade - Entries for removed or renamed rules are ignored; you can delete them to tidy up.

Each rule can have enabled, severity (blocker | critical | major | minor | info), and rule-specific properties (e.g. maxLength, maxScenarios).

Example settings.json

{
  "gherkinAnalyzer.enabled": true,
  "gherkinAnalyzer.java.home": "",
  "gherkinAnalyzer.rulesReplaceDefaults": false,
  "gherkinAnalyzer.rules": {
    "consistent-indentation": {
      "enabled": true,
      "severity": "minor",
      "indentation": "4"
    },
    "feature-description-recommended": {
      "enabled": false
    }
  }
}

Connecting to SonarQube

Use the command Gherkin: Connect to SonarQube (Command Palette). Enter your SonarQube server URL and a token if required. The extension finds the SonarQube project that matches your workspace (from scanner configuration or the Git remote, or you pick it from a list), binds the workspace to it, and imports the rules and severities activated in that project's Gherkin quality profile. They are written to gherkinAnalyzer.rules with gherkinAnalyzer.rulesReplaceDefaults set to true, so only those rules run.

Once bound, the extension also shows the project's open SonarQube issues alongside local findings. Findings already marked false positive or accepted on the server are hidden by default (gherkinAnalyzer.sonar.hideResolvedIssues), and a finding can be marked false positive or accepted on the server from its code actions. Run Gherkin: Sync issues from SonarQube to refresh, or set gherkinAnalyzer.sonar.issueSync to false to turn issue sync off. Use gherkinAnalyzer.sonar.branch to read issues from a branch other than the checked-out one, and gherkinAnalyzer.sonar.pathPrefix when the workspace is opened at a subdirectory of the scanned project.

The last-used URL is remembered (in the extension's global state, not in settings), and the token (if provided) is stored securely in VS Code's secret storage. After a first successful connection, the extension automatically re-syncs rules from the same server each time it starts, so profile changes in SonarQube propagate without a manual re-import. Set gherkinAnalyzer.sonar.autoSyncOnStartup to false to disable this. To switch back to the extension default and only override a few rules, set gherkinAnalyzer.rulesReplaceDefaults to false.

Rule descriptions

Choose Explain rule from a finding's code actions, or run Gherkin: Show rule description, to read why the rule exists, how to fix the finding, and related rules.

Also available

The same analysis engine powers plugins for other platforms:

  • SonarQube plugin - enforce quality gates in CI/CD pipelines.
  • IntelliJ plugin - real-time analysis in JetBrains IDEs and Qodana CI/CD.

Rule keys and severities align across all three tools so findings are directly comparable.

Building from Source

Prerequisites

  • JDK 17+ and Maven 3.6.1+
  • Node.js and npm

Build Steps

  1. Build the Java modules (shared analyzer + LSP server):

    mvn clean package
    
  2. Build the VS Code client:

    cd vscode-client
    npm install
    npm run compile
    
  3. Package as VSIX:

    cd vscode-client
    npx vsce package
    

    This produces a .vsix file in the vscode-client/ directory.

Contributing

Issues and feature requests are welcome. This project does not accept pull requests, commits, or other code contributions from third parties; the repository is maintained by the Qualimetry team only.

License

This extension is licensed under the Apache License, Version 2.0.

Copyright 2026 SHAZAM Analytics Ltd

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft