https://bugs.kde.org/show_bug.cgi?id=422521

            Bug ID: 422521
           Summary: syntax/folding (C/C++): "#..."  interferes with std
                    block "{" folding
           Product: kate
           Version: 19.12.3
          Platform: FreeBSD Ports
                OS: FreeBSD
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: syntax
          Assignee: kwrite-bugs-n...@kde.org
          Reporter: torsten.eichsta...@web.de
  Target Milestone: ---

SUMMARY
This has a subtle bad (buggy) consequence:  The whole part of the file after
the function where the "#..." occurs gets hidden.  Very nasty... ;)

If s/o fixes this: IMHO the region of any "#if" (or "#ifdef" or such) should
only span until an "#else" or "#elif", if such occurs. Any "#elif" or "#else"
should start an own region until the next "#elif", "#else" or "#end". 
Alternatively the "#elif" and "#else" could be sub-regions (then the starting
"#if" must start two regions: outer->"#end", inner->"#el..."), but IMHO w/o
sub-regions the user sees what the compiler sees (after the preprocessor, which
processes the "#..." stuff), and that's what s/he is interested in.  As it is
now, the folding of preproccessor directives ("#...") is so that I can fold
s/th that does not match to what gets compiled.

STEPS TO REPRODUCE
1. Open the file "powerd.c" (attachment)
2. Point the mouse at the closing brace "}" of that function (line 397), and
   note where the region begins.
3. Point the mouse at the previous closing brace (line 396), and note where
   the region begins.  Very interesting...
4. Fold the function acline_read() (line 327): the whole rest of the file
   gets hidden.


OBSERVED RESULT
Folding a region that contains overlaping sub-regions brings the folding engine
out of sync.  Sorry I can't explain it better...

EXPECTED RESULT
"PERFECT" behaviour ;)

SOFTWARE/OS VERSIONS
Windows: igitt!
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 5.18.4
KDE Frameworks Version: 5.68.0
Qt Version: 5.13.2

ADDITIONAL INFORMATION
THX for everything

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to