SynEdit, Auto-Indent: Implement indent types

git-svn-id: trunk@18241 -
This commit is contained in:
martin 2009-01-10 21:11:37 +00:00
parent 0ba3d5877c
commit 585bbf6ef1
10 changed files with 510 additions and 332 deletions

1
.gitattributes vendored
View File

@ -1402,6 +1402,7 @@ components/synedit/languages/synmacrorecorder.po svneol=native#text/plain
components/synedit/languages/synmacrorecorder.ru.po svneol=native#text/plain
components/synedit/languages/synmacrorecorder.ua.po svneol=native#text/plain
components/synedit/languages/synmacrorecorder.zh-cn.po svneol=native#text/utf8
components/synedit/synbeautifier.pas svneol=native#text/plain
components/synedit/synbeautifierpas.pas svneol=native#text/plain
components/synedit/syncompletion.pas svneol=native#text/pascal
components/synedit/synedit.inc svneol=native#text/pascal

View File

@ -0,0 +1,153 @@
unit SynBeautifier;
{$I synedit.inc}
interface
uses
Classes, SysUtils, SynEditMiscClasses;
type
{ TSynCustomBeautifier }
TSynCustomBeautifier = class(TComponent)
public
function CanUnindent(const Editor: TSynEditBase; const Line: string;
const PhysCaretX: Integer): Boolean; virtual; abstract;
function UnIndentLine(const Editor: TSynEditBase; const Line: string;
const PhysCaret: TPoint; out DelChars, InsChars: String;
out CaretNewX: Integer): String; virtual; abstract; // Todo InsChar are not supprted for undo
function IndentLine(const Editor: TSynEditBase; Line: string;
const PhysCaret: TPoint; out DelChars, InsChars: String;
out CaretNewX: Integer;
RemoveCurrentIndent: Boolean = False): String;
virtual; abstract; // Todo DelChar are not supprted for undo
function GetIndentForLine(Editor: TSynEditBase; const Line: string;
const PhysCaret: TPoint): Integer; virtual; abstract;
end;
TSynBeautifierIndentType = (sbitSpace, sbitCopySpaceTab, sbitPositionCaret);
{ TSynBeautifier }
TSynBeautifier = class(TSynCustomBeautifier)
private
FIndentType: TSynBeautifierIndentType;
public
function LeftSpaces(Editor: TSynEditBase; const Line: string;
Physical: boolean): Integer;
function CanUnindent(const Editor: TSynEditBase; const Line: string;
const PhysCaretX: Integer): Boolean; override;
function UnIndentLine(const Editor: TSynEditBase; const Line: string;
const PhysCaret: TPoint; out DelChars, InsChars: String;
out CaretNewX: Integer): String; override; // Todo InsChar are not supprted for undo
function IndentLine(const Editor: TSynEditBase; Line: string;
const PhysCaret: TPoint; out DelChars, InsChars: String;
out CaretNewX: Integer;
RemoveCurrentIndent: Boolean = False): String; override; // Todo DelChar are not supprted for undo
function GetIndentForLine(Editor: TSynEditBase; const Line: string;
const PhysCaret: TPoint): Integer; override;
published
property IndentType: TSynBeautifierIndentType read FIndentType write FIndentType;
end;
implementation
uses SynEdit;
{ TSynBeautifier }
function TSynBeautifier.LeftSpaces(Editor: TSynEditBase; const Line: string; Physical: boolean): Integer;
var
p: PChar;
begin
p := pointer(Line);
if Assigned(p) then begin
Result := 0;
while p^ in [#1..#32] do begin
Inc(p);
Inc(Result);
end;
if Physical and (Result>0) then
Result := TSynEdit(Editor).LogicalToPhysicalCol(Line, Result+1)-1;
end else
Result := 0;
end;
function TSynBeautifier.CanUnindent(const Editor: TSynEditBase; const Line: string; const PhysCaretX: Integer): Boolean;
begin
Result := (LeftSpaces(Editor, Line, True) = PhysCaretX - 1);
end;
function TSynBeautifier.UnIndentLine(const Editor: TSynEditBase; const Line: string; const PhysCaret: TPoint; out DelChars, InsChars: String; out
CaretNewX: Integer): String;
var
SpaceCount1, SpaceCount2: Integer;
BackCounter, LogSpacePos: Integer;
begin
SpaceCount1 := LeftSpaces(Editor, Line, true);
SpaceCount2 := 0;
if (SpaceCount1 > 0) then begin
BackCounter := PhysCaret.Y - 2;
while BackCounter >= 0 do begin
SpaceCount2 := LeftSpaces(Editor, Editor.RealLines[BackCounter], true);
if SpaceCount2 < SpaceCount1 then
break;
Dec(BackCounter);
end;
end;
if SpaceCount2 = SpaceCount1 then
SpaceCount2 := 0;
// remove visible spaces
LogSpacePos := TSynEdit(Editor).PhysicalToLogicalCol(Line, SpaceCount2 + 1);
CaretNewX := SpaceCount2 + 1;
DelChars := copy(Line, LogSpacePos, PhysCaret.X - LogSpacePos);
InsChars := ''; // TODO: if tabs were removed, maybe fill-up with spaces
Result :=copy(Line, 1, LogSpacePos-1) + copy(Line, PhysCaret.X, MaxInt);
end;
function TSynBeautifier.IndentLine(const Editor: TSynEditBase; Line: string; const PhysCaret: TPoint; out DelChars, InsChars: String; out
CaretNewX: Integer; RemoveCurrentIndent: Boolean): String;
var
SpaceCount1, SpaceCount2: Integer;
BackCounter: Integer;
Temp: string;
begin
DelChars := '';
If RemoveCurrentIndent then begin
SpaceCount1 := LeftSpaces(Editor, Line, False);
DelChars := copy(Line, 1, SpaceCount1);
Line := copy(Line, SpaceCount1 + 1, MaxInt);
end;
SpaceCount2 := 0;
BackCounter := PhysCaret.Y - 1;
repeat
Dec(BackCounter);
Temp := Editor.RealLines[BackCounter];
SpaceCount2 := LeftSpaces(Editor, Temp, True);
until (BackCounter = 0) or (Temp <> '');
case FIndentType of
sbitSpace:
InsChars := StringOfChar(' ', SpaceCount2);
sbitCopySpaceTab:
InsChars := copy(Temp, 1, TSynEdit(Editor).PhysicalToLogicalCol(Temp, SpaceCount2+1)-1);
sbitPositionCaret:
if Line <> '' then
InsChars := StringOfChar(' ', SpaceCount2)
else
InsChars := '';
end;
CaretNewX := TSynEdit(Editor).LogicalToPhysicalCol(Result, SpaceCount2+1);
Result := InsChars + Line;
end;
function TSynBeautifier.GetIndentForLine(Editor: TSynEditBase; const Line: string; const PhysCaret: TPoint): Integer;
var
s1, s2: string;
begin
IndentLine(Editor, Line, PhysCaret, s1, s2, Result, False);
end;
end.

View File

@ -44,14 +44,14 @@ unit SynBeautifierPas;
interface
uses
Math, Classes, SysUtils, LCLProc, SynEdit, SynEditTextBuffer,
Math, Classes, SysUtils, LCLProc, SynEdit, SynBeautifier, SynEditTextBuffer,
SynEditHighlighter, SynHighlighterPas;
type
{ TSynBeautifierPas }
TSynBeautifierPas = class(TSynCustomBeautifier)
TSynBeautifierPas = class(TSynBeautifier)
public
function TokenKindIsComment(Kind: integer): boolean;
function InComment(Editor: TCustomSynEdit; XY: TPoint): boolean;

View File

@ -74,7 +74,7 @@ uses
Imm,
{$ENDIF}
SynEditTypes, SynEditSearch, SynEditKeyCmds, SynEditMiscProcs,
SynEditPointClasses,
SynEditPointClasses, SynBeautifier,
{$ifdef SYN_LAZARUS}
SynEditMarkup, SynEditMarkupHighAll, SynEditMarkupBracket,
SynEditMarkupCtrlMouseLink, SynEditMarkupSpecialLine, SynEditMarkupSelection,
@ -296,27 +296,6 @@ type
destructor Destroy; override;
end;
{$IFDEF SYN_LAZARUS}
{ TSynCustomBeautifier }
TSynCustomBeautifier = class(TComponent)
public
function LeftSpaces(Editor: TCustomSynEdit; const Line: string;
Physical: boolean): Integer;
function CanUnindent(const Editor: TCustomSynEdit; const Line: string;
const PhysCaretX: Integer): Boolean; virtual;
function UnIndentLine(const Editor: TCustomSynEdit; const Line: string;
const PhysCaret: TPoint; out DelChars, InsChars: String;
out CaretNewX: Integer): String; virtual; // Todo InsChar are not supprted for undo
function IndentLine(const Editor: TCustomSynEdit; Line: string;
const PhysCaret: TPoint; out DelChars, InsChars: String;
out CaretNewX: Integer;
RemoveCurrentIndent: Boolean = False): String; virtual; // Todo DelChar are not supprted for undo
function GetIndentForLine(Editor: TCustomSynEdit; const Line: string;
const PhysCaret: TPoint): Integer; virtual;
end;
{$ENDIF}
TSynMouseLinkEvent = procedure (
Sender: TObject; X, Y: Integer; var AllowMouseLink: Boolean) of object;
@ -479,6 +458,7 @@ type
function GetCaretXY: TPoint;
function GetFoldedCodeColor: TSynSelectedColor;
function GetFont: TFont;
function GetLines: TStrings; override;
function GetMarkup(Index: integer): TSynEditMarkup;
function GetMarkupByClass(Index: TSynEditMarkupClass): TSynEditMarkup;
{$IFDEF SYN_LAZARUS}
@ -494,10 +474,11 @@ type
function GetSelectedColor : TSynSelectedColor;
function GetBracketMatchColor : TSynSelectedColor;
function GetMouseLinkColor : TSynSelectedColor;
function GetTheLinesView: TStrings; override;
procedure SetBracketHighlightStyle(
const AValue: TSynEditBracketHighlightStyle);
procedure SetOnGutterClick(const AValue : TGutterClickEvent);
procedure SetRealLines(const AValue : TStrings);
procedure SetRealLines(const AValue : TStrings); override;
procedure SetSelectedColor(const AValue : TSynSelectedColor);
procedure SetSpecialLineColors(const AValue : TSpecialLineColorsEvent);
procedure SetSpecialLineMarkup(const AValue : TSpecialLineMarkupEvent);
@ -568,7 +549,7 @@ type
procedure SetLastMouseCaret(const AValue: TPoint);
{$ENDIF}
procedure SetLeftChar(Value: Integer);
procedure SetLines(Value: TStrings);
procedure SetLines(Value: TStrings); override;
procedure SetLineText(Value: string);
procedure SetMaxLeftChar(Value: integer);
procedure SetMaxUndo(const Value: Integer);
@ -878,8 +859,6 @@ type
property LineHeight: integer read fTextHeight;
property LinesInWindow: Integer read fLinesInWindow; // MG: fully visible lines
property LineText: string read GetLineText write SetLineText;
property RealLines: TStrings read FTheLinesView write SetRealLines; // As viewed internally (with uncommited spaces / TODO: expanded tabs, folds). This may change, use with care
property Lines: TStrings read FLines write SetLines; // No uncommited (trailing/trimmable) spaces
property Text: string read SynGetText write SynSetText; // No uncommited (trailing/trimmable) spaces
property Marks: TSynEditMarkList read fMarkList;
property MaxLeftChar: integer read fMaxLeftChar write SetMaxLeftChar
@ -1729,6 +1708,11 @@ begin
Result := inherited Font;
end;
function TCustomSynEdit.GetLines: TStrings;
begin
Result := FLines;
end;
function TCustomSynEdit.GetLineText: string;
begin
Result := FCaret.LineText;
@ -1802,6 +1786,11 @@ begin
Result := fMarkupCtrlMouse.MarkupInfo;
end;
function TCustomSynEdit.GetTheLinesView: TStrings;
begin
Result := FTheLinesView;
end;
procedure TCustomSynEdit.SetBracketHighlightStyle(
const AValue: TSynEditBracketHighlightStyle);
begin
@ -5782,6 +5771,7 @@ begin
begin
// If there's no selection, we have to set
// the Caret's position manualy.
Include(fOptions, eoScrollPastEol); // old state has been stored above
CaretXY := PhysStartPos;
fRedoList.AddChange(Item.fChangeReason, Item.fChangeStartPos,
Item.fChangeEndPos, '', Item.fChangeSelMode);
@ -7010,8 +7000,13 @@ begin
end else
CX := 1;
FTheLinesView.Insert(CaretY, Temp);
if Command = ecLineBreak then
if Command = ecLineBreak then begin
bChangeScroll := not (eoScrollPastEol in fOptions);
Include(fOptions, eoScrollPastEol);
CaretXY := Point(CX, CaretY + 1);
if bChangeScroll then
Exclude(fOptions, eoScrollPastEol);
end;
end;
DoLinesInserted(CaretY - InsDelta, 1);
EnsureCursorPosVisible; //JGF 2000-09-23
@ -8368,9 +8363,10 @@ begin
s:=LineText;
PhysicalLineLen:=LogicalToPhysicalPos(Point(length(s)+1,CaretY)).X-1;
if NewCaret.X>PhysicalLineLen+1 then begin
// move to start of next line
// move to start of next line (if it was a move to the right)
NewCaret.X:=1;
NewCaret.Y:=FFoldedLinesView.TextPosAddLines(NewCaret.Y, +1);
if DX > 0 then
NewCaret.Y:=FFoldedLinesView.TextPosAddLines(NewCaret.Y, +1);
end;
end;
@ -9970,102 +9966,10 @@ begin
inherited Destroy;
end;
{$IFDEF SYN_LAZARUS}
{ TSynCustomBeautifier }
function TSynCustomBeautifier.LeftSpaces(Editor: TCustomSynEdit;
const Line: string; Physical: boolean): Integer;
var
p: PChar;
begin
p := pointer(Line);
if Assigned(p) then begin
Result := 0;
while p^ in [#1..#32] do begin
Inc(p);
Inc(Result);
end;
if Physical and (Result>0) then
Result:=Editor.LogicalToPhysicalCol(Line,Result+1)-1;
end else
Result := 0;
end;
function TSynCustomBeautifier.CanUnindent(const Editor: TCustomSynEdit;
const Line: string; const PhysCaretX: Integer): Boolean;
begin
Result := (LeftSpaces(Editor, Line, True) = PhysCaretX - 1);
end;
function TSynCustomBeautifier.UnIndentLine(const Editor: TCustomSynEdit;
const Line: string; const PhysCaret: TPoint; out DelChars, InsChars: String;
out CaretNewX: Integer): String;
var
SpaceCount1, SpaceCount2: Integer;
BackCounter, LogSpacePos: Integer;
begin
SpaceCount1 := LeftSpaces(Editor, Line, true);
SpaceCount2 := 0;
if (SpaceCount1 > 0) then begin
BackCounter := PhysCaret.Y - 2;
while BackCounter >= 0 do begin
SpaceCount2 := LeftSpaces(Editor, Editor.RealLines[BackCounter], true);
if SpaceCount2 < SpaceCount1 then
break;
Dec(BackCounter);
end;
end;
if SpaceCount2 = SpaceCount1 then
SpaceCount2 := 0;
// remove visible spaces
LogSpacePos:=Editor.PhysicalToLogicalCol(Line, SpaceCount2 + 1);
CaretNewX := SpaceCount2 + 1;
DelChars := copy(Line, LogSpacePos, PhysCaret.X - LogSpacePos);
InsChars := ''; // TODO: if tabs were removed, maybe fill-up with spaces
Result :=copy(Line, 1, LogSpacePos-1) + copy(Line, PhysCaret.X, MaxInt);
end;
function TSynCustomBeautifier.IndentLine(const Editor: TCustomSynEdit;
Line: string; const PhysCaret: TPoint; out DelChars, InsChars: String;
out CaretNewX: Integer; RemoveCurrentIndent: Boolean = False): String;
var
SpaceCount1, SpaceCount2: Integer;
BackCounter: Integer;
Temp: string;
begin
DelChars := '';
If RemoveCurrentIndent then begin
SpaceCount1 := LeftSpaces(Editor, Line, False);
DelChars := copy(Line, 1, SpaceCount1);
Line := copy(Line, SpaceCount1 + 1, MaxInt);
end;
SpaceCount2 := 0;
BackCounter := PhysCaret.Y - 1;
repeat
Dec(BackCounter);
Temp := Editor.RealLines[BackCounter];
SpaceCount2 := LeftSpaces(Editor, Temp, True);
until (BackCounter = 0) or (Temp <> '');
InsChars := StringOfChar(' ', SpaceCount2);
CaretNewX := Length(InsChars) + 1;
Result := InsChars + Line;
end;
function TSynCustomBeautifier.GetIndentForLine(Editor: TCustomSynEdit;
const Line: string; const PhysCaret: TPoint): integer;
var
s1, s2: string;
begin
IndentLine(Editor, Line, PhysCaret, s1, s2, Result, False);
end;
{$ENDIF}
initialization
{$IFNDEF SYN_LAZARUS}
SynEditClipboardFormat := RegisterClipboardFormat(SYNEDIT_CLIPBOARD_FORMAT);
{$ENDIF}
SynDefaultBeautifier := TSynCustomBeautifier.Create(Application);
SynDefaultBeautifier := TSynBeautifier.Create(Application);
end.

View File

@ -53,7 +53,16 @@ type
// Empty - For type checking on function-arguments
// in places where TCustomSynEdit can not be used due to circular unit refs
TSynEditBase = class(TCustomControl);
TSynEditBase = class(TCustomControl)
protected
function GetTheLinesView: TStrings; virtual; abstract;
procedure SetRealLines(const AValue : TStrings); virtual; abstract;
function GetLines: TStrings; virtual; abstract;
procedure SetLines(Value: TStrings); virtual; abstract;
public
property RealLines: TStrings read GetTheLinesView write SetRealLines; // As viewed internally (with uncommited spaces / TODO: expanded tabs, folds). This may change, use with care
property Lines: TStrings read GetLines write SetLines; // No uncommited (trailing/trimmable) spaces
end;
{ TSynSelectedColor }

View File

@ -44,7 +44,7 @@ uses
SynHighlighterCPP, SynHighlighterHTML, SynHighlighterJava, SynHighlighterLFM,
SynHighlighterPas, SynHighlighterPerl, SynHighlighterPHP, SynHighlighterSQL,
SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterXML,
SynHighlighterJScript, SynEditMiscClasses,
SynHighlighterJScript, SynEditMiscClasses, SynBeautifier,
// codetools
LinkScanner, CodeToolManager, Laz_XMLCfg,
// IDEIntf
@ -434,6 +434,7 @@ type
FCopyWordAtCursorOnCopyNone: Boolean;
FShowGutterHints: Boolean;
fBlockIndent: Integer;
fBlockIndentType: TSynBeautifierIndentType;
fUndoLimit: Integer;
fTabWidth: Integer;
FBracketHighlightStyle: TSynEditBracketHighlightStyle;
@ -488,6 +489,8 @@ type
procedure Load;
procedure Save;
function GetSynEditOptionName(SynOption: TSynEditorOption): string;
function GetSynBeautifierIndentName(IndentType: TSynBeautifierIndentType): string;
function GetSynBeautifierIndentType(IndentName: String): TSynBeautifierIndentType;
procedure GetHighlighterSettings(Syn: TSrcIDEHighlighter); // read highlight settings from config file
procedure SetHighlighterSettings(Syn: TSrcIDEHighlighter); // write highlight settings to config file
@ -539,6 +542,8 @@ type
write FShowGutterHints;
property BlockIndent: Integer
read fBlockIndent write fBlockIndent default 2;
property BlockIndentType: TSynBeautifierIndentType
read fBlockIndentType write fBlockIndentType default sbitCopySpaceTab;
property UndoLimit: Integer read fUndoLimit write fUndoLimit default 32767;
property TabWidth: Integer read fTabWidth write fTabWidth default 8;
property BracketHighlightStyle: TSynEditBracketHighlightStyle read FBracketHighlightStyle write FBracketHighlightStyle default sbhsBoth;
@ -1381,6 +1386,7 @@ begin
FCopyWordAtCursorOnCopyNone := True;
FShowGutterHints := True;
fBlockIndent := 2;
fBlockIndentType := sbitSpace;
fUndoLimit := 32767;
fTabWidth := 8;
FBracketHighlightStyle := sbhsBoth;
@ -1499,6 +1505,9 @@ begin
'EditorOptions/General/Editor/UseSyntaxHighlight', True);
fBlockIndent :=
XMLConfig.GetValue('EditorOptions/General/Editor/BlockIndent', 2);
fBlockIndentType := GetSynBeautifierIndentType
(XMLConfig.GetValue('EditorOptions/General/Editor/BlockIndentType',
'SpaceIndent'));
fUndoLimit :=
XMLConfig.GetValue('EditorOptions/General/Editor/UndoLimit', 32767);
fTabWidth :=
@ -1668,6 +1677,8 @@ begin
, fUseSyntaxHighlight, True);
XMLConfig.SetDeleteValue('EditorOptions/General/Editor/BlockIndent'
, fBlockIndent, 2);
XMLConfig.SetDeleteValue('EditorOptions/General/Editor/BlockIndentType'
, GetSynBeautifierIndentName(fBlockIndentType), 'SpaceIndent');
XMLConfig.SetDeleteValue('EditorOptions/General/Editor/UndoLimit'
, fUndoLimit, 32767);
XMLConfig.SetDeleteValue('EditorOptions/General/Editor/TabWidth'
@ -1817,6 +1828,28 @@ begin
end;
end;
function TEditorOptions.GetSynBeautifierIndentName(IndentType: TSynBeautifierIndentType): string;
begin
case IndentType of
sbitSpace:
Result := 'SpaceIndent';
sbitCopySpaceTab:
Result := 'CopySpaceTabIndent';
sbitPositionCaret:
Result := 'PositionIndent';
end;
end;
function TEditorOptions.GetSynBeautifierIndentType(IndentName: String): TSynBeautifierIndentType;
begin
if IndentName = 'SpaceIndent' then
Result := sbitSpace
else if IndentName = 'CopySpaceTabIndent' then
Result := sbitCopySpaceTab
else if IndentName = 'PositionIndent' then
Result := sbitPositionCaret;
end;
function TEditorOptions.CreateSyn(LazSynHilighter: TLazSyntaxHighlighter):
TSrcIDEHighlighter;
begin
@ -2289,6 +2322,7 @@ begin
ASynEdit.Options := fSynEditOptions;
ASynEdit.Options2 := fSynEditOptions2;
ASynEdit.BlockIndent := fBlockIndent;
(ASynEdit.Beautifier as TSynBeautifier).IndentType := fBlockIndentType;
ASynEdit.TabWidth := fTabWidth;
ASynEdit.BracketHighlightStyle := FBracketHighlightStyle;
@ -2350,6 +2384,7 @@ begin
fSynEditOptions := ASynEdit.Options;
fSynEditOptions2 := ASynEdit.Options2;
fBlockIndent := ASynEdit.BlockIndent;
fBlockIndentType := (ASynEdit.Beautifier as TSynBeautifier).IndentType;
fTabWidth := ASynEdit.TabWidth;
FBracketHighlightStyle := ASynEdit.BracketHighlightStyle;

View File

@ -51,7 +51,9 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
object UndoGroupLabel: TLabel[3]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 0
Height = 16
Top = 0
Width = 91
Caption = 'UndoGroupLabel'
ParentColor = False
@ -73,6 +75,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = GroupUndoCheckBox
AnchorSideTop.Side = asrBottom
Left = 0
Height = 16
Top = 66
Width = 91
@ -97,6 +100,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = ScrollPastEndLineCheckBox
AnchorSideTop.Side = asrBottom
Left = 0
Height = 16
Top = 132
Width = 126
@ -119,10 +123,11 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
end
object MouseGroupLabel: TLabel[9]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = BlockIndentComboBox
AnchorSideTop.Control = BlockIndentTypeComboBox
AnchorSideTop.Side = asrBottom
Left = 0
Height = 16
Top = 222
Top = 246
Width = 98
BorderSpacing.Top = 6
Caption = 'MouseGroupLabel'
@ -136,7 +141,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideRight.Side = asrBottom
Left = 180
Height = 3
Top = 229
Top = 253
Width = 279
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 180
@ -145,8 +150,9 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MouseLinksCheckBox
AnchorSideTop.Side = asrBottom
Left = 0
Height = 16
Top = 288
Top = 312
Width = 97
BorderSpacing.Top = 6
Caption = 'CursorGroupLabel'
@ -160,12 +166,26 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideRight.Side = asrBottom
Left = 180
Height = 3
Top = 295
Top = 319
Width = 279
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 180
end
object BlockIndentComboBox: TComboBox[13]
object BlockIndentTypeLabel: TLabel[13]
AnchorSideLeft.Control = BlockIndentTypeComboBox
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = BlockIndentTypeComboBox
AnchorSideBottom.Side = asrCenter
Left = 112
Height = 16
Top = 221
Width = 118
Anchors = [akLeft, akBottom]
BorderSpacing.Around = 6
Caption = 'BlockIndentTypeLabel'
ParentColor = False
end
object BlockIndentComboBox: TComboBox[14]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = TabIndentBlocksCheckBox
AnchorSideTop.Side = asrBottom
@ -174,8 +194,10 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Height = 21
Top = 195
Width = 100
AutoComplete = False
BorderSpacing.Left = 6
BorderSpacing.Top = 3
Ctl3D = False
ItemHeight = 13
Items.Strings = (
'1'
@ -183,12 +205,13 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
'4'
'8'
)
ItemWidth = 0
OnChange = ComboboxOnChange
OnExit = ComboBoxOnExit
OnKeyDown = ComboboxOnKeyDown
TabOrder = 0
end
object TabWidthsComboBox: TComboBox[14]
object TabWidthsComboBox: TComboBox[15]
AnchorSideLeft.Control = SmartTabsCheckBox
AnchorSideTop.Control = BlockIndentComboBox
AnchorSideBottom.Control = Owner
@ -197,6 +220,8 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Height = 21
Top = 195
Width = 100
AutoComplete = False
Ctl3D = False
ItemHeight = 13
Items.Strings = (
'1'
@ -204,12 +229,13 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
'4'
'8'
)
ItemWidth = 0
OnChange = ComboboxOnChange
OnExit = ComboBoxOnExit
OnKeyDown = ComboboxOnKeyDown
TabOrder = 1
end
object UndoLimitComboBox: TComboBox[15]
object UndoLimitComboBox: TComboBox[16]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = UndoGroupLabel
AnchorSideTop.Side = asrBottom
@ -217,20 +243,23 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Height = 21
Top = 22
Width = 100
AutoComplete = False
BorderSpacing.Left = 230
BorderSpacing.Around = 6
Ctl3D = False
ItemHeight = 13
Items.Strings = (
'32767'
'4096'
'512'
)
ItemWidth = 0
OnChange = ComboboxOnChange
OnExit = ComboBoxOnExit
OnKeyDown = ComboboxOnKeyDown
TabOrder = 2
end
object GroupUndoCheckBox: TCheckBox[16]
object GroupUndoCheckBox: TCheckBox[17]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = UndoAfterSaveCheckBox
AnchorSideTop.Side = asrBottom
@ -243,7 +272,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = GroupUndoCheckBoxChange
TabOrder = 3
end
object UndoAfterSaveCheckBox: TCheckBox[17]
object UndoAfterSaveCheckBox: TCheckBox[18]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = UndoGroupLabel
AnchorSideTop.Side = asrBottom
@ -256,7 +285,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Caption = 'UndoAfterSaveCheckBox'
TabOrder = 4
end
object ScrollPastEndFileCheckBox: TCheckBox[18]
object ScrollPastEndFileCheckBox: TCheckBox[19]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = ScrollGroupLabel
AnchorSideTop.Side = asrBottom
@ -270,7 +299,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = ScrollPastEndFileCheckBoxChange
TabOrder = 5
end
object ScrollPastEndLineCheckBox: TCheckBox[19]
object ScrollPastEndLineCheckBox: TCheckBox[20]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = ScrollPastEndFileCheckBox
AnchorSideTop.Side = asrBottom
@ -283,7 +312,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = ScrollPastEndLineCheckBoxChange
TabOrder = 6
end
object ScrollByOneLessCheckBox: TCheckBox[20]
object ScrollByOneLessCheckBox: TCheckBox[21]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = ScrollGroupLabel
AnchorSideTop.Side = asrBottom
@ -297,7 +326,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = ScrollByOneLessCheckBoxChange
TabOrder = 7
end
object HalfPageScrollCheckBox: TCheckBox[21]
object HalfPageScrollCheckBox: TCheckBox[22]
AnchorSideLeft.Control = ScrollByOneLessCheckBox
AnchorSideTop.Control = ScrollPastEndLineCheckBox
Left = 236
@ -308,7 +337,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = HalfPageScrollCheckBoxChange
TabOrder = 8
end
object AutoIndentCheckBox: TCheckBox[22]
object AutoIndentCheckBox: TCheckBox[23]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = IndentsTabsGroupLabel
AnchorSideTop.Side = asrBottom
@ -322,7 +351,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = AutoIndentCheckBoxChange
TabOrder = 9
end
object TabIndentBlocksCheckBox: TCheckBox[23]
object TabIndentBlocksCheckBox: TCheckBox[24]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoIndentCheckBox
AnchorSideTop.Side = asrBottom
@ -335,7 +364,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = TabIndentBlocksCheckBoxChange
TabOrder = 10
end
object SmartTabsCheckBox: TCheckBox[24]
object SmartTabsCheckBox: TCheckBox[25]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = IndentsTabsGroupLabel
AnchorSideTop.Side = asrBottom
@ -349,7 +378,7 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = SmartTabsCheckBoxChange
TabOrder = 11
end
object TabsToSpacesCheckBox: TCheckBox[25]
object TabsToSpacesCheckBox: TCheckBox[26]
AnchorSideLeft.Control = SmartTabsCheckBox
AnchorSideTop.Control = TabIndentBlocksCheckBox
Left = 236
@ -360,13 +389,13 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = TabsToSpacesCheckBoxChange
TabOrder = 12
end
object DoubleClickLineCheckBox: TCheckBox[26]
object DoubleClickLineCheckBox: TCheckBox[27]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MouseGroupLabel
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 244
Top = 268
Width = 146
BorderSpacing.Left = 6
BorderSpacing.Top = 6
@ -374,26 +403,26 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = DoubleClickLineCheckBoxChange
TabOrder = 13
end
object MouseLinksCheckBox: TCheckBox[27]
object MouseLinksCheckBox: TCheckBox[28]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = DoubleClickLineCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 263
Top = 287
Width = 126
BorderSpacing.Left = 6
Caption = 'MouseLinksCheckBox'
OnChange = MouseLinksCheckBoxChange
TabOrder = 14
end
object DragDropEdCheckBox: TCheckBox[28]
object DragDropEdCheckBox: TCheckBox[29]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MouseGroupLabel
AnchorSideTop.Side = asrBottom
Left = 236
Height = 19
Top = 244
Top = 268
Width = 128
BorderSpacing.Left = 230
BorderSpacing.Around = 6
@ -401,24 +430,24 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = DragDropEdCheckBoxChange
TabOrder = 15
end
object DropFilesCheckBox: TCheckBox[29]
object DropFilesCheckBox: TCheckBox[30]
AnchorSideLeft.Control = DragDropEdCheckBox
AnchorSideTop.Control = MouseLinksCheckBox
Left = 236
Height = 19
Top = 263
Top = 287
Width = 113
Caption = 'DropFilesCheckBox'
OnChange = DropFilesCheckBoxChange
TabOrder = 16
end
object KeepCursorXCheckBox: TCheckBox[30]
object KeepCursorXCheckBox: TCheckBox[31]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = CursorGroupLabel
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 310
Top = 334
Width = 131
BorderSpacing.Left = 6
BorderSpacing.Top = 6
@ -426,39 +455,39 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = KeepCursorXCheckBoxChange
TabOrder = 17
end
object PersistentCursorCheckBox: TCheckBox[31]
object PersistentCursorCheckBox: TCheckBox[32]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = KeepCursorXCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 329
Top = 353
Width = 145
BorderSpacing.Left = 6
Caption = 'PersistentCursorCheckBox'
OnChange = PersistentCursorCheckBoxChange
TabOrder = 18
end
object AlwaysVisibleCursorCheckBox: TCheckBox[32]
object AlwaysVisibleCursorCheckBox: TCheckBox[33]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = PersistentCursorCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 348
Top = 372
Width = 162
BorderSpacing.Left = 6
Caption = 'AlwaysVisibleCursorCheckBox'
OnChange = AlwaysVisibleCursorCheckBoxChange
TabOrder = 19
end
object CursorSkipsSelectionCheckBox: TCheckBox[33]
object CursorSkipsSelectionCheckBox: TCheckBox[34]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = CursorGroupLabel
AnchorSideTop.Side = asrBottom
Left = 236
Height = 19
Top = 310
Top = 334
Width = 169
BorderSpacing.Left = 230
BorderSpacing.Around = 6
@ -466,39 +495,59 @@ inherited EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
OnChange = CursorSkipsSelectionCheckBoxChange
TabOrder = 20
end
object RightMouseMovesCursorCheckBox: TCheckBox[34]
object RightMouseMovesCursorCheckBox: TCheckBox[35]
AnchorSideLeft.Control = CursorSkipsSelectionCheckBox
AnchorSideTop.Control = PersistentCursorCheckBox
Left = 236
Height = 19
Top = 329
Top = 353
Width = 188
Caption = 'RightMouseMovesCursorCheckBox'
OnChange = RightMouseMovesCursorCheckBoxChange
TabOrder = 21
end
object HomeKeyJumpsToNearestStartCheckBox: TCheckBox[35]
object HomeKeyJumpsToNearestStartCheckBox: TCheckBox[36]
AnchorSideLeft.Control = CursorSkipsSelectionCheckBox
AnchorSideTop.Control = AlwaysVisibleCursorCheckBox
Left = 236
Height = 19
Top = 348
Top = 372
Width = 217
Caption = 'HomeKeyJumpsToNearestStartCheckBox'
OnChange = HomeKeyJumpsToNearestStartCheckBoxChange
TabOrder = 22
end
object EndKeyJumpsToNearestStartCheckBox: TCheckBox[36]
object EndKeyJumpsToNearestStartCheckBox: TCheckBox[37]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AlwaysVisibleCursorCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 367
Top = 391
Width = 208
BorderSpacing.Left = 6
Caption = 'EndKeyJumpsToNearestStartCheckBox'
OnChange = EndKeyJumpsToNearestStartCheckBoxChange
TabOrder = 23
end
object BlockIndentTypeComboBox: TComboBox[38]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = BlockIndentComboBox
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = TabWidthsComboBox
Left = 6
Height = 21
Top = 219
Width = 100
AutoComplete = False
BorderSpacing.Left = 6
BorderSpacing.Top = 3
Ctl3D = False
ItemHeight = 13
ItemWidth = 200
OnChange = ComboboxOnChange
OnExit = ComboBoxOnExit
OnKeyDown = ComboboxOnKeyDown
TabOrder = 24
end
end

View File

@ -20,170 +20,185 @@ LazarusResources.Add('TEditorGeneralOptionsFrame','FORMDATA',[
+'wner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#180#0#6'Height'#2#3
+#3'Top'#2#7#5'Width'#3#23#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18
+'BorderSpacing.Left'#3#180#0#0#0#242#2#3#6'TLabel'#14'UndoGroupLabel'#22'Anc'
+'horSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#6'Heig'
+'ht'#2#16#5'Width'#2'['#7'Caption'#6#14'UndoGroupLabel'#11'ParentColor'#8#0#0
+#242#2#4#6'TLabel'#14'UndoLimitLabel'#22'AnchorSideLeft.Control'#7#17'UndoLi'
+'mitComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro'
+'l'#7#17'UndoLimitComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3
+'V'#1#6'Height'#2#16#3'Top'#2#24#5'Width'#2'U'#20'BorderSpacing.Around'#2#6#7
+'Caption'#6#14'UndoLimitLabel'#11'ParentColor'#8#0#0#242#2#5#6'TLabel'#16'Sc'
+'rollGroupLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Cont'
+'rol'#7#17'GroupUndoCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#6'Height'
+#2#16#3'Top'#2'B'#5'Width'#2'['#17'BorderSpacing.Top'#2#6#7'Caption'#6#16'Sc'
+'rollGroupLabel'#11'ParentColor'#8#0#0#242#2#6#6'TBevel'#6'Bevel2'#22'Anchor'
+'SideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#16'ScrollGroupLabe'
+'l'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#5'Ow'
+'ner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#180#0#6'Height'#2#3#3
+'Top'#2'I'#5'Width'#3#23#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18
+'BorderSpacing.Left'#3#180#0#0#0#242#2#7#6'TLabel'#21'IndentsTabsGroupLabel'
+#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#25'Scroll'
+'PastEndLineCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#6'Height'#2#16#3
+'Top'#3#132#0#5'Width'#2'~'#17'BorderSpacing.Top'#2#6#7'Caption'#6#21'Indent'
+'sTabsGroupLabel'#11'ParentColor'#8#0#0#242#2#8#6'TBevel'#6'Bevel3'#22'Ancho'
+'rSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#21'IndentsTabsGro'
+'upLabel'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7
+#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#180#0#6'Height'#2
+#3#3'Top'#3#139#0#5'Width'#3#23#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
+#0#18'BorderSpacing.Left'#3#180#0#0#0#242#2#9#6'TLabel'#15'MouseGroupLabel'
+#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#19'BlockI'
+'ndentComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#6'Height'#2#16#3'Top'#3
+#222#0#5'Width'#2'b'#17'BorderSpacing.Top'#2#6#7'Caption'#6#15'MouseGroupLab'
+'el'#11'ParentColor'#8#0#0#242#2#10#6'TBevel'#6'Bevel4'#22'AnchorSideLeft.Co'
+'ntrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#15'MouseGroupLabel'#18'Anchor'
+'SideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#5'Owner'#20'Anch'
+'orSideRight.Side'#7#9'asrBottom'#4'Left'#3#180#0#6'Height'#2#3#3'Top'#3#229
+#0#5'Width'#3#23#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSp'
+'acing.Left'#3#180#0#0#0#242#2#11#6'TLabel'#16'CursorGroupLabel'#22'AnchorSi'
+'deLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#18'MouseLinksCheckBo'
+'x'#18'AnchorSideTop.Side'#7#9'asrBottom'#6'Height'#2#16#3'Top'#3' '#1#5'Wid'
+'th'#2'a'#17'BorderSpacing.Top'#2#6#7'Caption'#6#16'CursorGroupLabel'#11'Par'
+'entColor'#8#0#0#242#2#12#6'TBevel'#6'Bevel5'#22'AnchorSideLeft.Control'#7#5
+'Owner'#21'AnchorSideTop.Control'#7#16'CursorGroupLabel'#18'AnchorSideTop.Si'
+'de'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRigh'
+'t.Side'#7#9'asrBottom'#4'Left'#3#180#0#6'Height'#2#3#3'Top'#3''''#1#5'Width'
+#3#23#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'
+#3#180#0#0#0#242#2#13#9'TComboBox'#19'BlockIndentComboBox'#22'AnchorSideLeft'
+'.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#23'TabIndentBlocksCheckBox'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#17'Tab'
,'WidthsComboBox'#4'Left'#2#6#6'Height'#2#21#3'Top'#3#195#0#5'Width'#2'd'#18
+'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#3#10'ItemHeight'#2#13#13'It'
+'ems.Strings'#1#6#1'1'#6#1'2'#6#1'4'#6#1'8'#0#8'OnChange'#7#16'ComboboxOnCha'
+'horSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'
+#2#0#6'Height'#2#16#3'Top'#2#0#5'Width'#2'['#7'Caption'#6#14'UndoGroupLabel'
+#11'ParentColor'#8#0#0#242#2#4#6'TLabel'#14'UndoLimitLabel'#22'AnchorSideLef'
+'t.Control'#7#17'UndoLimitComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21
+'AnchorSideTop.Control'#7#17'UndoLimitComboBox'#18'AnchorSideTop.Side'#7#9'a'
+'srCenter'#4'Left'#3'V'#1#6'Height'#2#16#3'Top'#2#24#5'Width'#2'U'#20'Border'
+'Spacing.Around'#2#6#7'Caption'#6#14'UndoLimitLabel'#11'ParentColor'#8#0#0
+#242#2#5#6'TLabel'#16'ScrollGroupLabel'#22'AnchorSideLeft.Control'#7#5'Owner'
+#21'AnchorSideTop.Control'#7#17'GroupUndoCheckBox'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#4'Left'#2#0#6'Height'#2#16#3'Top'#2'B'#5'Width'#2'['#17'BorderSp'
+'acing.Top'#2#6#7'Caption'#6#16'ScrollGroupLabel'#11'ParentColor'#8#0#0#242#2
+#6#6'TBevel'#6'Bevel2'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo'
+'p.Control'#7#16'ScrollGroupLabel'#18'AnchorSideTop.Side'#7#9'asrCenter'#23
+'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'
+#4'Left'#3#180#0#6'Height'#2#3#3'Top'#2'I'#5'Width'#3#23#1#7'Anchors'#11#5'a'
+'kTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#3#180#0#0#0#242#2#7#6'T'
+'Label'#21'IndentsTabsGroupLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#21'A'
+'nchorSideTop.Control'#7#25'ScrollPastEndLineCheckBox'#18'AnchorSideTop.Side'
+#7#9'asrBottom'#4'Left'#2#0#6'Height'#2#16#3'Top'#3#132#0#5'Width'#2'~'#17'B'
+'orderSpacing.Top'#2#6#7'Caption'#6#21'IndentsTabsGroupLabel'#11'ParentColor'
+#8#0#0#242#2#8#6'TBevel'#6'Bevel3'#22'AnchorSideLeft.Control'#7#5'Owner'#21
+'AnchorSideTop.Control'#7#21'IndentsTabsGroupLabel'#18'AnchorSideTop.Side'#7
+#9'asrCenter'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'
+#7#9'asrBottom'#4'Left'#3#180#0#6'Height'#2#3#3'Top'#3#139#0#5'Width'#3#23#1
+#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#3#180#0
+#0#0#242#2#9#6'TLabel'#15'MouseGroupLabel'#22'AnchorSideLeft.Control'#7#5'Ow'
+'ner'#21'AnchorSideTop.Control'#7#23'BlockIndentTypeComboBox'#18'AnchorSideT'
+'op.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2#16#3'Top'#3#246#0#5'Width'#2
+'b'#17'BorderSpacing.Top'#2#6#7'Caption'#6#15'MouseGroupLabel'#11'ParentColo'
+'r'#8#0#0#242#2#10#6'TBevel'#6'Bevel4'#22'AnchorSideLeft.Control'#7#5'Owner'
+#21'AnchorSideTop.Control'#7#15'MouseGroupLabel'#18'AnchorSideTop.Side'#7#9
+'asrCenter'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7
+#9'asrBottom'#4'Left'#3#180#0#6'Height'#2#3#3'Top'#3#253#0#5'Width'#3#23#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#3#180#0#0
+#0#242#2#11#6'TLabel'#16'CursorGroupLabel'#22'AnchorSideLeft.Control'#7#5'Ow'
+'ner'#21'AnchorSideTop.Control'#7#18'MouseLinksCheckBox'#18'AnchorSideTop.Si'
+'de'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2#16#3'Top'#3'8'#1#5'Width'#2'a'#17
+'BorderSpacing.Top'#2#6#7'Caption'#6#16'CursorGroupLabel'#11'ParentColor'#8#0
+#0#242#2#12#6'TBevel'#6'Bevel5'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc'
+'horSideTop.Control'#7#16'CursorGroupLabel'#18'AnchorSideTop.Side'#7#9'asrCe'
+'nter'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'a'
+'srBottom'#4'Left'#3#180#0#6'Height'#2#3#3'Top'#3'?'#1#5'Width'#3#23#1#7'Anc'
+'hors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#3#180#0#0#0
+#242#2#13#6'TLabel'#20'BlockIndentTypeLabel'#22'AnchorSideLeft.Control'#7#23
+'BlockIndentTypeComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#24'AnchorSi'
,'deBottom.Control'#7#23'BlockIndentTypeComboBox'#21'AnchorSideBottom.Side'#7
+#9'asrCenter'#4'Left'#2'p'#6'Height'#2#16#3'Top'#3#221#0#5'Width'#2'v'#7'Anc'
+'hors'#11#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6
+#20'BlockIndentTypeLabel'#11'ParentColor'#8#0#0#242#2#14#9'TComboBox'#19'Blo'
+'ckIndentComboBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Co'
+'ntrol'#7#23'TabIndentBlocksCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'
+#24'AnchorSideBottom.Control'#7#17'TabWidthsComboBox'#4'Left'#2#6#6'Height'#2
+#21#3'Top'#3#195#0#5'Width'#2'd'#12'AutoComplete'#8#18'BorderSpacing.Left'#2
+#6#17'BorderSpacing.Top'#2#3#5'Ctl3D'#8#10'ItemHeight'#2#13#13'Items.Strings'
+#1#6#1'1'#6#1'2'#6#1'4'#6#1'8'#0#9'ItemWidth'#2#0#8'OnChange'#7#16'ComboboxO'
+'nChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboboxOnKeyDown'
+#8'TabOrder'#2#0#0#0#242#2#15#9'TComboBox'#17'TabWidthsComboBox'#22'AnchorSi'
+'deLeft.Control'#7#17'SmartTabsCheckBox'#21'AnchorSideTop.Control'#7#19'Bloc'
+'kIndentComboBox'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBotto'
+'m.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#21#3'Top'#3#195#0#5'Widt'
+'h'#2'd'#12'AutoComplete'#8#5'Ctl3D'#8#10'ItemHeight'#2#13#13'Items.Strings'
+#1#6#1'1'#6#1'2'#6#1'4'#6#1'8'#0#9'ItemWidth'#2#0#8'OnChange'#7#16'ComboboxO'
+'nChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboboxOnKeyDown'
+#8'TabOrder'#2#1#0#0#242#2#16#9'TComboBox'#17'UndoLimitComboBox'#22'AnchorSi'
+'deLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#14'UndoGroupLabel'#18
+'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#21#3'Top'#2
+#22#5'Width'#2'd'#12'AutoComplete'#8#18'BorderSpacing.Left'#3#230#0#20'Borde'
+'rSpacing.Around'#2#6#5'Ctl3D'#8#10'ItemHeight'#2#13#13'Items.Strings'#1#6#5
+'32767'#6#4'4096'#6#3'512'#0#9'ItemWidth'#2#0#8'OnChange'#7#16'ComboboxOnCha'
+'nge'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboboxOnKeyDown'#8
+'TabOrder'#2#0#0#0#242#2#14#9'TComboBox'#17'TabWidthsComboBox'#22'AnchorSide'
+'Left.Control'#7#17'SmartTabsCheckBox'#21'AnchorSideTop.Control'#7#19'BlockI'
+'ndentComboBox'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.'
+'Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#21#3'Top'#3#195#0#5'Width'
+#2'd'#10'ItemHeight'#2#13#13'Items.Strings'#1#6#1'1'#6#1'2'#6#1'4'#6#1'8'#0#8
+'OnChange'#7#16'ComboboxOnChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'
+#7#17'ComboboxOnKeyDown'#8'TabOrder'#2#1#0#0#242#2#15#9'TComboBox'#17'UndoLi'
+'mitComboBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'
+#7#14'UndoGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#236#0#6
+'Height'#2#21#3'Top'#2#22#5'Width'#2'd'#18'BorderSpacing.Left'#3#230#0#20'Bo'
+'rderSpacing.Around'#2#6#10'ItemHeight'#2#13#13'Items.Strings'#1#6#5'32767'#6
+#4'4096'#6#3'512'#0#8'OnChange'#7#16'ComboboxOnChange'#6'OnExit'#7#14'ComboB'
+'oxOnExit'#9'OnKeyDown'#7#17'ComboboxOnKeyDown'#8'TabOrder'#2#2#0#0#242#2#16
+#9'TCheckBox'#17'GroupUndoCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21
+'AnchorSideTop.Control'#7#21'UndoAfterSaveCheckBox'#18'AnchorSideTop.Side'#7
+#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#2')'#5'Width'#2'|'#18'Border'
+'Spacing.Left'#2#6#7'Caption'#6#17'GroupUndoCheckBox'#8'OnChange'#7#23'Group'
+'UndoCheckBoxChange'#8'TabOrder'#2#3#0#0#242#2#17#9'TCheckBox'#21'UndoAfterS'
+'aveCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'
+#7#14'UndoGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'He'
+'ight'#2#19#3'Top'#2#22#5'Width'#3#142#0#18'BorderSpacing.Left'#2#6#17'Borde'
+'rSpacing.Top'#2#6#7'Caption'#6#21'UndoAfterSaveCheckBox'#8'TabOrder'#2#4#0#0
+#242#2#18#9'TCheckBox'#25'ScrollPastEndFileCheckBox'#22'AnchorSideLeft.Contr'
+'ol'#7#5'Owner'#21'AnchorSideTop.Control'#7#16'ScrollGroupLabel'#18'AnchorSi'
+'deTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'X'#5'Width'#3
+#151#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#7'Caption'#6#25
+'ScrollPastEndFileCheckBox'#8'OnChange'#7#31'ScrollPastEndFileCheckBoxChange'
+#8'TabOrder'#2#5#0#0#242#2#19#9'TCheckBox'#25'ScrollPastEndLineCheckBox'#22
+'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#25'ScrollPas'
+'tEndFileCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Heigh'
+'t'#2#19#3'Top'#2'k'#5'Width'#3#155#0#18'BorderSpacing.Left'#2#6#7'Caption'#6
+#25'ScrollPastEndLineCheckBox'#8'OnChange'#7#31'ScrollPastEndLineCheckBoxCha'
+'nge'#8'TabOrder'#2#6#0#0#242#2#20#9'TCheckBox'#23'ScrollByOneLessCheckBox'
+#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#16'Scroll'
+'GroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'
+#2#19#3'Top'#2'X'#5'Width'#3#149#0#18'BorderSpacing.Left'#3#230#0#20'BorderS'
+'pacing.Around'#2#6#7'Caption'#6#23'ScrollByOneLessCheckBox'#8'OnChange'#7#29
+'ScrollByOneLessCheckBoxChange'#8'TabOrder'#2#7#0#0#242#2#21#9'TCheckBox'#22
+'HalfPageScrollCheckBox'#22'AnchorSideLeft.Control'#7#23'ScrollByOneLessChec'
+'kBox'#21'AnchorSideTop.Control'#7#25'ScrollPastEndLineCheckBox'#4'Left'#3
+#236#0#6'Height'#2#19#3'Top'#2'k'#5'Width'#3#139#0#7'Caption'#6#22'HalfPageS'
+'crollCheckBox'#8'OnChange'#7#28'HalfPageScrollCheckBoxChange'#8'TabOrder'#2
+#8#0#0#242#2#22#9'TCheckBox'#18'AutoIndentCheckBox'#22'AnchorSideLeft.Contro'
+'l'#7#5'Owner'#21'AnchorSideTop.Control'#7#21'IndentsTabsGroupLabel'#18'Anch'
+'orSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3#154#0#5
+'Width'#2'y'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#7'Caption'
+#6#18'AutoIndentCheckBox'#8'OnChange'#7#24'AutoIndentCheckBoxChange'#8'TabOr'
+'der'#2#9#0#0#242#2#23#9'TCheckBox'#23'TabIndentBlocksCheckBox'#22'AnchorSid'
+'eLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#18'AutoIndentCheckBox'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3
+#173#0#5'Width'#3#150#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#23'TabIndent'
+'BlocksCheckBox'#8'OnChange'#7#29'TabIndentBlocksCheckBoxChange'#8'TabOrder'
+#2#10#0#0#242#2#24#9'TCheckBox'#17'SmartTabsCheckBox'#22'AnchorSideLeft.Cont'
+'rol'#7#5'Owner'#21'AnchorSideTop.Control'#7#21'IndentsTabsGroupLabel'#18'An'
+'chorSideTop.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#19#3'Top'#3#154
+#0#5'Width'#2'x'#18'BorderSpacing.Left'#3#230#0#20'BorderSpacing.Around'#2#6
+#7'Caption'#6#17'SmartTabsCheckBox'#8'OnChange'#7#23'SmartTabsCheckBoxChange'
+#8'TabOrder'#2#11#0#0#242#2#25#9'TCheckBox'#20'TabsToSpacesCheckBox'#22'Anch'
+'orSideLeft.Control'#7#17'SmartTabsCheckBox'#21'AnchorSideTop.Control'#7#23
+'TabIndentBlocksCheckBox'#4'Left'#3#236#0#6'Height'#2#19#3'Top'#3#173#0#5'Wi'
,'dth'#3#142#0#7'Caption'#6#20'TabsToSpacesCheckBox'#8'OnChange'#7#26'TabsToS'
+'pacesCheckBoxChange'#8'TabOrder'#2#12#0#0#242#2#26#9'TCheckBox'#23'DoubleCl'
+'ickLineCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Con'
+'trol'#7#15'MouseGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2
+#6#6'Height'#2#19#3'Top'#3#244#0#5'Width'#3#146#0#18'BorderSpacing.Left'#2#6
+#17'BorderSpacing.Top'#2#6#7'Caption'#6#23'DoubleClickLineCheckBox'#8'OnChan'
+'ge'#7#29'DoubleClickLineCheckBoxChange'#8'TabOrder'#2#13#0#0#242#2#27#9'TCh'
+'eckBox'#18'MouseLinksCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc'
+'horSideTop.Control'#7#23'DoubleClickLineCheckBox'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3#7#1#5'Width'#2'~'#18'BorderS'
+'pacing.Left'#2#6#7'Caption'#6#18'MouseLinksCheckBox'#8'OnChange'#7#24'Mouse'
+'LinksCheckBoxChange'#8'TabOrder'#2#14#0#0#242#2#28#9'TCheckBox'#18'DragDrop'
+'EdCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'
+#7#15'MouseGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#236#0
+#6'Height'#2#19#3'Top'#3#244#0#5'Width'#3#128#0#18'BorderSpacing.Left'#3#230
+#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'DragDropEdCheckBox'#8'OnChan'
+'ge'#7#24'DragDropEdCheckBoxChange'#8'TabOrder'#2#15#0#0#242#2#29#9'TCheckBo'
+'x'#17'DropFilesCheckBox'#22'AnchorSideLeft.Control'#7#18'DragDropEdCheckBox'
+#21'AnchorSideTop.Control'#7#18'MouseLinksCheckBox'#4'Left'#3#236#0#6'Height'
+#2#19#3'Top'#3#7#1#5'Width'#2'q'#7'Caption'#6#17'DropFilesCheckBox'#8'OnChan'
+'ge'#7#23'DropFilesCheckBoxChange'#8'TabOrder'#2#16#0#0#242#2#30#9'TCheckBox'
+#19'KeepCursorXCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSide'
+'Top.Control'#7#16'CursorGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4
+'Left'#2#6#6'Height'#2#19#3'Top'#3'6'#1#5'Width'#3#131#0#18'BorderSpacing.Le'
+'ft'#2#6#17'BorderSpacing.Top'#2#6#7'Caption'#6#19'KeepCursorXCheckBox'#8'On'
+'Change'#7#25'KeepCursorXCheckBoxChange'#8'TabOrder'#2#17#0#0#242#2#31#9'TCh'
+'eckBox'#24'PersistentCursorCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'
+#21'AnchorSideTop.Control'#7#19'KeepCursorXCheckBox'#18'AnchorSideTop.Side'#7
+#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3'I'#1#5'Width'#3#145#0#18'B'
+'orderSpacing.Left'#2#6#7'Caption'#6#24'PersistentCursorCheckBox'#8'OnChange'
+#7#30'PersistentCursorCheckBoxChange'#8'TabOrder'#2#18#0#0#242#2' '#9'TCheck'
+'Box'#27'AlwaysVisibleCursorCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'
+#21'AnchorSideTop.Control'#7#24'PersistentCursorCheckBox'#18'AnchorSideTop.S'
+'ide'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3'\'#1#5'Width'#3#162
+#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#27'AlwaysVisibleCursorCheckBox'#8
+'OnChange'#7'!AlwaysVisibleCursorCheckBoxChange'#8'TabOrder'#2#19#0#0#242#2
+'!'#9'TCheckBox'#28'CursorSkipsSelectionCheckBox'#22'AnchorSideLeft.Control'
+#7#5'Owner'#21'AnchorSideTop.Control'#7#16'CursorGroupLabel'#18'AnchorSideTo'
+'p.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#19#3'Top'#3'6'#1#5'Width'
+#3#169#0#18'BorderSpacing.Left'#3#230#0#20'BorderSpacing.Around'#2#6#7'Capti'
+'on'#6#28'CursorSkipsSelectionCheckBox'#8'OnChange'#7'"CursorSkipsSelectionC'
+'heckBoxChange'#8'TabOrder'#2#20#0#0#242#2'"'#9'TCheckBox'#29'RightMouseMove'
+'sCursorCheckBox'#22'AnchorSideLeft.Control'#7#28'CursorSkipsSelectionCheckB'
+'ox'#21'AnchorSideTop.Control'#7#24'PersistentCursorCheckBox'#4'Left'#3#236#0
+#6'Height'#2#19#3'Top'#3'I'#1#5'Width'#3#188#0#7'Caption'#6#29'RightMouseMov'
+'esCursorCheckBox'#8'OnChange'#7'#RightMouseMovesCursorCheckBoxChange'#8'Tab'
+'Order'#2#21#0#0#242#2'#'#9'TCheckBox"HomeKeyJumpsToNearestStartCheckBox'#22
+'AnchorSideLeft.Control'#7#28'CursorSkipsSelectionCheckBox'#21'AnchorSideTop'
+'.Control'#7#27'AlwaysVisibleCursorCheckBox'#4'Left'#3#236#0#6'Height'#2#19#3
+'Top'#3'\'#1#5'Width'#3#217#0#7'Caption'#6'"HomeKeyJumpsToNearestStartCheckB'
+'ox'#8'OnChange'#7'(HomeKeyJumpsToNearestStartCheckBoxChange'#8'TabOrder'#2
+#22#0#0#242#2'$'#9'TCheckBox!EndKeyJumpsToNearestStartCheckBox'#22'AnchorSid'
+'eLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#27'AlwaysVisibleCurso'
+'rCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19
+#3'Top'#3'o'#1#5'Width'#3#208#0#18'BorderSpacing.Left'#2#6#7'Caption'#6'!End'
+'KeyJumpsToNearestStartCheckBox'#8'OnChange'#7'''EndKeyJumpsToNearestStartCh'
+'eckBoxChange'#8'TabOrder'#2#23#0#0#0
+'TabOrder'#2#2#0#0#242#2#17#9'TCheckBox'#17'GroupUndoCheckBox'#22'AnchorSide'
+'Left.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#21'UndoAfterSaveCheckB'
+'ox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'
+#2')'#5'Width'#2'|'#18'BorderSpacing.Left'#2#6#7'Caption'#6#17'GroupUndoChec'
+'kBox'#8'OnChange'#7#23'GroupUndoCheckBoxChange'#8'TabOrder'#2#3#0#0#242#2#18
+#9'TCheckBox'#21'UndoAfterSaveCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'
+#21'AnchorSideTop.Control'#7#14'UndoGroupLabel'#18'AnchorSideTop.Side'#7#9'a'
+'srBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#2#22#5'Width'#3#142#0#18'Border'
+'Spacing.Left'#2#6#17'BorderSpacing.Top'#2#6#7'Caption'#6#21'UndoAfterSaveCh'
+'eckBox'#8'TabOrder'#2#4#0#0#242#2#19#9'TCheckBox'#25'ScrollPastEndFileCheck'
+'Box'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#16'S'
+'crollGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'
+#2#19#3'Top'#2'X'#5'Width'#3#151#0#18'BorderSpacing.Left'#2#6#17'BorderSpaci'
+'ng.Top'#2#6#7'Caption'#6#25'ScrollPastEndFileCheckBox'#8'OnChange'#7#31'Scr'
+'ollPastEndFileCheckBoxChange'#8'TabOrder'#2#5#0#0#242#2#20#9'TCheckBox'#25
+'ScrollPastEndLineCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorS'
+'ideTop.Control'#7#25'ScrollPastEndFileCheckBox'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'k'#5'Width'#3#155#0#18'Borde'
+'rSpacing.Left'#2#6#7'Caption'#6#25'ScrollPastEndLineCheckBox'#8'OnChange'#7
+#31'ScrollPastEndLineCheckBoxChange'#8'TabOrder'#2#6#0#0#242#2#21#9'TCheckBo'
+'x'#23'ScrollByOneLessCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc'
+'horSideTop.Control'#7#16'ScrollGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBo'
+'ttom'#4'Left'#3#236#0#6'Height'#2#19#3'Top'#2'X'#5'Width'#3#149#0#18'Border'
+'Spacing.Left'#3#230#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#23'ScrollBy'
+'OneLessCheckBox'#8'OnChange'#7#29'ScrollByOneLessCheckBoxChange'#8'TabOrder'
+#2#7#0#0#242#2#22#9'TCheckBox'#22'HalfPageScrollCheckBox'#22'AnchorSideLeft.'
+'Control'#7#23'ScrollByOneLessCheckBox'#21'AnchorSideTop.Control'#7#25'Scrol'
+'lPastEndLineCheckBox'#4'Left'#3#236#0#6'Height'#2#19#3'Top'#2'k'#5'Width'#3
+#139#0#7'Caption'#6#22'HalfPageScrollCheckBox'#8'OnChange'#7#28'HalfPageScro'
+'llCheckBoxChange'#8'TabOrder'#2#8#0#0#242#2#23#9'TCheckBox'#18'AutoIndentCh'
+'eckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#21
+'IndentsTabsGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6
+'Height'#2#19#3'Top'#3#154#0#5'Width'#2'y'#18'BorderSpacing.Left'#2#6#17'Bor'
+'derSpacing.Top'#2#6#7'Caption'#6#18'AutoIndentCheckBox'#8'OnChange'#7#24'Au'
+'toIndentCheckBoxChange'#8'TabOrder'#2#9#0#0#242#2#24#9'TCheckBox'#23'TabInd'
+'entBlocksCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.C'
+'ontrol'#7#18'AutoIndentCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Le'
+'ft'#2#6#6'Height'#2#19#3'Top'#3#173#0#5'Width'#3#150#0#18'BorderSpacing.Lef'
+'t'#2#6#7'Caption'#6#23'TabIndentBlocksCheckBox'#8'OnChange'#7#29'TabIndentB'
,'locksCheckBoxChange'#8'TabOrder'#2#10#0#0#242#2#25#9'TCheckBox'#17'SmartTab'
+'sCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7
+#21'IndentsTabsGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3
+#236#0#6'Height'#2#19#3'Top'#3#154#0#5'Width'#2'x'#18'BorderSpacing.Left'#3
+#230#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#17'SmartTabsCheckBox'#8'OnC'
+'hange'#7#23'SmartTabsCheckBoxChange'#8'TabOrder'#2#11#0#0#242#2#26#9'TCheck'
+'Box'#20'TabsToSpacesCheckBox'#22'AnchorSideLeft.Control'#7#17'SmartTabsChec'
+'kBox'#21'AnchorSideTop.Control'#7#23'TabIndentBlocksCheckBox'#4'Left'#3#236
+#0#6'Height'#2#19#3'Top'#3#173#0#5'Width'#3#142#0#7'Caption'#6#20'TabsToSpac'
+'esCheckBox'#8'OnChange'#7#26'TabsToSpacesCheckBoxChange'#8'TabOrder'#2#12#0
+#0#242#2#27#9'TCheckBox'#23'DoubleClickLineCheckBox'#22'AnchorSideLeft.Contr'
+'ol'#7#5'Owner'#21'AnchorSideTop.Control'#7#15'MouseGroupLabel'#18'AnchorSid'
+'eTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3#12#1#5'Width'
+#3#146#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#7'Caption'#6#23
+'DoubleClickLineCheckBox'#8'OnChange'#7#29'DoubleClickLineCheckBoxChange'#8
+'TabOrder'#2#13#0#0#242#2#28#9'TCheckBox'#18'MouseLinksCheckBox'#22'AnchorSi'
+'deLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#23'DoubleClickLineCh'
+'eckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3
+'Top'#3#31#1#5'Width'#2'~'#18'BorderSpacing.Left'#2#6#7'Caption'#6#18'MouseL'
+'inksCheckBox'#8'OnChange'#7#24'MouseLinksCheckBoxChange'#8'TabOrder'#2#14#0
+#0#242#2#29#9'TCheckBox'#18'DragDropEdCheckBox'#22'AnchorSideLeft.Control'#7
+#5'Owner'#21'AnchorSideTop.Control'#7#15'MouseGroupLabel'#18'AnchorSideTop.S'
+'ide'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#19#3'Top'#3#12#1#5'Width'#3
+#128#0#18'BorderSpacing.Left'#3#230#0#20'BorderSpacing.Around'#2#6#7'Caption'
+#6#18'DragDropEdCheckBox'#8'OnChange'#7#24'DragDropEdCheckBoxChange'#8'TabOr'
+'der'#2#15#0#0#242#2#30#9'TCheckBox'#17'DropFilesCheckBox'#22'AnchorSideLeft'
+'.Control'#7#18'DragDropEdCheckBox'#21'AnchorSideTop.Control'#7#18'MouseLink'
+'sCheckBox'#4'Left'#3#236#0#6'Height'#2#19#3'Top'#3#31#1#5'Width'#2'q'#7'Cap'
+'tion'#6#17'DropFilesCheckBox'#8'OnChange'#7#23'DropFilesCheckBoxChange'#8'T'
+'abOrder'#2#16#0#0#242#2#31#9'TCheckBox'#19'KeepCursorXCheckBox'#22'AnchorSi'
+'deLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#16'CursorGroupLabel'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3'N'
+#1#5'Width'#3#131#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#7'C'
+'aption'#6#19'KeepCursorXCheckBox'#8'OnChange'#7#25'KeepCursorXCheckBoxChang'
+'e'#8'TabOrder'#2#17#0#0#242#2' '#9'TCheckBox'#24'PersistentCursorCheckBox'
+#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#19'KeepCu'
+'rsorXCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2
+#19#3'Top'#3'a'#1#5'Width'#3#145#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#24
+'PersistentCursorCheckBox'#8'OnChange'#7#30'PersistentCursorCheckBoxChange'#8
+'TabOrder'#2#18#0#0#242#2'!'#9'TCheckBox'#27'AlwaysVisibleCursorCheckBox'#22
+'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#24'Persisten'
+'tCursorCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'
+#2#19#3'Top'#3't'#1#5'Width'#3#162#0#18'BorderSpacing.Left'#2#6#7'Caption'#6
+#27'AlwaysVisibleCursorCheckBox'#8'OnChange'#7'!AlwaysVisibleCursorCheckBoxC'
+'hange'#8'TabOrder'#2#19#0#0#242#2'"'#9'TCheckBox'#28'CursorSkipsSelectionCh'
+'eckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#16
+'CursorGroupLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'H'
+'eight'#2#19#3'Top'#3'N'#1#5'Width'#3#169#0#18'BorderSpacing.Left'#3#230#0#20
+'BorderSpacing.Around'#2#6#7'Caption'#6#28'CursorSkipsSelectionCheckBox'#8'O'
+'nChange'#7'"CursorSkipsSelectionCheckBoxChange'#8'TabOrder'#2#20#0#0#242#2
+'#'#9'TCheckBox'#29'RightMouseMovesCursorCheckBox'#22'AnchorSideLeft.Control'
+#7#28'CursorSkipsSelectionCheckBox'#21'AnchorSideTop.Control'#7#24'Persisten'
+'tCursorCheckBox'#4'Left'#3#236#0#6'Height'#2#19#3'Top'#3'a'#1#5'Width'#3#188
+#0#7'Caption'#6#29'RightMouseMovesCursorCheckBox'#8'OnChange'#7'#RightMouseM'
+'ovesCursorCheckBoxChange'#8'TabOrder'#2#21#0#0#242#2'$'#9'TCheckBox"HomeKey'
+'JumpsToNearestStartCheckBox'#22'AnchorSideLeft.Control'#7#28'CursorSkipsSel'
+'ectionCheckBox'#21'AnchorSideTop.Control'#7#27'AlwaysVisibleCursorCheckBox'
+#4'Left'#3#236#0#6'Height'#2#19#3'Top'#3't'#1#5'Width'#3#217#0#7'Caption'#6
+'"HomeKeyJumpsToNearestStartCheckBox'#8'OnChange'#7'(HomeKeyJumpsToNearestSt'
+'artCheckBoxChange'#8'TabOrder'#2#22#0#0#242#2'%'#9'TCheckBox!EndKeyJumpsToN'
+'earestStartCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop'
+'.Control'#7#27'AlwaysVisibleCursorCheckBox'#18'AnchorSideTop.Side'#7#9'asrB'
+'ottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3#135#1#5'Width'#3#208#0#18'Border'
+'Spacing.Left'#2#6#7'Caption'#6'!EndKeyJumpsToNearestStartCheckBox'#8'OnChan'
,'ge'#7'''EndKeyJumpsToNearestStartCheckBoxChange'#8'TabOrder'#2#23#0#0#242#2
+'&'#9'TComboBox'#23'BlockIndentTypeComboBox'#22'AnchorSideLeft.Control'#7#5
+'Owner'#21'AnchorSideTop.Control'#7#19'BlockIndentComboBox'#18'AnchorSideTop'
+'.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#17'TabWidthsComboBox'#4
+'Left'#2#6#6'Height'#2#21#3'Top'#3#219#0#5'Width'#2'd'#12'AutoComplete'#8#18
+'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#3#5'Ctl3D'#8#10'ItemHeight'
+#2#13#9'ItemWidth'#3#200#0#8'OnChange'#7#16'ComboboxOnChange'#6'OnExit'#7#14
+'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboboxOnKeyDown'#8'TabOrder'#2#24#0#0#0
]);

View File

@ -27,7 +27,7 @@ interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Graphics, LCLProc, LCLType,
StdCtrls, SynEdit, Controls, ExtCtrls,
EditorOptions, LazarusIDEStrConsts, IDEProcs, IDEOptionsIntf;
EditorOptions, LazarusIDEStrConsts, IDEProcs, IDEOptionsIntf, SynBeautifier;
type
TPreviewEditor = TSynEdit;
@ -40,8 +40,10 @@ type
Bevel4: TBevel;
Bevel5: TBevel;
BlockIndentComboBox: TComboBox;
BlockIndentTypeComboBox: TComboBox;
BlockIndentLabel: TLabel;
AutoIndentCheckBox: TCheckBox;
BlockIndentTypeLabel: TLabel;
EndKeyJumpsToNearestStartCheckBox: TCheckBox;
KeepCursorXCheckBox: TCheckBox;
PersistentCursorCheckBox: TCheckBox;
@ -124,6 +126,10 @@ end;
procedure TEditorGeneralOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
begin
BlockIndentLabel.Caption := dlgBlockIndent;
BlockIndentTypeLabel.Caption := dlgBlockIndent;
BlockIndentTypeComboBox.Items.Add(dlgBlockIndentTypeSpace);
BlockIndentTypeComboBox.Items.Add(dlgBlockIndentTypeCopy);
BlockIndentTypeComboBox.Items.Add(dlgBlockIndentTypePos);
TabWidthsLabel.Caption := dlgTabWidths;
// undo
@ -172,6 +178,7 @@ begin
begin
SetComboBoxText(BlockIndentComboBox, IntToStr(BlockIndent));
SetComboBoxText(TabWidthsComboBox, IntToStr(TabWidth));
BlockIndentTypeComboBox.ItemIndex := ord(BlockIndentType);
// undo
UndoAfterSaveCheckBox.Checked := UndoAfterSave;
@ -269,6 +276,7 @@ begin
if i > 20 then
i := 20;
BlockIndent := i;
BlockIndentType := TSynBeautifierIndentType(BlockIndentTypeComboBox.ItemIndex);
// mouse
UpdateOptionFromBool(DoubleClickLineCheckBox.Checked, eoDoubleClickSelectsLine);

View File

@ -1145,6 +1145,10 @@ resourcestring
dlgHighlightRightOfCursor = 'Right Of Cursor';
gldHighlightBothSidesOfCursor = 'On Both Sides';
dlgBlockIndent = 'Block indent';
dlgBlockIndentType = 'Indent method';
dlgBlockIndentTypeSpace = 'Spaces';
dlgBlockIndentTypeCopy = 'Space/tab as prev Line';
dlgBlockIndentTypePos = 'Position only';
dlgUndoLimit = 'Undo limit';
dlgTabWidths = 'Tab widths';
dlgMarginGutter = 'Margin and gutter';