From 791f8ca023f0b4bab2fa98f801cf862d2d5e3948 Mon Sep 17 00:00:00 2001 From: Nathan Broadbent Date: Wed, 29 Jun 2022 16:22:50 +1200 Subject: [PATCH] Added autocorrectArg config option so that users can run RuboCop with --auto-correct-all (-A) --- README.md | 5 ++++- package.json | 5 +++++ src/configuration.ts | 2 ++ src/rubocop.ts | 2 +- test/configuration.test.ts | 7 +++++++ 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7124c01..90c3bc4 100644 --- a/README.md +++ b/README.md @@ -66,10 +66,13 @@ Specify configuration (via navigating to `File > Preferences > Workspace Setting // "ruby.rubocop.executePath": "/Users/you/.rvm/gems/ruby-2.3.2/bin/" // "ruby.rubocop.executePath": "D:/bin/Ruby22-x64/bin/" + // Set to "--auto-correct-all" to enable "unsafe" auto-corrections + "ruby.rubocop.autocorrectArg": "--auto-correct", + // If not specified, it assumes a null value by default. "ruby.rubocop.configFilePath": "/path/to/config/.rubocop.yml", - // default true + // default: true "ruby.rubocop.onSave": true } ``` diff --git a/package.json b/package.json index 0c46b34..0a32109 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,11 @@ "default": "", "description": "execution path of rubocop." }, + "ruby.rubocop.autocorrectArg": { + "type": "string", + "default": "--auto-correct", + "description": "RuboCop argument for autocorrect. Use --auto-correct-all to include unsafe autocorrections." + }, "ruby.rubocop.configFilePath": { "type": "string", "default": "", diff --git a/src/configuration.ts b/src/configuration.ts index 90c130c..e92a0be 100644 --- a/src/configuration.ts +++ b/src/configuration.ts @@ -6,6 +6,7 @@ import { Rubocop } from './rubocop'; export interface RubocopConfig { command: string; + autocorrectArg: string; onSave: boolean; configFilePath: string; useBundler: boolean; @@ -70,6 +71,7 @@ export const getConfig: () => RubocopConfig = () => { return { command, + autocorrectArg: conf.get('autocorrectArg', '--auto-correct'), configFilePath: conf.get('configFilePath', ''), onSave: conf.get('onSave', true), useBundler, diff --git a/src/rubocop.ts b/src/rubocop.ts index 0a1ecd1..496dbe5 100644 --- a/src/rubocop.ts +++ b/src/rubocop.ts @@ -17,7 +17,7 @@ export class RubocopAutocorrectProvider try { const args = [ ...getCommandArguments(document.fileName), - '--auto-correct', + config.autocorrectArg, // Default: --auto-correct ]; const options = { cwd: getCurrentPath(document.uri), diff --git a/test/configuration.test.ts b/test/configuration.test.ts index 457199a..cc941fc 100644 --- a/test/configuration.test.ts +++ b/test/configuration.test.ts @@ -18,6 +18,7 @@ vsStub.workspace.getConfiguration = ( const defaultConfig = { configfilePath: '', executePath: '', + autocorrectArg: '--auto-correct', onSave: true, useBundler: false, suppressRubocopWarnings: false, @@ -135,6 +136,12 @@ describe('RubocopConfig', () => { expect(getConfig()).to.have.property('onSave'); }); }); + + describe('.autocorrectArg', () => { + it('is set', () => { + expect(getConfig().autocorrectArg).to.eq('--auto-correct'); + }); + }); }); }); });