Re: [Trac] WikiExtrasPlugin delimiters adjacent to a phrase
Clemens Feige <c.feige-OaXy4Qdpe4n2eFz/[email protected]> Thu, 8 Aug 2024 12:08:12 +0200
| Newsgroups | gmane.comp.version-control.subversion.trac.general |
|---|---|
| Organization | Osypka Medical |
| Message-ID | <[email protected]> |
Jun Omae wrote on 08.08.2024 at 01:49: > Hi, > > On 2024/08/08 1:11, Clemens Feige wrote: >> Hello >> >> I suspect there is a regression with the popular WikiExtrasPlugin, see >> [1]. After upgrading from TRAC 1.4 to 1.6 the handling delimiters >> adjacent to a phrase seems affected. >> >> Here is a quote of what WikiExtrasPlugin advertises, and what is >> accomplished in code with method `add_style` in file `phrases.py`; see [2]: >> >>> Any delimiter ():<> adjacent to a phrase will not be presented. This makes it possible to naturally write FIXME:, for example, but view the phrase highlighted without the colon (:) which would not look natural. >> >> However, in TRAC 1.6 for a phrase like FIXME: the colon is not removed, >> but it should be. For dual colons i.e. :FIXME: both colons are removed, >> which is correct. >> TRAC 1.4, all colons in FIXME: and in :FIXME: are removed. >> >> If you are using the WikiExtrasPlugin and the new TRAC 1.6, then please >> tell me: What comes out if you write a phrase with trailing adjacent >> delimiter i.e. "FIXME:"? >> >> Anybody who can comment on this? >> Depending on other people's feedback I would file a bug ticket. >> >> Unfortunately I do not understand the code in method `add_style` in file >> `phrases.py`; see [2]. What is `self.text` for example? >> >> Thanks >> Clemens >> >> >> P.S. >> >> [1] >> https://trac-hacks.org/wiki/WikiExtrasPlugin >> >> [2] >> https://trac-hacks.org/browser/wikiextrasplugin/trunk/tracwikiextras/phrases.py?rev=16718#L90 >> > > That is caused by the generated regular expression from the plugin. > The longer symbols in (...|...|...) of the regular expression should > come first. > > Please try the following patch: > > [[[ > Index: tracwikiextras/util.py > =================================================================== > --- tracwikiextras/util.py (revision 18650) > +++ tracwikiextras/util.py (working copy) > @@ -35,7 +35,7 @@ > unicode = str > > def prepare_regexp(d): > - syms = sorted(d.keys(), key=lambda a: len(a)) > + syms = sorted(d.keys(), key=lambda a: len(a), reverse=True) > return "|".join([r'%s%s%s' > % (r'\b' if re.match(r'\w', s[0]) else '', > re.escape(s), > ]]] > Hello The patch works well. Great! Thanks, Jun. Using `reverse=True` inside `prepare_regexp` seems to cure the issue. SVN-blame tells us: The affected line 38 in tracwikiextras/util.py has been recently edited in 2022 with the objective to make this plug-in compatible with Python 3. How shall we continue? If desired I can still create a ticket for the maintainer of the plug-in and append Jun's patch. Or the maintainer or somebody else with write permissions commits the change ... Thanks Clemens -- You received this message because you are subscribed to the Google Groups "Trac Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to trac-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected] To view this discussion on the web visit https://groups.google.com/d/msgid/trac-users/8abd463d-ab85-4fc8-85a1-de3e5badfa2a%40osypkamed.com.