From 98dede07791f2ad3c077e8f6d23cba0673a58b7d Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Thu, 5 Dec 2019 16:58:47 -0800 Subject: [PATCH 1/3] Indent on `async for` and `async with` --- src/client/language/languageConfiguration.ts | 4 +++- src/test/language/languageConfiguration.unit.test.ts | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/client/language/languageConfiguration.ts b/src/client/language/languageConfiguration.ts index 409371555210..9e80d3a3b704 100644 --- a/src/client/language/languageConfiguration.ts +++ b/src/client/language/languageConfiguration.ts @@ -54,10 +54,12 @@ export function getLanguageConfiguration(): LanguageConfiguration { async \\s+ def | except | for | + async \\s+ for | if | elif | while | - with + with | + async \\s+ with ) \\b .* ) | diff --git a/src/test/language/languageConfiguration.unit.test.ts b/src/test/language/languageConfiguration.unit.test.ts index 00ec4cd9a353..a63b4a51d94c 100644 --- a/src/test/language/languageConfiguration.unit.test.ts +++ b/src/test/language/languageConfiguration.unit.test.ts @@ -19,6 +19,8 @@ const NEEDS_INDENT = [ ]; const INDENT_ON_ENTER = [ // block-beginning statements /^async\s+def\b/, + /^async\s+for\b/, + /^async\s+with\b/, /^class\b/, /^def\b/, /^with\b/, @@ -142,6 +144,8 @@ suite('Language Configuration', () => { 'async def test(self):', 'async def :', 'async :', + 'async for spam in bacon:', + 'async with context in manager:', 'class Test:', 'class Test(object):', 'class :', From 334a168eef4588b9061a601c3dbd3f0e3ed54b9d Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Thu, 5 Dec 2019 17:00:30 -0800 Subject: [PATCH 2/3] Add a news entry --- news/1 Enhancements/7344.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 news/1 Enhancements/7344.md diff --git a/news/1 Enhancements/7344.md b/news/1 Enhancements/7344.md new file mode 100644 index 000000000000..ef86085ae34c --- /dev/null +++ b/news/1 Enhancements/7344.md @@ -0,0 +1 @@ +Automatically indent following `async for` and `async with` statements. From 7f511279e595f9b8672cca22eed239e16f59f006 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Thu, 5 Dec 2019 17:02:08 -0800 Subject: [PATCH 3/3] Test `async with` where the context manager isn't captured --- src/test/language/languageConfiguration.unit.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/language/languageConfiguration.unit.test.ts b/src/test/language/languageConfiguration.unit.test.ts index a63b4a51d94c..81156e18270c 100644 --- a/src/test/language/languageConfiguration.unit.test.ts +++ b/src/test/language/languageConfiguration.unit.test.ts @@ -145,6 +145,7 @@ suite('Language Configuration', () => { 'async def :', 'async :', 'async for spam in bacon:', + 'async with context:', 'async with context in manager:', 'class Test:', 'class Test(object):',