diff --git a/extensions/python/.vscode/launch.json b/extensions/python/.vscode/launch.json new file mode 100644 index 00000000000..476551bebae --- /dev/null +++ b/extensions/python/.vscode/launch.json @@ -0,0 +1,18 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceRoot}" + ], + "stopOnEntry": false, + "sourceMaps": true, + "outDir": "${workspaceRoot}/out", + "preLaunchTask": "npm" + } + ] +} \ No newline at end of file diff --git a/extensions/python/.vscode/tasks.json b/extensions/python/.vscode/tasks.json new file mode 100644 index 00000000000..a132a04214d --- /dev/null +++ b/extensions/python/.vscode/tasks.json @@ -0,0 +1,30 @@ +// Available variables which can be used inside of strings. +// ${workspaceRoot}: the root folder of the team +// ${file}: the current opened file +// ${fileBasename}: the current opened file's basename +// ${fileDirname}: the current opened file's dirname +// ${fileExtname}: the current opened file's extension +// ${cwd}: the current working directory of the spawned process + +// A task runner that calls a custom npm script that compiles the extension. +{ + "version": "0.1.0", + + // we want to run npm + "command": "npm", + + // the command is a shell script + "isShellCommand": true, + + // show the output window only if unrecognized errors occur. + "showOutput": "silent", + + // we run the custom script "compile" as defined in package.json + "args": ["run", "compile"], + + // The tsc compiler is started in watching mode + "isWatching": true, + + // use the standard tsc in watch mode problem matcher to find compile problems in the output. + "problemMatcher": "$tsc-watch" +} \ No newline at end of file diff --git a/extensions/python/.vscodeignore b/extensions/python/.vscodeignore new file mode 100644 index 00000000000..47cf365a078 --- /dev/null +++ b/extensions/python/.vscodeignore @@ -0,0 +1 @@ +test/** diff --git a/extensions/python/package.json b/extensions/python/package.json index e93560fcb42..7896b8e9a5c 100644 --- a/extensions/python/package.json +++ b/extensions/python/package.json @@ -3,6 +3,8 @@ "version": "0.1.0", "publisher": "vscode", "engines": { "vscode": "*" }, + "activationEvents": ["onLanguage:python"], + "main": "./out/pythonMain", "contributes": { "languages": [{ "id": "python", @@ -19,5 +21,9 @@ "scopeName": "source.regexp.python", "path": "./syntaxes/Regular Expressions (Python).tmLanguage" }] + }, + "scripts": { + "compile": "gulp compile-extension:python", + "watch": "gulp watch-extension:python" } } diff --git a/extensions/python/src/pythonMain.ts b/extensions/python/src/pythonMain.ts new file mode 100644 index 00000000000..b96d2a46148 --- /dev/null +++ b/extensions/python/src/pythonMain.ts @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +'use strict'; +import { ExtensionContext, languages, IndentAction } from 'vscode'; + +export function activate(context: ExtensionContext): any { + languages.setLanguageConfiguration('python', { + onEnterRules: [ + { + beforeText: /^\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\s*$/, + action: { indentAction: IndentAction.Indent } + } + ] + }); +} \ No newline at end of file diff --git a/extensions/python/src/typings/ref.d.ts b/extensions/python/src/typings/ref.d.ts new file mode 100644 index 00000000000..7f4835e6747 --- /dev/null +++ b/extensions/python/src/typings/ref.d.ts @@ -0,0 +1,10 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +/// +/// +/// +/// +/// \ No newline at end of file diff --git a/extensions/python/tsconfig.json b/extensions/python/tsconfig.json new file mode 100644 index 00000000000..8cb16334377 --- /dev/null +++ b/extensions/python/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "noLib": true, + "target": "es5", + "module": "commonjs", + "outDir": "./out" + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file