Difference between revisions of "User:Martin"
From Free Pascal wiki
Jump to navigationJump to searchLine 5: | Line 5: | ||
==Plans== | ==Plans== | ||
− | * Clean up and refactor. Someone already put up some ideas here [[Redesign of the SynEdit component]]. And there is more | + | * Features |
+ | :* <s>More folding</s> | ||
+ | ::* <s>Class and Class sections (public,private,...) in the Interface Part [[http://bugs.freepascal.org/view.php?id=12139 |Bug 12139]]</s> | ||
+ | ::* <s>Full Procedure/function at "Procedure xxx;" line</s> | ||
+ | ::* <s>var/const/type sections</s> | ||
+ | ::* <s>maybe IFDEF </s> | ||
+ | ::* <s>User-defined { $REGION} </s> | ||
+ | ::* 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 | ||
+ | ::* <s>Folding: The ability of copy and past code, that contains folded blocks, and keeps them folded when inserted</s> | ||
+ | ::* <s>Folding, save with session</s> | ||
+ | :* <s>Handle DoubleWidth char (Chinese, ...)</s> | ||
+ | :* <s>User definable Mouse Actions / Configuration</s> | ||
+ | :* <s>interactive parms forcode-templates [[New_IDE_features_since#Code_Templates_with_macro_.24Param|example]]</s> | ||
+ | :* <s>Sync Edit: Edit one word in more than one location, updating all locations at the same time[[New_IDE_features_since#Syncron-Edit|example]]</s> | ||
+ | :* <s>Persistent Blocks</s> | ||
+ | :* 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. | ||
+ | :* <s>Allow to have multiple editors open in Lazarus, and have more than one view of the same document.</s> | ||
+ | :* Writing TestCases | ||
+ | : | ||
+ | * Clean up and refactor. | ||
+ | : Someone already put up some ideas here [[Redesign of the SynEdit component]]. And there is more | ||
:* <s>Move all gutter code into a structure of Classes</s> (Needs clean up) | :* <s>Move all gutter code into a structure of Classes</s> (Needs clean up) | ||
:: <s>TGutterManager: To Represent to act as an interface and represent the whole Gutter</s> | :: <s>TGutterManager: To Represent to act as an interface and represent the whole Gutter</s> | ||
Line 14: | Line 40: | ||
:* 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) | :* 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 | :* Defer the calculation of some of the internal data. Calculate either OnIdle, or OnRequest | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Done== | ==Done== |
Revision as of 14:34, 28 June 2010
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
- Features
More folding
Class and Class sections (public,private,...) in the Interface Part [|Bug 12139]Full Procedure/function at "Procedure xxx;" linevar/const/type sectionsmaybe IFDEFUser-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 insertedFolding, save with session
Handle DoubleWidth char (Chinese, ...)User definable Mouse Actions / Configurationinteractive parms forcode-templates exampleSync Edit: Edit one word in more than one location, updating all locations at the same timeexamplePersistent 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 GutterTGutterLineNumbers, 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)