Difference between revisions of "LMD 2007 - History LMD IDE-Tools"

From LMD
Jump to: navigation, search
Line 93: Line 93:
 
=== LMD ScriptPack 4.X ===
 
=== LMD ScriptPack 4.X ===
  
 +
[+] New PascalScript language is added. 100% Vcl native implemenation without external dlls. The PascalScript engine includes optimizing compiler to byte code and very fast byte-code interpreter. The PascalScript language is the dynamic Variant based script language that support most of the Delphi Pascal expressions and statements, procedure/function declarations, const/var/out parameters, global/locla variables and conatants. The PascalScript provides extended support of exception handling, e.g. raise, try-except and try-finally statements; real Delphi exceptions are raised internally that allows to testing exception class in handler, e.g. on E: EZeroDivide do. The PascalScript engine CodeObject implements the secret interface (in addition to IDispatch) that allows very fast interoperations between interconnected script controls; and also this interface allows to make transparent exception flowing between interconnected script controls. Native script operators such as 'is', 'in', '@' and set constructors, e.g.&nbsp;[akLeft,akTop], is able to work with imported from Delphi objects, instead of provided to ActiveX scripts special functions (e.g. SetMake, SetEmpty, ClassIs, EventMake, ect.).<br>
  
 +
[+] New three stage initialization of script control. Prepare, Open and Close methods and State property are added. So, the new 'Prepared' intermediate state become available. In this state all source code is already parsed, but no global code is executed yet. also the CodeObject is acessible in this state. This allows to make circular dependencies between script controls even in case when global code is used. In simple cases the call to Prepare method can be ommitted. Also the ACloseOnRuntimeError parameter is added to Open method to allow to leave script control opened in case on runtime errors while global code execution.
  
[+] New PascalScript language is added. 100% Vcl native implemenation without external dlls. The PascalScript engine includes optimizing compiler to byte code and very fast byte-code interpreter. The PascalScript language is the dynamic Variant based script language that support most of the Delphi Pascal expressions and statements, procedure/function declarations, const/var/out parameters, global/locla variables and conatants. The PascalScript provides extended support of exception handling, e.g. raise, try-except and try-finally statements; real Delphi exceptions are raised internally that allows to testing exception class in handler, e.g. on E: EZeroDivide do. The PascalScript engine CodeObject implements the secret interface (in addition to IDispatch) that allows very fast interoperations between interconnected script controls; and also this interface allows to make transparent exception flowing between interconnected script controls. Native script operators such as 'is', 'in', '@' and set constructors, e.g.&nbsp;[akLeft,akTop], is able to work with imported from Delphi objects, instead of provided to ActiveX scripts special functions (e.g. SetMake, SetEmpty, ClassIs, EventMake, ect.).<br>
+
[-] The notion of last script error has been complitelly removed from the script pack.
 +
 
 +
[+] New exception formatting has been added instead of last-script-error concept. Now the script control includes the encoded source (reference to script control), error line and position information directly into exception message (e.g. in string form). The&nbsp;LMDDecodeErrorMessageInfo procedure allows to decode this information for advanced applications.
 +
 
 +
[+] New extremely optimized Delphi memory manager proxy allows to detect wrapped object destructions. So, all subsequent access to IDispatch object wrapper will report 'Object has been destroyed' exception, instead of unsafe AccessViolation. This is especially actual for working with exceptions in PascalScript, because the exception objects are automatically destroyed by the interpreter.
 +
 
 +
[+] New prepared expressions/statements feature is added to optimize Eval and ExecuteStatement methods. If the same expression/statement need to be executed many times then it is more efficient to Prepare it first and then use&nbsp;Eval and ExecuteStatement overloadeds methods that takes prepared objects as parameters. Note: the real&nbsp;efficiency gain will be only in the PascalScript because all other ActiveX scripts does not support ths feature internally.
  
 
=== LMD SyntaxEdit 1.X ===
 
=== LMD SyntaxEdit 1.X ===

Revision as of 11:58, 30 March 2009

<< Back to Main Page or Product Resources page

[edit]

Introduction

This documents contains history logs for LMD IDE-Tools 1.0 and corresponding standalone packs.
First official release: 21-June-2007

Legend
[+] Feature added
[*] Feature changed
[-] Bug fixed

History Logs

LMD IDE-Tools 1.X

Release 1.13 (15-Aug-2008)

[*] SyntaxEdit changes (see below)

Release 1.12.60 (14-July-2008)

General
[*] Installer: Detection of BDSCOMMONDIR improved (CRS 2007 only).

Release 1.11 - 1.12.50 (26-June-2008)

[*] SyntaxEdit changes (see below)

Release 1.10 (04-Mar-2008)

General
[*] Improved Helpfile for shared runtime
[*] Improved Helpfile for all LMD IDE-Tools packages
[-] Help installers for BDS/CRS IDEs handle now target path names containing spaces correctly.

[+] WindowManager class, exposed by property inspector, designer, ect. now has StayOnTop property that allows to change form-style of non-modal property and components editors.
[*] Major changes in LMD SyntaxEdit (Release 1.2)

Release 1.05 (21-Jan-2008)

[*] SyntaxEdit changes

Release 1.04.50 (06-Jan-2008)

[*] SyntaxEdit changes

Release 1.04.20 (10-Dec-2007)

[-] All memory leaks and all major bugs fixed in PrintPack
[*] SyntaxEdit changes

Release 1.04.10 (26-Nov-2007)

[-] DesignPack fixes

Release 1.04 (13-Nov-2007)

[+] CRS 2007.NET release
[*] Changes in DesignPack and SyntaxEdit

Release 1.03 (15-Oct-2007)

[-] Fix in LMD DesignPack (see below)

Release 1.02.50 (17-Sep-2007)

[-] Fixes in LMD SyntaxEdit and LMD DesignPack (see below)

Release 1.02 (07-Sep-2007)

[-] Fixes in LMD SyntaxEdit and LMD DesignPack (see below)

Release 1.01 (20-July-2007)

[+] New Component editor for the TPageControl control that allows to create/delete pages.
[-] Bug fixed: Component tree speed has been improved while working with many objects.

LMD DesignPack 4.X

Release 4.04.50 (04-Mar-2008)

[+] Now in OnKeyDown, OnKeyUp and OnKeyPress designer's event handlers user can disable built-in key action by assigning zero to the Key parameter, just like in other Delphi controls.

Release 4.04.10 (26-Nov-2007)

[-] Bug with showing inplace edit popup menu after property inspector popup menu has been fixed.
[-] Bug with inplace edit themed painting has been fixed.

Release 4.04.00 (13-Nov-2007)

[+] CRS 2007.NET release
[-] BTS #561 fixed

Release 4.03.00 (15-Oct-2007)

[-] Bug with reverse captions fixed.

Release 4.02.50 (17-Sep-2007)

[-] Bug in Property Inspector has been fixed.
[-] Bug with inserting new controls in the designer when align lines are active has been fixed.

Release 4.02 (07-Sep-2007)

[-] Designer and property inspector speed has been improved while selecting many (>100) components.

Release 4.01 (20-July-2007)

[-] Bug fixed: String editors in PropertyInspector write RigthToLeft in Unicode mode.
[-] Bug fixed: Properties on objects that do not return ClassInfo raise if one tries to expand their node in the PropertyInspector.
[-] Bug fixed: Method ObjectFound introduces deadlock.
[-] Bug fixed: Memory Leaks in DesignPack 4.0.

LMD ScriptPack 4.X

[+] New PascalScript language is added. 100% Vcl native implemenation without external dlls. The PascalScript engine includes optimizing compiler to byte code and very fast byte-code interpreter. The PascalScript language is the dynamic Variant based script language that support most of the Delphi Pascal expressions and statements, procedure/function declarations, const/var/out parameters, global/locla variables and conatants. The PascalScript provides extended support of exception handling, e.g. raise, try-except and try-finally statements; real Delphi exceptions are raised internally that allows to testing exception class in handler, e.g. on E: EZeroDivide do. The PascalScript engine CodeObject implements the secret interface (in addition to IDispatch) that allows very fast interoperations between interconnected script controls; and also this interface allows to make transparent exception flowing between interconnected script controls. Native script operators such as 'is', 'in', '@' and set constructors, e.g. [akLeft,akTop], is able to work with imported from Delphi objects, instead of provided to ActiveX scripts special functions (e.g. SetMake, SetEmpty, ClassIs, EventMake, ect.).

[+] New three stage initialization of script control. Prepare, Open and Close methods and State property are added. So, the new 'Prepared' intermediate state become available. In this state all source code is already parsed, but no global code is executed yet. also the CodeObject is acessible in this state. This allows to make circular dependencies between script controls even in case when global code is used. In simple cases the call to Prepare method can be ommitted. Also the ACloseOnRuntimeError parameter is added to Open method to allow to leave script control opened in case on runtime errors while global code execution.

[-] The notion of last script error has been complitelly removed from the script pack.

[+] New exception formatting has been added instead of last-script-error concept. Now the script control includes the encoded source (reference to script control), error line and position information directly into exception message (e.g. in string form). The LMDDecodeErrorMessageInfo procedure allows to decode this information for advanced applications.

[+] New extremely optimized Delphi memory manager proxy allows to detect wrapped object destructions. So, all subsequent access to IDispatch object wrapper will report 'Object has been destroyed' exception, instead of unsafe AccessViolation. This is especially actual for working with exceptions in PascalScript, because the exception objects are automatically destroyed by the interpreter.

[+] New prepared expressions/statements feature is added to optimize Eval and ExecuteStatement methods. If the same expression/statement need to be executed many times then it is more efficient to Prepare it first and then use Eval and ExecuteStatement overloadeds methods that takes prepared objects as parameters. Note: the real efficiency gain will be only in the PascalScript because all other ActiveX scripts does not support ths feature internally.

LMD SyntaxEdit 1.X

Release 1.28 (05-Oct-2008)

[-] Minor bug in View replace functions fixed.
[-] Rare AV when deleting View in design time.
[-] When view is printing, no space should be left for line numbers, if corresponded option not selected in View print task.
[+-] Minor improvement in wrap code, bugfixes for scrolling in text with big lines wrapped.
[+-] Minor improvements and bugfixes in LMDPrint package

Release 1.27 (15-Aug-2008)

[-] Minor bug in LMDParser, color scheme parsing code
[-] Bug with incorect print pages count fixed.
[-] Assertion error on whole text and bookmarks delete in TLMDEditView fixed.
[-] Minor bug in search/replace dialog fixed (it should use selection text to initialize dialog)
[-] Keybindings dialog bugfix: it was impossible to bind commands to Tab key
[-] Minor bugfix in Addict spellchecker support.
[-] Minor bug in auto-indent on Tab keypress fixed (this command removed the text before cursor).
[-] Minor bugfix in gutter bars painting.
[-] Fixed exception on TLMDPrinter creation when default system printer is invalid. Now, an exception will be raised when trying to print on TLMDPrinter bound to invalid system printer.
[-] Fixed bug with too big text size on some printers.

Release 1.26 (14-July-2008)

[+] An event for customization default line attributes for painting introduced. See help on TLMDEditGetLineAttrsEvent and TLMDCustomEditView.OnGetLinesAttributes, and Delphi demo: Menu "Settings" - "Custom line colorization"
[+-]Help updated
[-] Bugfix: see this issue
[-] Bugfix: assertion failures in View
[-] Fixed backward compatibility issues introduced in 1.25, with some ILMDLineMarkers functions and View.IndentSelection/UnindentSelection functions.

Release 1.25 (26-June-2008)

[+] Better support for multi-document editing in one view. see this issue

[+] Better indent/unindent support. see this issue[1][+] New commands for TLMDEditView introduced:

sedIndentToPrevIndent - indents selection to previous indent value, looking at first upper indented line.
sedUnIndentToPrevIndent - unindents selection to previous indent value, searching in upper lines a line with indent less than indent of first selected line.
sedBackspaceOrUnindent - if there are only spaces at the left of cursor, then, unindents cursor line to previous indent position. Otherwise, deletes the char left.

'Code breaking changes':

TLMDEditView methods IndentSelection/UnindentSelection now have AUsePrevIndent parameter.

If AUsePrevIndent=false, then indent/unindent methods will use IndentWidth property to add/remove spaces for selection (un)indentation.

If AUsePrevIndent=true, then indent/unindent methods will use previous line with indent bigger/less than indent of selection first line to get new indent.

The documentation will be updated soon.

[+] Tabbed editing in Delphi/Delphi.Net demo

[+] Bookmarks now can remember char position in line too.

Code breaking change: ILMDLineMarkers.CreateMark renamed to ILMDLineMarkers.CreateMarkAtLine. Also, CreateMarkAtOffset and CreateMarkAtCol, DeleteMarksAtLine, DeleteLastMarkAtLine methods added to ILMDLineMarkers. The documentation will be updated soon.

[+-] Paint optimized for Addict live spellcheck.
[+-] Performance optimizations.

[-] Fixed assert violation when deleting text in folded content.
[-] Bug on syntax scheme compilation , when color scheme does not have some aliased token
[-] Bug: Replace dialog doesn't work unless "Prompt on replace" is checked. reported here
[-] Bug: Document.SaveToStream() does not uses Document.CodePage
[-] Bug fixed
[-] Bug fixed

Release 1.24 (14-May-2008)

[-] Bugfix: breakpoint line repainting
[-] Bugfix: TLMDCustomEditView.OnGutterPaint bugs: 608, 607
[-] Bugfix: TLMDCustomEditView.HorizScroll property published: 615

Release 1.23 (21-Apr-2008)

[+] Scrolling/syntax checking speedup. Good for big documents.
[+] Documentation cleanup/improvement for TLMDRegExp, TLMDHashTable, TLMDStringHashTable
[+-] small LMDRegExpr.pas cleanups
[-] Bugfix (one doc, two views, in custom event call SomeView.CursorOffset) (see the link)
[-] Bugfix: errors when part of folded area deleted
[-] Bugfix: FirstLinePhysical may go to invisible area, when deleting text right under folded area.
[-] Bugfix: scrollbars inaccuracy bugs
[-] Bugfix: Delete current line command fixed
[-] Bugfix: see the link
[-] Bugfix: (TLMDEditViewPrintTask.PrepagePages bugs) (see the link

Release 1.22 (31-Mar-2008)

[+] Custom attributes added to Parser. See documentation here.
[+] Dialog components for Syntax Edit:

  • TLMDEditFindDialog
  • TLMDEditReplaceDialog
  • TLMDEditKeybindingsDialog
  • TLMDEditSyntaxSchemeDialog,
  • TLMDEditColorSchemeDialog
  • TLMDEditGotoLineDialog

[+] vsRightClickMovesCursor option added to ViewSettings.
[+] View.OnResize event implemented.
[+] New demos added: for custom attributes (CustomAttrsDemo) and for SyntaxEdit dialogs (CustomAttrsDemo)
[-] Fixed bug with right-click and cursor behavior (see here).
[-] Fixed bug in sedDeleteLine command  (see here)

Release 1.21 (19-Mar-2008)

[+] A new flag introduced for TLMDEditDocument.OnChange event: dcModifiedPropertyChanged. It is set when Document.Modified property has changed.
[+] New option for Gutter to show wrap glyphs on line numbers bar: gsPaintWrapsOnLineNumberBar. See Gutter.Settings property.
[+] New View commands introduced: sedDeleteLine (Ctrl+Y), sedDeleteToLineEnd (Ctrl+K), sedDeleteToLineWrap (Ctrl+Shit+K)
[+] New Gutter bar implemented: gbWrapBar used to show wrap glyphs.
[+-] BorderStyle property implemented for View
[-] BeginCompoundEdit does not cancels selection anymore. Also, now, only keyboard/mouse operations cancels selection.
[-] Some speedup of big files listing/movement.
[-] Html color notation, custom color in color schemes fixed (there was incorrect html color decoding).
[-] Small memory leak fix.

Release 1.20 (04-Mar-2008)

[*] Installer save schemes definition now into \Resources or \ResourcesNet folder of target both (directory Editor_Schemes).
[+] Full Spellcheck support using Addict implemented (for Win32 platform only, since there's no Addict for .Net).
See demo with spellchecking and TLMDEditView.SyntaxCheckTokens property.
[+] New word wrap mode to wrap the text at the window width.
See TLMDViewWrapMode type and TLMDEditView.WrapMode property.
[+] Cursor through tabs mode, Visual Studio-like behaviour. Also, this mode will not allow set cursor beyond the line end.
See vsCursorBoundToChars flag for TLMDEditView.ViewSettings property.
[+] Option for current line highlight, as new Delphi does.
See vsHighlightSelectedLine flag for TLMDEditView.ViewSettings property.
[+] Documentation updates for features listed above, and implemented before, but undocumented.
[+] Now View allows to change it while Document in CompoundEdit mode.
See replace issue [+] Now its possible to search/replace in View backward with regexps too.
[+] Now Document has API to perform advanced Search/Replace (with regexps etc), as View does.
See TLMDEditDocument.FindPattern***/ReplacePattern*** method sets.
[+] Also, regexp Replace in View and Document now allows regexp pattern substitution.
See Subexpressions and substitution section in regexp manual.
[+] SQL syntax scheme added to schemes. CSS syntax scheme improved.
[+] Minor improvement in TLMDEditDocument component editor: now it allows manually enter path for loading syntax schemes.
[+-] TLMDEditDocument API for load/save with different encodings reorganized to be more reliable.
See TLMDEditDocument.CodePage**/LoadFrom**/SaveTo** methods and properties.
[+] Now the user of TLMDEditDocument able to add custom listeners to track document changes precisely. It should be useful for advanced tasks
[+] Roadmap changed
[-] Minor bugfixes in HTML and XML schemes.
[-] Issue with some Italian AltGr chars fixed.
[-] Minor bugs in regexp engine fixed: '\r\n'-like patterns now are working properly.

Release 1.10 (21-Jan-2008)

Bugfix release:
[+] New attributes for Syntax schemes *Scheme* element: moreWordSeparators, moreWordChars, used to alter \b operator behaviour.
See Shemes manual for details.
[-] Performance improvements in syntax schemes (file with very big lines had a chance to hang parsing)
[-] Bugfixes in text loading/saving in UTF8, UTF16 encodings.
[-] BTS #586 fixed (view locked for changes after load from file)
[-] AV in Parser fixed on reparsing text from some position, when variables used in syntax token regexps (affected VB scheme).
[-] Fixed: all line endings were converted to CRLF combination when loading/saving from/to a file. Now any combinations of line endings (CR, LF or mixed) are preserved.

Release 1.06 (06-Jan-2008)

[+] TLMDEditDocument.Modified property added, related to its methods TLMDEditDocument.Lines.Load/Save, authomatically set when document has changed, unset when undo etc. Demos updated.
[+] TLMDEditDocument.CodePage/CodePageName properties added (support for custom save/load encodings). Also, TLMDEditDocument.Lines.SaveToStream/LoadFromStream methods supports those encoding properties. Demos are updated with support for those properties.
[+] lmdrtl: LMDUnicodeEncodings.pas unit added with TLMDEncoding class (wrapper for windows/.net encoding functions/classes: System.Text.Encoding/MultiByteToWideChar/WideCharToMultiByte)
[-] bug #581 fixed: Assertion failure in LMDSedView.pas, line 4296
[-] fixed bug when extra line appears on appending segment starting with LMDLF, when text was finished with LMDCR
[-] misspelled word 'Phyzical' changed to 'Physical' in function names of TLMDEditView class. Also, ScrollPosToClient function introduced.

Release 1.05.10 (10-Dec-2007)

[*] Improved PrintPack integration

Release 1.05 (13-Nov-2007)

[+] CRS 2007.NET release
[+] PrintPack integration, including Print Preview support

Release 1.04 (17-Sep-2007)

[+] Double-click select and then holding down the mouse button and dragging the mouse selects by "word"
[+] Triple-clicking a line selects the entire line
[+] Triple-click select and then holding down the mouse button and dragging the mouse selects by "lines"
[+] Property TLMDEditView.SelectedText added. Now you can get and set the selected text easily.
[+] Gutter bar padding properties (LeftPadding, RightPadding) added.
[+] New view settings flag to toggle highlight cursor line: vsHighlightSelectedLine
[+] LMDSedFindDialog unit: TLMDEditSearchDlgOptions: LastNumberOfReplacements and WasReplaceAllChosen fields added to get information on executed replace dialog.
[-] Fixed: Misspelled TLMDEditView.ViewSettings vsOwerwrite flag corrected to vsOverwrite.

Release 1.03 (07-Sep-2007)

[+] Color scheme visual editor (property editor for TLMDEditDocument.ColorSchemes)
[+] TLMDEditView.CustomKeyBindings property added, and visual property editor for it. Now, it's possible to override predefined keybindings in TLMDEditView.
[-] assign syntax/color schemes.
[-] memory leak with internal timer
[-] GutterBar.Visible behavior
[-] syntax schemes for JS and Perl fixed (BTS #529)

Release 1.02 (17-Aug-2007)

[+] Document.ReadOnly property introduced with View.ReadOnlyBgColor property
[-] BTS #518 fixed (e.g. entering characters with AltGr key)

Release 1.01 (20-July-2007)

[-] Numerous small bugfixes with markers and view
[+] Performance improvements for parser
[+] Block indent/unindent feature added (Ctrl+Shift+I/Ctrl+Shift+U)