VsCode Groovy Lint, Format and Fix

December 4, 2025 ยท View on GitHub

Visual Studio Marketplace Version (including pre-releases) Visual Studio Marketplace Installs Test Mega-Linter License GitHub stars PRs Welcome

Lint (code quality), Format and Auto-fix your groovy files and Jenkinsfile

Visual Studio Code extension embedding npm-groovy-lint, itself embedding CodeNarc

  • You can configure the rules by defining a .groovylintrc.json file
  • If you use CI, you can integrate Mega-Linter in your workflow, to make sure all your sources (groovy and other) are clean

image

Features

CommandDescriptionAccess
Analyze codeLint the code of the current fileCtrl+Shift+F9
Contextual
Status bar
Commands
FormatFormat the code of the current fileShift+Alt+F
Contextual
Commands
Fix all auto-fixable problemsFix the code of the current fileContextual
Commands
Lint folderLint all applicable files of a folderContextual
Fix single errorApply quick fix for a single problemQuick Fix
Diagnostic
Fix rule in entire fileApply quick fix for all problems related to the same rule in the current fileQuick Fix
Diagnostic
Disable rule for this lineDisable rule only for current lineQuick Fix
Diagnostic
Disable rule for this entire fileDisable rule in the entire fileQuick Fix
Diagnostic
Disable rule for this entire projectUpdates configuration file
(usually .groovylintrc.js in root folder) to disable this rule
Quick Fix
Diagnostic
  • Contextual: *right click in source code or on folder_
  • Commands: *Ctrl+Shift+P then type command name_
  • Status bar: GroovyLint status item at the bottom right
  • Quick Fix: Hover an underlined part of the code after a lint, click Quick Fix then select action to perform
  • Diagnostic: Right click on a diagnostic in Problems section

Extension Settings

ParameterDescriptionDefault
groovyLint.enableControls whether GroovyLint is enabled or nottrue
groovyLint.lint.triggerRun the linter on save (onSave), on type (onType) , or on user requestonSave
groovyLint.format.enableControls whether the groovy formatter is enabled or nottrue
groovyLint.fix.enableRun the auto-fixer on save (onSave), on type (onType) , or on user requesttrue
groovyLint.fix.triggerRun the fixer on save (onSave), or on user requestuser
groovyLint.basic.loglevelLinting error level (error, warning,info)info
groovyLint.basic.verboseTurn on to have verbose logsfalse
groovyLint.basic.configNPM groovy lint configuration file.groovylintrc.json
groovyLint.debug.enableDisplay more logs in VsCode Output panel (select "GroovyLint") for issue investigationfalse
groovyLint.java.executableOverride java executable to use
Example: C:\Program Files\Java\jdk1.8.0_144\bin\java.exe
java
groovyLint.java.optionsOverride java options to use"-Xms256m,-Xmx2048m"
groovyLint.insight.enableAllow to send anonymous usage statistics used only to improve the tool (we will of course never send your code)false
groovyLint.showProblemsViewShow Problems View once after startfalse

Troubleshooting

  • Node.js version 18 or higher is required to run this extension. If you can't upgrade, you can use nvm to have different node versions on your computer

  • Java version 17 or higher is required to run this extension

  • As CodeNarc is run in background with java/groovy, performances could be improved on large files (do not hesitate to provide advice !) But do not worry, as the groovy linting is provided by a background local server, your VsCode won't be slowed.

Contribute

Contributions are very welcome on :

Please follow Contribution instructions

Special Thanks

  • stevenh, for his huge refactoring of npm-groovy-lint and vscode-groovy-lint, saving them from deprecation :)

  • yuvmel, for his great support on #18 that allowed VsCode Groovy Lint to work much better on Mac, Linux, and with other diagnostic extensions

Release Notes

[3.1.0] 2023-12-17

  • Added new setting showProblemsView that controls if Problems View should open after initial lint pass
  • Fix doc deployment
  • Add stale workflow

[3.0.0] 2023-12-17

  • Update all packages, to address security issues and bring in the latest version of npm-groovy-lint and related fixes.
  • Refactor of tests to more reliable, including being independent of each other so if one test fails others are not effected.
  • Fix partial fixes never applying due to npm-groovy-lint v10.0.0 breaking change.
  • Fix Analyze Groovy files in folder (#177)
  • Debug sessions correctly enable debugging by default including npm-groovy-lint.
  • Upgrade MegaLinter and fix related issues

[2.0.0] 2022-08-13

  • Upgrade to npm-groovy-lint v10.0.0

  • UI

    • Better display for issues contextual menu
  • Fixes

    • Wrong lines highlighted when spaces are replaced by tabs
    • Document should not be reopened if closed without saving
    • Some errors were displayed at the beginning of the file instead of the good line
    • Wrong diagnostics lines are format or fix

[1.9.1] 2022-08-08

  • Fix bug when file diagnostics is stuck with message GroovyLint is analyzing code... (#157)
  • CI: Upgrade to MegaLinter v6

[1.9.0] 2022-04-12

[1.8.0] 2022-02-25

  • Disable telemetry by default (#93)

[1.7.5] 2022-01-26

  • Fix crash when npm-groovy-lint does not return results (#141)

[1.7.4] 2022-01-09

[1.7.3] 2022-01-06

  • Upgrade to npm-groovy-lint v9.3.1
    • Fix issue when used as module and with file containing spaces (#137)

[1.7.2] 2021-12-29

  • Upgrade to npm-groovy-lint v9.3.0
    • Upgrade again log4j to avoid security flaw

[1.7.1] 2021-12-24

  • Upgrade to npm-groovy-lint v9.2.0
    • Upgrade again log4j to avoid security flaw

[1.7.0] 2021-12-14

[1.6.0] 2021-11-27

  • Detect Jenkinsfile

[1.5.2] 2021-11-24

  • Fix TS error & package-lock.json version

[1.5.1] 2021-11-23

  • Upgrade to npm-groovy-lint v9.0.0
  • Fix use of VsCode setting groovyLint.basic.config to use a generic npm-groovy-lint configuration file
  • Upgrade to MegaLinter v5 and move config in .mega-linter.yml file

[1.4.0] 2020-12-15

  • Upgrade to npm-groovy-lint v8.1.0
    • Exclude UnnecessaryGetter, FactoryMethodName, MethodReturnTypeRequired, and GStringExpressionWithinString in recommended-jenkinsfile (#140) (Felipe Santos)

[1.3.0] 2020-11-15

  • Upgrade to npm-groovy-lint v8.0.0
    • Upgrade to CodeNarc 2.0.0
    • Improve performances
    • Fix bugs

[1.2.7] 2020-09-04

[1.2.6] 2020-09-02

  • Upgrade to npm-groovy-lint v7.5.2
  • Fix crash when empty groovy file
  • Fix crash when non-sense groovy file

[1.2.3] 2020-08-29

  • Fix bug on Windows when username contains space(s)

[1.2.2] 2020-08-21

  • Allow user to hide future npm-groovy-lint error messages
  • Manage correctly user choice Never for tabs auto-replacement by spaces
  • Upgrade to npm-groovy-lint v7.4.0

[1.2.0] 2020-08-15

  • Upgrade to npm-groovy-lint v7.3.0
    • Allow to link to CodeNarc RuleSet files from .groovylintrc.json, using property "codenarcRulesets". Warning: doing so means that all other properties of config file will be ignored.

[1.1.1] 2020-08-11

[1.1.0] 2020-08-10

PREVIOUS VERSIONS

See complete CHANGELOG