Difference between revisions of "User:Martin"

From Lazarus wiki
Jump to navigationJump to search
Line 6: Line 6:
 
==Plans==
 
==Plans==
 
* Fix bugs
 
* Fix bugs
 +
* Fix more Bugs
 
* Clean up and refactor. Someone already put up some ideas here [[Redesign of the SynEdit component]]. And there is more
 
* 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:
 +
:: 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.
 +
:: This will allow to easily modify or add to 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)
 +
:: (Started for Caret)
 +
:* 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
 +
* More folding
 +
:* Class and Class sections (public,private,...) in the Interface Part [[http://bugs.freepascal.org/view.php?id=12139 |Bug 12139]]
 +
:* Full Procedure/function at "Procedure xxx;" line
 +
:* var/const/type sections
 +
:* maybe IFDEF
 +
:* maybe User-defined
 +
* WordWrap
 
* Look at Synedit 2.x (import and maybe export back to them)
 
* Look at Synedit 2.x (import and maybe export back to them)
* More folding (Procedure Header; var/const section, IFDEF(maybe), User-defined)
 
 
* Allow to have multiple editors open in Lazarus, and have more than one view of the same document.
 
* Allow to have multiple editors open in Lazarus, and have more than one view of the same document.
 +
* Writing TestCases
 +
 +
==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)

Revision as of 14:59, 22 November 2008

Hi. My name is Martin Friebe. I am a professional Software Developer. I was born in Germany, and I am now living in London (UK).

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

Plans

  • Move all gutter code into a structure of Classes:
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.
This will allow to easily modify or add to 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)
(Started for Caret)
  • 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
  • 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
  • maybe User-defined
  • WordWrap
  • Look at Synedit 2.x (import and maybe export back to them)
  • Allow to have multiple editors open in Lazarus, and have more than one view of the same document.
  • Writing TestCases

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)