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
Features
Command |
Description |
Access |
Analyze code |
Lint the code of the current file |
Ctrl+Shift+F9 ContextualStatus bar Commands |
Format |
Format the code of the current file |
Shift+Alt+F ContextualCommands |
Fix all auto-fixable problems |
Fix the code of the current file |
ContextualCommands |
Lint folder |
Lint all applicable files of a folder |
Contextual |
Fix single error |
Apply quick fix for a single problem |
Quick Fix Diagnostic |
Fix rule in entire file |
Apply quick fix for all problems related to the same rule in the current file |
Quick Fix Diagnostic |
Disable rule for this line |
Disable rule only for current line |
Quick Fix Diagnostic |
Disable rule for this entire file |
Disable rule in the entire file |
Quick Fix Diagnostic |
Disable rule for this entire project |
Updates 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
Parameter |
Description |
Default |
groovyLint.enable |
Controls whether GroovyLint is enabled or not |
true |
groovyLint.lint.trigger |
Run the linter on save (onSave), on type (onType) , or on user request |
onSave |
groovyLint.format.enable |
Controls whether the groovy formatter is enabled or not |
true |
groovyLint.fix.enable |
Run the auto-fixer on save (onSave), on type (onType) , or on user request |
true |
groovyLint.fix.trigger |
Run the fixer on save (onSave), or on user request |
user |
groovyLint.basic.loglevel |
Linting error level (error, warning,info) |
info |
groovyLint.basic.verbose |
Turn on to have verbose logs |
false |
groovyLint.basic.config |
NPM groovy lint configuration file |
.groovylintrc.json |
groovyLint.debug.enable |
Display more logs in VsCode Output panel (select "GroovyLint") for issue investigation |
false |
groovyLint.java.executable |
Override java executable to use Example: C:\Program Files\Java\jdk1.8.0_144\bin\java.exe |
java |
groovyLint.java.options |
Override java options to use |
"-Xms256m,-Xmx2048m" |
groovyLint.insight.enable |
Allow to send anonymous usage statistics used only to improve the tool (we will of course never send your code) |
false |
groovyLint.showProblemsView |
Show Problems View once after start |
false |
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 advices !)
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
[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
[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
| |