aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--queries/python/indents.scm15
-rw-r--r--tests/indent/python/control_flow.py7
-rw-r--r--tests/indent/python_spec.lua1
3 files changed, 21 insertions, 2 deletions
diff --git a/queries/python/indents.scm b/queries/python/indents.scm
index b89030425..94005ebab 100644
--- a/queries/python/indents.scm
+++ b/queries/python/indents.scm
@@ -38,8 +38,19 @@
(ERROR
"try"
- ":" @indent.begin
- (#set! indent.immediate 1))
+ .
+ ":"
+ (#set! indent.immediate 1)) @indent.begin
+
+(ERROR
+ "try"
+ .
+ ":"
+ (ERROR
+ (block
+ (expression_statement
+ (identifier) @_except) @indent.branch))
+ (#eq? @_except "except"))
((function_definition) @indent.begin
(#set! indent.immediate 1))
diff --git a/tests/indent/python/control_flow.py b/tests/indent/python/control_flow.py
index fca528a2d..387756f63 100644
--- a/tests/indent/python/control_flow.py
+++ b/tests/indent/python/control_flow.py
@@ -26,3 +26,10 @@ while (a > 4 and
pass
try:
+
+def foo():
+ print('indentme')
+
+ # comment
+ if True:
+ pass
diff --git a/tests/indent/python_spec.lua b/tests/indent/python_spec.lua
index ec44d551c..193b9901e 100644
--- a/tests/indent/python_spec.lua
+++ b/tests/indent/python_spec.lua
@@ -39,6 +39,7 @@ describe("indent Python:", function()
run:new_line("control_flow.py", { on_line = 24, text = "c < 6 and", indent = 7 })
run:new_line("control_flow.py", { on_line = 26, text = "x = 4", indent = 4 })
run:new_line("control_flow.py", { on_line = 28, text = "x = 4", indent = 4 })
+ run:new_line("control_flow.py", { on_line = 31, text = "try:", indent = 4 })
run:new_line("branches.py", { on_line = 25, text = "x > 9 and", indent = 4 })
run:new_line("branches.py", { on_line = 29, text = "and x > 9", indent = 4 })
run:new_line("hanging_indent.py", { on_line = 1, text = "arg0,", indent = 4 })