D19999: Fix endRegion folding in rules with beginRegion+endRegion (use length=0)

rhkramer at gmail.com rhkramer at gmail.com
Sat Mar 23 17:24:09 GMT 2019

I don't fully understand the proposed change, but I'd like to ask that we 
proceed with a little bit of caution -- this may or may not be related to a 
bug that was submitted on the order of 10 years ago and somewhat later (5 
years later) claimed to be fixed, but the fix never "worked for me".

(Background: I wrote a highlighting / folding XML file for a file format that I 
use, sort of a combination of an mbox file and TWiki (Foswiki markup) on the 
order of 10 or more years ago.  I could not get it to work properly, because 
many "markups" that would represent the end of one folding region had to also 
represent the beginning of a new folding region.  The problem (to the best of 
my recollection and non-technically correct terminology) was that the markup 
representing the end of a folding region was "consumed" by the rule to end a 
region, and was not available to start the next folding region.)

(Aside: I had plans of "publishing" that XML file as part of a mashup 
application I've been working on, but have not got that far yet.)  ;-(

I did two things -- 

   1. I filed a bug (which, iirc, was similar to one or more other bugs, and I 
either added my complaint to that bug, or somebody else recognized several 
bugs as duplicates and combined them).  Several years (3 to 5??) the bug was 
marked as fixed, but I didn't test it at that time because the resolution was 
for a version of kate which was not supported on my Debian (Wheezy, iirc) 
system.  Eventually, I installed a later version of Debian (Jessie) which 
included a later version of kate which incorporated the bug fix.  But, when I 
tried to make use of the new kate (with appropriate, I thought) revisions to 
my XML file, I could not get it to work.  I do not know if that was because:

   * the bug fix really wasn't a fix for my problem
   * the bug fix did fix my problem, but some other change in kate negated that 
   * I had (forgotten) so much about how to make the XML file work that I was 
doing something wrong when I tried to accomodate the fix

   2. I added ending markup as a workaround.

Anyway, I'm going to look in my records to find the bug number -- I guess I'm 
just hoping that this fix does not make my situation any worse.

On Saturday, March 23, 2019 10:22:29 AM Nibaldo González wrote:
> nibags created this revision.
> Herald added projects: Kate, Frameworks.
> Herald added subscribers: kde-frameworks-devel, kwrite-devel.
> nibags requested review of this revision.
>   BUG: 405585
>   There is a problem of folding in rules with beginRegion + endRegion.
>   Example:
>     xml
>     <StringDetect String="hello" endRegion="region1" beginRegion="region2"
> />
>   In this case, the "hello" string is part of the "region1" and "region2"
> regions simultaneously, which generates folding problems. The ideal
> behavior is that "hello" isn't part of "region1", but of "region2". That
> is, don't publish length of endRegion folding in rules with
> beginRegion+endRegion.
>   The following XML files use rules with beginRegion + endRegion:
>     ansforth94.xml apparmor.xml asciidoc.xml asp.xml c.xml cisco.xml
> desktop.xml fortran.xml haml.xml ini.xml isocpp.xml julia.xml lex.xml
> lua.xml makefile.xml perl.xml pony.xml rhtml.xml rpmspec.xml ruby.xml
> template-toolkit.xml txt2tags.xml yacc.xml
>   R216 Syntax Highlighting
>   folding-endRegion-beginRegion
>   https://phabricator.kde.org/D19999
>   autotests/folding/Makefile.fold
>   autotests/folding/folding.cpp.fold
>   autotests/folding/highlight.asp.fold
>   autotests/folding/highlight.cpp.fold
>   autotests/folding/highlight.f90.fold
>   autotests/folding/highlight.lex.fold
>   autotests/folding/highlight.pl.fold
>   autotests/folding/highlight.pony.fold
>   autotests/folding/highlight.prg.fold
>   autotests/folding/highlight.rb.fold
>   autotests/folding/highlight.spec.fold
>   autotests/folding/highlight.t2t.fold
>   autotests/folding/highlight.y.fold
>   autotests/folding/test.desktop.fold
>   autotests/folding/test.ini.fold
>   autotests/folding/usr.bin.apparmor-profile-test.fold
>   autotests/html/test.desktop.html
>   autotests/input/test.desktop
>   autotests/reference/test.desktop.ref
>   src/lib/abstracthighlighter.cpp
> To: nibags
> Cc: kwrite-devel, kde-frameworks-devel, gennad, domson, michaelh, ngraham,
> bruns, demsking, cullmann, sars, dhaumann

More information about the KWrite-Devel mailing list