Skip to content

Commit edc83e4

Browse files
committed
fix #599
1 parent 247c21c commit edc83e4

4 files changed

Lines changed: 29 additions & 7 deletions

File tree

‎package.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,8 @@
10811081
"description": "Provider for formatting. Possible options include 'autopep8' and 'yapf'.",
10821082
"enum": [
10831083
"autopep8",
1084-
"yapf"
1084+
"yapf",
1085+
"none"
10851086
]
10861087
},
10871088
"python.formatting.autopep8Path": {

‎src/client/extension.ts‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,11 @@ export function activate(context: vscode.ExtensionContext) {
100100
if (pythonSettings.devOptions.indexOf('DISABLE_SIGNATURE') === -1) {
101101
context.subscriptions.push(vscode.languages.registerSignatureHelpProvider(PYTHON, new PythonSignatureProvider(context, jediProx), '(', ','));
102102
}
103-
const formatProvider = new PythonFormattingEditProvider(context, formatOutChannel, pythonSettings);
104-
context.subscriptions.push(vscode.languages.registerDocumentFormattingEditProvider(PYTHON, formatProvider));
105-
context.subscriptions.push(vscode.languages.registerDocumentRangeFormattingEditProvider(PYTHON, formatProvider));
103+
if (pythonSettings.formatting.provider !== 'none') {
104+
const formatProvider = new PythonFormattingEditProvider(context, formatOutChannel, pythonSettings);
105+
context.subscriptions.push(vscode.languages.registerDocumentFormattingEditProvider(PYTHON, formatProvider));
106+
context.subscriptions.push(vscode.languages.registerDocumentRangeFormattingEditProvider(PYTHON, formatProvider));
107+
}
106108

107109
const jupyterExtInstalled = vscode.extensions.getExtension('donjayamanne.jupyter');
108110
let linterProvider = new LintProvider(context, lintingOutChannel, (a, b) => Promise.resolve(false));
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'use strict';
2+
3+
import * as vscode from 'vscode';
4+
import { BaseFormatter } from './baseFormatter';
5+
import * as settings from './../common/configSettings';
6+
import { Product } from '../common/installer';
7+
8+
export class DummyFormatter extends BaseFormatter {
9+
constructor(outputChannel: vscode.OutputChannel, pythonSettings: settings.IPythonSettings, workspaceRootPath?: string) {
10+
super('none', Product.yapf, outputChannel, pythonSettings, workspaceRootPath);
11+
}
12+
13+
public formatDocument(document: vscode.TextDocument, options: vscode.FormattingOptions, token: vscode.CancellationToken, range?: vscode.Range): Thenable<vscode.TextEdit[]> {
14+
return Promise.resolve([]);
15+
}
16+
}

‎src/client/providers/formatProvider.ts‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
'use strict';
22

33
import * as vscode from 'vscode';
4-
import {BaseFormatter} from './../formatters/baseFormatter';
5-
import {YapfFormatter} from './../formatters/yapfFormatter';
6-
import {AutoPep8Formatter} from './../formatters/autoPep8Formatter';
4+
import { BaseFormatter } from './../formatters/baseFormatter';
5+
import { YapfFormatter } from './../formatters/yapfFormatter';
6+
import { AutoPep8Formatter } from './../formatters/autoPep8Formatter';
7+
import { DummyFormatter } from './../formatters/dummyFormatter';
78
import * as settings from './../common/configSettings';
89

910
export class PythonFormattingEditProvider implements vscode.DocumentFormattingEditProvider, vscode.DocumentRangeFormattingEditProvider {
@@ -12,8 +13,10 @@ export class PythonFormattingEditProvider implements vscode.DocumentFormattingEd
1213
public constructor(context: vscode.ExtensionContext, outputChannel: vscode.OutputChannel, private settings: settings.IPythonSettings) {
1314
let yapfFormatter = new YapfFormatter(outputChannel, settings);
1415
let autoPep8 = new AutoPep8Formatter(outputChannel, settings);
16+
let dummy = new DummyFormatter(outputChannel, settings);
1517
this.formatters.set(yapfFormatter.Id, yapfFormatter);
1618
this.formatters.set(autoPep8.Id, autoPep8);
19+
this.formatters.set(dummy.Id, dummy);
1720
}
1821

1922
public provideDocumentFormattingEdits(document: vscode.TextDocument, options: vscode.FormattingOptions, token: vscode.CancellationToken): Thenable<vscode.TextEdit[]> {

0 commit comments

Comments
 (0)