From a3a8a4fcd25c84b4d7a614fde1aaefa394d6c6bd Mon Sep 17 00:00:00 2001 From: Joseph Montanaro Date: Wed, 20 Nov 2024 07:03:08 -0500 Subject: [PATCH] Refine syntax highlighting for Python docstrings * Add highlighting for module- and class-level docstrings * Add highlighting for additional docstrings as described in PEP 257 * Remove highlighting for non-docstring string literals in functions --- crates/languages/src/python/highlights.scm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/crates/languages/src/python/highlights.scm b/crates/languages/src/python/highlights.scm index 6c3f027c197659..6ca62161abd67b 100644 --- a/crates/languages/src/python/highlights.scm +++ b/crates/languages/src/python/highlights.scm @@ -91,21 +91,27 @@ "}" @punctuation.special) @embedded ; Docstrings. +(module + .(expression_statement (string) @string.doc)+) + +(class_definition + body: (block .(expression_statement (string) @string.doc)+)) + (function_definition "async"? "def" name: (_) (parameters)? - body: (block (expression_statement (string) @string.doc))) + body: (block .(expression_statement (string) @string.doc)+)) (module (expression_statement (assignment)) - . (expression_statement (string) @string.doc)) + . (expression_statement (string) @string.doc)+) (class_definition body: (block (expression_statement (assignment)) - . (expression_statement (string) @string.doc))) + . (expression_statement (string) @string.doc)+)) (class_definition body: (block @@ -114,7 +120,7 @@ (#eq? @function.method.constructor "__init__") body: (block (expression_statement (assignment)) - . (expression_statement (string) @string.doc))))) + . (expression_statement (string) @string.doc)+)))) [