Subject: bug#67262: closed (Re: bug#67262: python-ts-mode cannot identify triple-quoted-strings)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 24 Dec 2023 03:11:02 +0000

Your bug report

#67262: python-ts-mode cannot identify triple-quoted-strings

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
67262: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67262
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#67262: python-ts-mode cannot identify triple-quoted-strings
From: Yuan Fu <[email-masked]>
To: Dmitry Gutov <[email-masked]>
Cc: Eli Zaretskii <[email-masked]>, [email-masked], JD Smith <[email-masked]>
Date: Sat, 23 Dec 2023 19:10:05 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

> On Dec 23, 2023, at 4:45 PM, Dmitry Gutov <[email-masked]> wrote:
> 
> On 24/12/2023 01:51, Yuan Fu wrote:
>> Something like this? IMHO the code is easier to understand without the syntax-propertize-rules.
> 
> Sure, fine with me.
> 
>> +    (while (search-forward "\"\"\"" end t)+            (put-text-property (1- start) start
> 
> I think we also should support the triple-single-quotes, like python-syntax-propertize-function does.
> 
>> +                               'syntax-table (string-to-syntax "| "))
>> +            (put-text-property end (min (1+ end) (point-max))
>> +                               'syntax-table (string-to-syntax "| "))))))))
> 
> The spaces after "|" seem unnecessary.

Thanks, fixed those things and pushed to emacs-29.

Yuan

Subject: python-ts-mode cannot identify triple-quoted-strings
From: JD Smith <[email-masked]>
To: [email-masked]
Date: Sat, 18 Nov 2023 10:52:05 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Inside this triple-quoted string, in a python buffer:

a = """This is a test"""

python-mode yields (python-info-triple-quoted-string-p)=t, whereas python-ts-mode gives nil, defeating the fancy doc string folding both modes implement.

The reason seems to be that (syntax-ppss) returns something different in position 3 (which is "non-nil if inside a string”) between these modes: 

t for python-mode (which signals a triple quote)
 ?34=" in python-ts-mode 

If you first load python-mode, then load python-ts-mode, the syntax parse becomes equal between the modes, and this bug vanishes.  

python.el v0.28, Emacs v29.1