laz-synpatch-005.patch
This is a gross hack, but it allows clicking *anywhere* on the grey
fold line in the gutter to fold
that particular level of routine. I have some procedures that are
very long and it's nice to be able
to click on that line from the bottom of the procedure and have it
fold up on me.
Makes me wonder, how it integrates, with the ability to configure which
mouse button triggers which action
Also the code to do it already exist (Synedit line 6236) for the
keyboard shortcut:
EcFoldCurrent:
begin
CY := FFoldedLinesView.ExpandedLineForBlockAtLine(CaretY);
if CY > 0 then begin
FFoldedLinesView.FoldAtTextIndex(CY-1);
SetCaretXY(Point(1, CY));
end;
end;
Lastly, this can be done already via the context menu too (contextmenu
over the foldline)
=> The idea for such a shortcut is good, need to think about if this is
done in a good way currently....
-----
laz-synpatch-007.patch
This is another gross hack, but in a highlighter I've written I use
this to enable me to ensure the
remainder of a line is painted in the right background colour.
Synedit calls this "GetLineRemainder"
routine (if assigned in the highlighter) to get the colour the
remainder of the line is to be
painted after it has finished painting all its tokens. Without this I
was getting odd line
remainders when I scrolled often. With this I get perfection every time.
with fTextDrawer do
if MarkupInfo = nil
what if markup onfo is assigned, but doesnt change the bg color? (leaves
it to default )
laz-synpatch-008.patch
And the final gross hack. I store the folded status of each open file
in my overall project file.
The easy way for me to do this is in a sequential comma delimited
list of line numbers that are
folded. This routine "DumpFolds" gives me a string which is a comma
delimited list of all the lines
that are folded. Then when I reload the project I can simply fold
those lines in reverse order to
get precisely the folds I had previously.
Hm, I ll think about it. I had the idea of somekind of checksum, to
allow detection of changed text....
Also, just line-number does not work: There can be 2 or more folds
starting the same line, and vie the context menu you can fold any of them.
On another note, recent work by Martin Friebe and Paul Ishenin has
rendered three other gross hacks
I've had in my tree irrelevant :)
Regards,
Brad
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus