Hi John, can you run SynEdit with console output, or output to a logfile? And put some debugging in (and rebuild it)? If yes, try this
1) in components/synedit/SynEditMarkup.pp line 244 currently: procedure TSynEditMarkup.InvalidateSynLines(FirstLine, LastLine : integer); begin if assigned(fInvalidateLinesMethod) then fInvalidateLinesMethod(FirstLine, LastLine); end; make it: procedure TSynEditMarkup.InvalidateSynLines(FirstLine, LastLine : integer); begin debugln(['Markup InvalidateLin first=', FirstLine,' Last=', LastLine]); if assigned(fInvalidateLinesMethod) then fInvalidateLinesMethod(FirstLine, LastLine); end; and add "LCLProc" to the uses clause. 2) In components/synedit/SynEditMarkupBracket.pp after line 69 in procedure TSynEditMarkupBracket.FindMatchingBracketPair(PhysCaret : TPoint; find the "begin" and add at the start of the procedure: (LCLProc should be in uses already) debugln('Brackets Invalidate'); 3) in components/synedit/SynEdit.pp line 2851 (inside procedure Paint) uncomment the line: DebugLn('TCustomSynEdit.Paint LinesInWindow=',dbgs(LinesInWindow),' nL1=',dbgs(nL1),' nL2=',dbgs(nL2)); Rebuild Lazarus. Now if you approach or leave a bracket (it will be recognized to the right and to the left of the caret) you should get some debug lines like BracketsInvalidate Markup InValidate start = xx last= yy Markup InValidate start = xx last= yy TCustomSynEdit.Paint LinesInWindow=25 nL1=xx nl2=yy Possible some of them are repeated more/less often. Do they match the line number(s) where your brackets are? Can you get the result for 2 brackets on the same line, and 2 brackets on different lines? Also ensure you do not use code folding => there are a few cases where code folding may affect the calculation of the correct line number. Thanks Martin John Stoneham wrote: > Ok, a quick experiment leads me to believe it is indeed a redrawing > issue. As you suggested, I tried moving another window over the editor > window. When this happens, the highlighting appears as it should (when > the cursor is touching a bracket, the other bracket is highlighted; > when the cursor is away from the bracket, neither are highlighted). As > soon as the editor window receives focus again, the redrawing doesn't > work anymore to highlight or de-highlight the brackets. > > BTW, the same thing happens if I pageup/pagedown with the cursor next > to the bracket. When I pageup/pagedown to bring that section back onto > the screen, the highlighting has repainted correctly. It also repaints > correctly if I CTRL+UP or CTRL+DOWN to scroll the editor window by one > line while the cursor remains on the line. > > So, it definitely seems like a repaint or redrawing issue. > > On Fri, Oct 10, 2008 at 9:00 AM, Martin Friebe <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Well, I don't have a mac, so I can't test this, but I was involved > into > some refactor around the bracket-highlights (a few month back). > > one of the major changes was > http://bugs.freepascal.org/view.php?id=11693 revision 15861 > Did it work before that? Did/does it work in 0.9.24? > > A few of the other work items were > http://bugs.freepascal.org/view.php?id=11732 revision 15845 > http://bugs.freepascal.org/view.php?id=11754 revision 15883 (highlight > bracket on either side of caret) > > Anyway, a few things that may help to nail it down (even so I will not > be able to do too much, since I have no mac...) > > 1) Do determine if it is an issue, with synedit thinking it needs to > highlight a bracket, or is it an issue with Synedit not redrawing? > > Do find out: When the highlight goes wrong: > a) Bracket is highlighted, but the cursor moved away > b) Bracket is not highlighted, but the cursor is on the bracket > > resize the window, or overlap it with another window => anything that > should force a redraw => does synedit correct the highlighting? > > 2) Fontsize issues (there is a good chance to find it here) > > - Try highlighter = "none" or "text" does that look any better? > - does it make a diff,if the caret is on the opening or closing > bracket > (the bracket occurring first on the line, or last?) > - does it make a diff if the 2 brackets are on the same line, or on 2 > different lines (especially with highlighter none/text ? > > Synedit with highlighter, paints the line as a selection of small > "tokens". It calculates the width of each of them. If the actual > textdrawer gets a different width => all sort of strange things > can happen. > That could explain an operating system dependent issue. > > > Martin > > > > John Stoneham wrote: > > > > > > On Fri, Oct 10, 2008 at 4:17 AM, Mattias Gärtner > > <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>> wrote: > > > > Zitat von John Stoneham <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>>: > > > > > I've been using the latest svn (Carbon) for a while now, > > updating once a day > > > or so, and matching brackets never seem to highlight properly. > > This issue > > > appears on 10.4.11 and 10.5.3 (different builds for Tiger and > > Leopard). > > > Usually, they don't highlight at all. When they do highlight, > > one or both > > > often get "stuck" with the highlighting on after the cursor > > moves away. > > > > Some weeks ago I saw the same problem. It was the wrong font. > > Since then it works almost nice, only sometimes the highlighting > > is not updated. > > > > > > Well, this would be a major improvement over what I see all the > time. > > Thing is, I've tried all the fixed width fonts (Andale Mono, > Courier, > > Courier New, Monaco), and changing font doesn't have any effect. It > > still doesn't work properly, ever. Which font are you using that's > > causing the bracket highlighting to almost work? Actually, it'd be > > better if you posted all your settings: the color scheme you use, > > font, font size, whether anti-aliasing is enabled, and your settings > > for matching brackets (e.g. bold, inverted, etc). Maybe they're some > > "magic combination" and you've stumbled onto it. > > > > Perhaps you could attach your editoroptions.xml file? > > > > > > > > > Is anyone else noticing this issue? If so, I'll submit a > bug report. > > > > If you have some clues how to reproduce it reliable , yes > please. > > > > > > It reproduces reliably for me, in that bracket highlighting never > > works the way it's supposed to. However, it seems to be working > > somewhat for you. If I can reproduce your settings and see the same > > behaviour, then I'm sure you could reproduce mine and see what I'm > > seeing. Then I'd say it's reproducable and I'll file a bug report. > > > > -- > > _| ( ) |-| |\| > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Lazarus mailing list > > Lazarus@lazarus.freepascal.org > <mailto:Lazarus@lazarus.freepascal.org> > > http://www.lazarus.freepascal.org/mailman/listinfo/lazarus > > > _______________________________________________ > Lazarus mailing list > Lazarus@lazarus.freepascal.org <mailto:Lazarus@lazarus.freepascal.org> > http://www.lazarus.freepascal.org/mailman/listinfo/lazarus > > > > > -- > _| ( ) |-| |\| > ------------------------------------------------------------------------ > > _______________________________________________ > Lazarus mailing list > Lazarus@lazarus.freepascal.org > http://www.lazarus.freepascal.org/mailman/listinfo/lazarus > _______________________________________________ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus