Skip to content

Commit 1f4a384

Browse files
committed
use vscode formatOnSave instead of old hack
1 parent 79abbcb commit 1f4a384

6 files changed

Lines changed: 31 additions & 82 deletions

File tree

package.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -684,11 +684,6 @@
684684
"type": "string"
685685
}
686686
},
687-
"python.formatting.formatOnSave": {
688-
"type": "boolean",
689-
"default": false,
690-
"description": "Format the document upon saving."
691-
},
692687
"python.formatting.outputWindow": {
693688
"type": "string",
694689
"default": "Python",

src/client/common/configSettings.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ export interface IFormattingSettings {
6565
autopep8Args: string[];
6666
yapfPath: string;
6767
yapfArgs: string[];
68-
formatOnSave: boolean;
6968
outputWindow: string;
7069
}
7170
export interface IAutoCompeteSettings {

src/client/common/constants.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ export namespace Documentation {
7878
export const GettingStarted = '/docs/jupyter_getting-started/';
7979
export const Examples = '/docs/jupyter_examples/';
8080
export const Setup = '/docs/jupyter_prerequisites/';
81-
export const VersionIncompatiblity = '/docs/troubleshooting_jupyter/#Incompatible-dependencies'
81+
export const VersionIncompatiblity = '/docs/troubleshooting_jupyter/#Incompatible-dependencies';
82+
}
83+
export namespace Formatting {
84+
export const FormatOnSave = '/docs/formatting/';
8285
}
8386
}

src/client/extension.ts

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
'use strict';
22

33
import * as vscode from 'vscode';
4-
import {PythonCompletionItemProvider} from './providers/completionProvider';
5-
import {PythonHoverProvider} from './providers/hoverProvider';
6-
import {PythonDefinitionProvider} from './providers/definitionProvider';
7-
import {PythonReferenceProvider} from './providers/referenceProvider';
8-
import {PythonRenameProvider} from './providers/renameProvider';
9-
import {PythonFormattingEditProvider} from './providers/formatProvider';
4+
import { PythonCompletionItemProvider } from './providers/completionProvider';
5+
import { PythonHoverProvider } from './providers/hoverProvider';
6+
import { PythonDefinitionProvider } from './providers/definitionProvider';
7+
import { PythonReferenceProvider } from './providers/referenceProvider';
8+
import { PythonRenameProvider } from './providers/renameProvider';
9+
import { PythonFormattingEditProvider } from './providers/formatProvider';
1010
import * as sortImports from './sortImports';
11-
import {LintProvider} from './providers/lintProvider';
12-
import {PythonSymbolProvider} from './providers/symbolProvider';
13-
import {PythonSignatureProvider} from './providers/signatureProvider';
14-
import {activateFormatOnSaveProvider} from './providers/formatOnSaveProvider';
11+
import { LintProvider } from './providers/lintProvider';
12+
import { PythonSymbolProvider } from './providers/symbolProvider';
13+
import { PythonSignatureProvider } from './providers/signatureProvider';
1514
import * as settings from './common/configSettings';
1615
import * as telemetryHelper from './common/telemetry';
1716
import * as telemetryContracts from './common/telemetryContracts';
18-
import {PythonCodeActionsProvider} from './providers/codeActionProvider';
19-
import {activateSimplePythonRefactorProvider} from './providers/simpleRefactorProvider';
20-
import {activateSetInterpreterProvider} from './providers/setInterpreterProvider';
21-
import {activateExecInTerminalProvider} from './providers/execInTerminalProvider';
17+
import { PythonCodeActionsProvider } from './providers/codeActionProvider';
18+
import { activateSimplePythonRefactorProvider } from './providers/simpleRefactorProvider';
19+
import { activateSetInterpreterProvider } from './providers/setInterpreterProvider';
20+
import { activateExecInTerminalProvider } from './providers/execInTerminalProvider';
2221
import * as tests from './unittests/main';
2322
import * as jup from './jupyter/main';
24-
import {HelpProvider} from './helpProvider';
23+
import { HelpProvider } from './helpProvider';
24+
import { Documentation } from './common/constants';
2525

2626
const PYTHON: vscode.DocumentFilter = { language: 'python', scheme: 'file' };
2727
let unitTestOutChannel: vscode.OutputChannel;
@@ -50,7 +50,6 @@ export function activate(context: vscode.ExtensionContext) {
5050
context.subscriptions.push(activateSetInterpreterProvider());
5151
context.subscriptions.push(...activateExecInTerminalProvider());
5252
activateSimplePythonRefactorProvider(context, formatOutChannel);
53-
context.subscriptions.push(activateFormatOnSaveProvider(PYTHON, pythonSettings, formatOutChannel, vscode.workspace.rootPath));
5453

5554
// Enable indentAction
5655
vscode.languages.setLanguageConfiguration(PYTHON.language, {
@@ -93,6 +92,16 @@ export function activate(context: vscode.ExtensionContext) {
9392

9493
const hepProvider = new HelpProvider();
9594
context.subscriptions.push(hepProvider);
95+
96+
// Check for old outdated settings
97+
const pySettings = vscode.workspace.getConfiguration('python');
98+
if (pySettings.get('formatting.formatOnSave') === true) {
99+
vscode.window.showInformationMessage(`'python.formatting.formatOnSave' has been deprecated. Please use 'editor.formatOnSave' instead`, 'Help').then(item => {
100+
if (item === 'Help') {
101+
vscode.commands.executeCommand('python.displayHelp', Documentation.Formatting.FormatOnSave);
102+
}
103+
});
104+
}
96105
}
97106

98107
function disableOtherDocumentSymbolsProvider() {

src/client/providers/formatOnSaveProvider.ts

Lines changed: 0 additions & 57 deletions
This file was deleted.

src/test/extension.format.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ suite('Formatting', () => {
8888

8989
function testAutoFormatting(formatter: string, formattedContents: string, fileToFormat: string): PromiseLike<void> {
9090
let textDocument: vscode.TextDocument;
91-
pythonSettings.formatting.formatOnSave = true;
91+
vscode.workspace.getConfiguration('editor').update('formatOnSave', true);
9292
pythonSettings.formatting.provider = formatter;
9393
return vscode.workspace.openTextDocument(fileToFormat).then(document => {
9494
textDocument = document;
@@ -103,7 +103,7 @@ suite('Formatting', () => {
103103
return new Promise<any>((resolve, reject) => {
104104
setTimeout(() => {
105105
resolve();
106-
}, 2000);
106+
}, 4000);
107107
});
108108
}).then(() => {
109109
assert.equal(textDocument.getText(), formattedContents, 'Formatted contents are not the same');

0 commit comments

Comments
 (0)