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