User:Martin

From Lazarus wiki
Revision as of 15:03, 29 February 2012 by Martin (talk | contribs)
Jump to navigationJump to search

MartinFriebe.jpg

               

About me:

  • Name: Martin Friebe.
  • Location: London, UK
  • Nationality: German
               

My role in Lazarus

  • Joined 2008
  • Main fields: SynEdit, Debugger

I got involved with Lazarus by contributing some patches (Debugger, Synedit, Code-Folding). I am now mainly looking at improving SynEdit and the Debugger

Plans

  • Features
  • More folding
  • Class and Class sections (public,private,...) in the Interface Part [|Bug 12139]
  • Full Procedure/function at "Procedure xxx;" line
  • var/const/type sections
  • maybe IFDEF
  • User-defined { $REGION}
  • All kind of comments {} (**) //
  • Hide-Fold: Collapse to 0 lines. E.g Fold/Hide single line comment
  • Multi-Line fold header: Currently only the line with the fold keyword (e.g. "procedure" is kept visible.
For Multiline procedure declaration, the whole procedure declaration may be wanted visible. Folding only local var, type and code
  • Folding: The ability of copy and past code, that contains folded blocks, and keeps them folded when inserted
  • Folding, save with session
  • Handle DoubleWidth char (Chinese, ...)
  • User definable Mouse Actions / Configuration
  • interactive parms forcode-templates example
  • Sync Edit: Edit one word in more than one location, updating all locations at the same timeexample
  • Persistent Blocks
  • WordWrap
  • Pascal syntax check as you write
  • Highlight of none active co0de (IFDEF)
  • Gutter for error overview (compilation or codetool errors). The gutter shows the full file, mapping the locations like the slider on a scrollbar.
  • Allow to have multiple editors open in Lazarus, and have more than one view of the same document.
  • Writing TestCases
  • Clean up and refactor.
Someone already put up some ideas here Redesign of the SynEdit component. And there is more
  • Move all gutter code into a structure of Classes (Needs clean up)
TGutterManager: To Represent to act as an interface and represent the whole Gutter
TGutterLineNumbers, TGutterFoldInfo, TGutterMarks, TGutterBrkPoints: To draw the individual columns of the Gutter.
  • Move drawing the Text To it's own class (like the gutter)
  • Create classes for Caret, BlockSelection, ViewPort (Topline,LeftChar, LinesInWindow, WindowWidthInChar)
This will help to more clearly define interactions between them (Via OnChangeNotify callbacks)
  • Reduce the Calculation overhead. There currently is some internal Data that SynEedit keeps recalculating more often than needed. (This should benefit from The caret and Viewpoint classes)
  • Defer the calculation of some of the internal data. Calculate either OnIdle, or OnRequest

Done

  • Fixed Bugs
  • Various debugger patches sent to Marc
  • Refactored CodeFolding: A majority of the folding code has been moved into it's own classes
  • Refactored TrimTrailingSpaces: Moved into it's own class, which acts as a "view" (virtual TextBuffer, between SynEdit, and SynEditTextBuffer)