IDE: Add options for elastic tabstops

This commit is contained in:
Martin 2023-07-01 22:48:26 +02:00
parent c4a57d1eb6
commit daa675e85e
4 changed files with 271 additions and 175 deletions

View File

@ -61,7 +61,8 @@ uses
SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterXML, SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterXML,
SynHighlighterJScript, SynHighlighterDiff, SynHighlighterBat, SynHighlighterJScript, SynHighlighterDiff, SynHighlighterBat,
SynHighlighterIni, SynHighlighterPo, SynHighlighterPike, SynPluginMultiCaret, SynHighlighterIni, SynHighlighterPo, SynHighlighterPike, SynPluginMultiCaret,
SynEditMarkupFoldColoring, SynEditMarkup, SynGutterLineOverview, SynBeautifierPascal, SynEditMarkupFoldColoring, SynEditMarkup, SynGutterLineOverview,
SynBeautifierPascal, SynEditTextDynTabExpander, SynEditTextTabExpander,
// codetools // codetools
LinkScanner, CodeToolManager, LinkScanner, CodeToolManager,
// IDEIntf // IDEIntf
@ -1422,6 +1423,8 @@ type
TEditorOptionsBase = class(TIDEEditorOptions) TEditorOptionsBase = class(TIDEEditorOptions)
private private
fDbgHintUseBackendDebugConverter: Boolean; fDbgHintUseBackendDebugConverter: Boolean;
FElasticTabs: Boolean;
fElasticTabsMinWidth: Integer;
FTabFont: String; FTabFont: String;
FTabFontDisableAntialiasing: Boolean; FTabFontDisableAntialiasing: Boolean;
FTabFontSize: Integer; FTabFontSize: Integer;
@ -1585,6 +1588,9 @@ type
property ScrollOnEditRightOptions: TSynScrollOnEditRightOptions property ScrollOnEditRightOptions: TSynScrollOnEditRightOptions
read FScrollOnEditRightOptions write FScrollOnEditRightOptions; read FScrollOnEditRightOptions write FScrollOnEditRightOptions;
property ScrollPastEolMode: TEditorOptsScrollPastEolMode read FScrollPastEolMode write FScrollPastEolMode default optScrollPage; property ScrollPastEolMode: TEditorOptsScrollPastEolMode read FScrollPastEolMode write FScrollPastEolMode default optScrollPage;
// Tabs
property ElasticTabs: Boolean read FElasticTabs write FElasticTabs default False;
property ElasticTabsMinWidth: Integer read fElasticTabsMinWidth write fElasticTabsMinWidth default 1;
end; end;
{ TEditorOptionsDefaults } { TEditorOptionsDefaults }
@ -4818,6 +4824,8 @@ begin
FStringBreakPrefix := ''; FStringBreakPrefix := '';
FScrollPastEolMode := optScrollPage; FScrollPastEolMode := optScrollPage;
FElasticTabsMinWidth := 1;
end; end;
function TEditorOptionsBase.GetTabPosition: TTabPosition; function TEditorOptionsBase.GetTabPosition: TTabPosition;
@ -4916,6 +4924,7 @@ begin
fTrimSpaceType := settEditLine; fTrimSpaceType := settEditLine;
fUndoLimit := 32767; fUndoLimit := 32767;
fTabWidth := 8; fTabWidth := 8;
fElasticTabsMinWidth := 1;
fBracketHighlightStyle := sbhsBoth; fBracketHighlightStyle := sbhsBoth;
// Display options // Display options
fGutterSeparatorIndex := 3; fGutterSeparatorIndex := 3;
@ -6012,6 +6021,15 @@ begin
end; end;
if ElasticTabs then begin
ASynEdit.TabViewClass := TSynEditStringDynTabExpander;
ASynEdit.Options := fSynEditOptions - [eoSmartTabs, eoTabsToSpaces];
TSynEditStringDynTabExpander(ASynEdit.TextViewsManager.SynTextViewByClass[TSynEditStringDynTabExpander])
.MinTabWidth := FElasticTabsMinWidth;
end else begin
ASynEdit.TabViewClass := TSynEditStringTabExpander;
end;
ASynEdit.TrimSpaceType := FTrimSpaceType; ASynEdit.TrimSpaceType := FTrimSpaceType;
ASynEdit.TabWidth := fTabWidth; ASynEdit.TabWidth := fTabWidth;
ASynEdit.BracketHighlightStyle := FBracketHighlightStyle; ASynEdit.BracketHighlightStyle := FBracketHighlightStyle;

View File

@ -15,9 +15,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = BlockIndentComboBox AnchorSideTop.Control = BlockIndentComboBox
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 322 Left = 322
Height = 20 Height = 15
Top = 197 Top = 156
Width = 110 Width = 91
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'BlockIndentLabel' Caption = 'BlockIndentLabel'
ParentColor = False ParentColor = False
@ -28,9 +28,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = TabWidthsComboBox AnchorSideTop.Control = TabWidthsComboBox
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 322 Left = 322
Height = 20 Height = 15
Top = 42 Top = 31
Width = 102 Width = 83
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'TabWidthsLabel' Caption = 'TabWidthsLabel'
ParentColor = False ParentColor = False
@ -41,9 +41,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = BlockIndentTypeComboBox AnchorSideTop.Control = BlockIndentTypeComboBox
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 322 Left = 322
Height = 20 Height = 15
Top = 132 Top = 109
Width = 136 Width = 112
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'AutoIndentTypeLabel' Caption = 'AutoIndentTypeLabel'
ParentColor = False ParentColor = False
@ -53,11 +53,11 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = lblBlockIndentKeys AnchorSideTop.Control = lblBlockIndentKeys
AnchorSideBottom.Control = TabWidthsComboBox AnchorSideBottom.Control = TabWidthsComboBox
Left = 216 Left = 216
Height = 40 Height = 23
Top = 187 Top = 152
Width = 100 Width = 100
BorderSpacing.Top = 3 BorderSpacing.Top = 3
ItemHeight = 0 ItemHeight = 15
Items.Strings = ( Items.Strings = (
'0' '0'
'1' '1'
@ -77,11 +77,11 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideBottom.Control = Owner AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 216 Left = 216
Height = 40 Height = 23
Top = 32 Top = 27
Width = 100 Width = 100
BorderSpacing.Top = 6 BorderSpacing.Top = 6
ItemHeight = 0 ItemHeight = 15
Items.Strings = ( Items.Strings = (
'1' '1'
'2' '2'
@ -100,8 +100,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideRight.Control = CenterLabel1 AnchorSideRight.Control = CenterLabel1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 32 Height = 19
Top = 122 Top = 105
Width = 201 Width = 201
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
@ -117,8 +117,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideRight.Control = CenterLabel1 AnchorSideRight.Control = CenterLabel1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 32 Height = 19
Top = 230 Top = 185
Width = 201 Width = 201
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
@ -135,8 +135,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideRight.Control = CenterLabel1 AnchorSideRight.Control = CenterLabel1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 32 Height = 19
Top = 64 Top = 46
Width = 201 Width = 201
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
@ -152,8 +152,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideRight.Control = CenterLabel1 AnchorSideRight.Control = CenterLabel1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 32 Height = 19
Top = 32 Top = 27
Width = 201 Width = 201
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
@ -168,10 +168,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = AutoIndentCheckBox AnchorSideTop.Control = AutoIndentCheckBox
AnchorSideBottom.Control = TabWidthsComboBox AnchorSideBottom.Control = TabWidthsComboBox
Left = 216 Left = 216
Height = 40 Height = 23
Top = 122 Top = 105
Width = 100 Width = 100
ItemHeight = 0 ItemHeight = 15
ItemWidth = 200 ItemWidth = 200
OnChange = ComboboxOnChange OnChange = ComboboxOnChange
OnExit = ComboBoxOnExit OnExit = ComboBoxOnExit
@ -185,9 +185,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Cursor = crHandPoint Cursor = crHandPoint
Left = 24 Left = 24
Height = 20 Height = 15
Top = 154 Top = 124
Width = 96 Width = 82
BorderSpacing.Left = 18 BorderSpacing.Left = 18
Caption = 'AutoIndentLink' Caption = 'AutoIndentLink'
Font.Color = clBlue Font.Color = clBlue
@ -212,7 +212,7 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideRight.Control = Owner AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 20 Height = 15
Top = 6 Top = 6
Width = 433 Width = 433
Caption = 'TabsGroupDivider' Caption = 'TabsGroupDivider'
@ -227,11 +227,11 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = TabWidthsComboBox AnchorSideBottom.Control = TabWidthsComboBox
Left = 216 Left = 216
Height = 40 Height = 23
Top = 230 Top = 178
Width = 100 Width = 100
BorderSpacing.Top = 3 BorderSpacing.Top = 3
ItemHeight = 0 ItemHeight = 15
Items.Strings = ( Items.Strings = (
'0' '0'
'1' '1'
@ -248,9 +248,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = BlockTabIndentComboBox AnchorSideTop.Control = BlockTabIndentComboBox
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 322 Left = 322
Height = 20 Height = 15
Top = 240 Top = 182
Width = 110 Width = 91
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'BlockIndentLabel' Caption = 'BlockIndentLabel'
ParentColor = False ParentColor = False
@ -260,10 +260,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lblBlockIndentKeys AnchorSideTop.Control = lblBlockIndentKeys
Cursor = crHandPoint Cursor = crHandPoint
Left = 135 Left = 112
Height = 20 Height = 15
Top = 184 Top = 149
Width = 101 Width = 85
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'BlockIndentLink' Caption = 'BlockIndentLink'
Font.Color = clBlue Font.Color = clBlue
@ -278,9 +278,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = AutoIndentLink AnchorSideTop.Control = AutoIndentLink
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 20 Height = 15
Top = 184 Top = 149
Width = 123 Width = 100
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 10 BorderSpacing.Top = 10
Caption = 'lblBlockIndentKeys' Caption = 'lblBlockIndentKeys'
@ -288,13 +288,13 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
end end
object IndentsGroupDivider: TDividerBevel object IndentsGroupDivider: TDividerBevel
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = SmartTabsCheckBox AnchorSideTop.Control = chkElasticTabs
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 20 Height = 15
Top = 102 Top = 90
Width = 433 Width = 433
Caption = 'IndentsGroupDivider' Caption = 'IndentsGroupDivider'
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
@ -307,9 +307,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = lblBlockIndentKeys AnchorSideTop.Control = lblBlockIndentKeys
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 20 Height = 15
Top = 207 Top = 167
Width = 147 Width = 121
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 3 BorderSpacing.Top = 3
Caption = 'lblBlockIndentShortcut' Caption = 'lblBlockIndentShortcut'
@ -322,8 +322,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideRight.Control = Owner AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 20 Height = 15
Top = 268 Top = 210
Width = 433 Width = 433
Caption = 'CommentsGroupDivider' Caption = 'CommentsGroupDivider'
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
@ -349,8 +349,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideBottom.Control = Owner AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 0 Left = 0
Height = 205 Height = 268
Top = 294 Top = 231
Width = 433 Width = 433
ActivePage = tbAnsi ActivePage = tbAnsi
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
@ -359,16 +359,16 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
TabOrder = 8 TabOrder = 8
object tbAnsi: TTabSheet object tbAnsi: TTabSheet
Caption = 'tbAnsi' Caption = 'tbAnsi'
ClientHeight = 165 ClientHeight = 240
ClientWidth = 427 ClientWidth = 425
object cbAnsiEnableAutoContinue: TCheckBox object cbAnsiEnableAutoContinue: TCheckBox
AnchorSideLeft.Control = tbAnsi AnchorSideLeft.Control = tbAnsi
AnchorSideTop.Control = tbAnsi AnchorSideTop.Control = tbAnsi
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 32 Height = 19
Top = 3 Top = 3
Width = 206 Width = 164
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 3 BorderSpacing.Top = 3
Caption = 'cbAnsiEnableAutoContinue' Caption = 'cbAnsiEnableAutoContinue'
@ -380,9 +380,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = edAnsiMatch AnchorSideTop.Control = edAnsiMatch
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 20 Height = 15
Top = 55 Top = 36
Width = 78 Width = 67
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'lbAnsiMatch' Caption = 'lbAnsiMatch'
ParentColor = False ParentColor = False
@ -394,10 +394,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbAnsi AnchorSideRight.Control = tbAnsi
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 90 Left = 79
Height = 40 Height = 23
Top = 45 Top = 32
Width = 327 Width = 336
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 10 BorderSpacing.Top = 10
@ -410,9 +410,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = edAnsiPrefix AnchorSideTop.Control = edAnsiPrefix
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 20 Height = 15
Top = 157 Top = 104
Width = 75 Width = 63
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'lbAnsiPrefix' Caption = 'lbAnsiPrefix'
ParentColor = False ParentColor = False
@ -424,10 +424,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbAnsi AnchorSideRight.Control = tbAnsi
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 87 Left = 75
Height = 40 Height = 23
Top = 147 Top = 100
Width = 330 Width = 340
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 16 BorderSpacing.Top = 16
@ -441,14 +441,14 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbAnsi AnchorSideRight.Control = tbAnsi
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 90 Left = 79
Height = 40 Height = 23
Top = 91 Top = 61
Width = 327 Width = 336
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6 BorderSpacing.Top = 6
BorderSpacing.Right = 10 BorderSpacing.Right = 10
ItemHeight = 0 ItemHeight = 15
Style = csDropDownList Style = csDropDownList
TabOrder = 3 TabOrder = 3
end end
@ -458,14 +458,14 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbAnsi AnchorSideRight.Control = tbAnsi
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 87 Left = 75
Height = 40 Height = 23
Top = 193 Top = 129
Width = 330 Width = 340
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6 BorderSpacing.Top = 6
BorderSpacing.Right = 10 BorderSpacing.Right = 10
ItemHeight = 0 ItemHeight = 15
OnChange = cbAnsiIndentModeChange OnChange = cbAnsiIndentModeChange
Style = csDropDownList Style = csDropDownList
TabOrder = 4 TabOrder = 4
@ -476,8 +476,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 6 Left = 6
Height = 40 Height = 23
Top = 266 Top = 180
Width = 100 Width = 100
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 3 BorderSpacing.Top = 3
@ -490,9 +490,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 20 Height = 15
Top = 243 Top = 162
Width = 97 Width = 84
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 10 BorderSpacing.Top = 10
Caption = 'lbAnsiAlignMax' Caption = 'lbAnsiAlignMax'
@ -502,16 +502,16 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
end end
object tbCurly: TTabSheet object tbCurly: TTabSheet
Caption = 'tbCurly' Caption = 'tbCurly'
ClientHeight = 165 ClientHeight = 240
ClientWidth = 427 ClientWidth = 425
object cbCurlyEnableAutoContinue: TCheckBox object cbCurlyEnableAutoContinue: TCheckBox
AnchorSideLeft.Control = tbCurly AnchorSideLeft.Control = tbCurly
AnchorSideTop.Control = tbCurly AnchorSideTop.Control = tbCurly
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 32 Height = 19
Top = 3 Top = 3
Width = 212 Width = 169
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 3 BorderSpacing.Top = 3
Caption = 'cbCurlyEnableAutoContinue' Caption = 'cbCurlyEnableAutoContinue'
@ -523,9 +523,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = edCurlyMatch AnchorSideTop.Control = edCurlyMatch
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 20 Height = 15
Top = 55 Top = 36
Width = 84 Width = 72
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'lbCurlyMatch' Caption = 'lbCurlyMatch'
ParentColor = False ParentColor = False
@ -537,10 +537,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbCurly AnchorSideRight.Control = tbCurly
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 96 Left = 84
Height = 40 Height = 23
Top = 45 Top = 32
Width = 694 Width = 331
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 10 BorderSpacing.Top = 10
@ -552,9 +552,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = edCurlyPrefix AnchorSideTop.Control = edCurlyPrefix
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 20 Height = 15
Top = 157 Top = 104
Width = 81 Width = 68
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'lbCurlyPrefix' Caption = 'lbCurlyPrefix'
ParentColor = False ParentColor = False
@ -566,10 +566,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbCurly AnchorSideRight.Control = tbCurly
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 93 Left = 80
Height = 40 Height = 23
Top = 147 Top = 100
Width = 697 Width = 335
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 16 BorderSpacing.Top = 16
@ -582,14 +582,14 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbCurly AnchorSideRight.Control = tbCurly
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 96 Left = 84
Height = 40 Height = 23
Top = 91 Top = 61
Width = 694 Width = 331
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6 BorderSpacing.Top = 6
BorderSpacing.Right = 10 BorderSpacing.Right = 10
ItemHeight = 0 ItemHeight = 15
Style = csDropDownList Style = csDropDownList
TabOrder = 3 TabOrder = 3
end end
@ -599,14 +599,14 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbCurly AnchorSideRight.Control = tbCurly
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 93 Left = 80
Height = 40 Height = 23
Top = 193 Top = 129
Width = 697 Width = 335
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6 BorderSpacing.Top = 6
BorderSpacing.Right = 10 BorderSpacing.Right = 10
ItemHeight = 0 ItemHeight = 15
OnChange = cbCurlyIndentModeChange OnChange = cbCurlyIndentModeChange
Style = csDropDownList Style = csDropDownList
TabOrder = 4 TabOrder = 4
@ -617,8 +617,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 6 Left = 6
Height = 40 Height = 23
Top = 266 Top = 180
Width = 100 Width = 100
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 3 BorderSpacing.Top = 3
@ -631,9 +631,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 20 Height = 15
Top = 243 Top = 162
Width = 103 Width = 89
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 10 BorderSpacing.Top = 10
Caption = 'lbCurlyAlignMax' Caption = 'lbCurlyAlignMax'
@ -643,16 +643,16 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
end end
object tbShlash: TTabSheet object tbShlash: TTabSheet
Caption = 'tbShlash' Caption = 'tbShlash'
ClientHeight = 165 ClientHeight = 240
ClientWidth = 427 ClientWidth = 425
object cbSlashEnableAutoContinue: TCheckBox object cbSlashEnableAutoContinue: TCheckBox
AnchorSideLeft.Control = tbShlash AnchorSideLeft.Control = tbShlash
AnchorSideTop.Control = tbShlash AnchorSideTop.Control = tbShlash
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 32 Height = 19
Top = 3 Top = 3
Width = 214 Width = 168
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 3 BorderSpacing.Top = 3
Caption = 'cbSlashEnableAutoContinue' Caption = 'cbSlashEnableAutoContinue'
@ -664,9 +664,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = edSlashMatch AnchorSideTop.Control = edSlashMatch
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 20 Height = 15
Top = 104 Top = 68
Width = 86 Width = 71
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'lbSlashMatch' Caption = 'lbSlashMatch'
ParentColor = False ParentColor = False
@ -678,10 +678,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbShlash AnchorSideRight.Control = tbShlash
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 98 Left = 83
Height = 40 Height = 23
Top = 94 Top = 64
Width = 692 Width = 332
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 16 BorderSpacing.Top = 16
@ -693,9 +693,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = edSlashPrefix AnchorSideTop.Control = edSlashPrefix
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 20 Height = 15
Top = 206 Top = 136
Width = 83 Width = 67
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'lbSlashPrefix' Caption = 'lbSlashPrefix'
ParentColor = False ParentColor = False
@ -707,10 +707,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbShlash AnchorSideRight.Control = tbShlash
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 95 Left = 79
Height = 40 Height = 23
Top = 196 Top = 132
Width = 695 Width = 336
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 16 BorderSpacing.Top = 16
@ -723,14 +723,14 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbShlash AnchorSideRight.Control = tbShlash
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 98 Left = 83
Height = 40 Height = 23
Top = 140 Top = 93
Width = 692 Width = 332
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6 BorderSpacing.Top = 6
BorderSpacing.Right = 10 BorderSpacing.Right = 10
ItemHeight = 0 ItemHeight = 15
Style = csDropDownList Style = csDropDownList
TabOrder = 3 TabOrder = 3
end end
@ -740,14 +740,14 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbShlash AnchorSideRight.Control = tbShlash
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 95 Left = 79
Height = 40 Height = 23
Top = 242 Top = 161
Width = 695 Width = 336
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6 BorderSpacing.Top = 6
BorderSpacing.Right = 10 BorderSpacing.Right = 10
ItemHeight = 0 ItemHeight = 15
OnChange = cbSlashIndentModeChange OnChange = cbSlashIndentModeChange
Style = csDropDownList Style = csDropDownList
TabOrder = 4 TabOrder = 4
@ -759,13 +759,13 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideRight.Control = tbShlash AnchorSideRight.Control = tbShlash
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 40 Height = 23
Top = 38 Top = 25
Width = 790 Width = 415
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 3 BorderSpacing.Top = 3
BorderSpacing.Right = 10 BorderSpacing.Right = 10
ItemHeight = 0 ItemHeight = 15
Style = csDropDownList Style = csDropDownList
TabOrder = 5 TabOrder = 5
end end
@ -775,8 +775,8 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 6 Left = 6
Height = 40 Height = 23
Top = 315 Top = 212
Width = 100 Width = 100
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 3 BorderSpacing.Top = 3
@ -789,9 +789,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 20 Height = 15
Top = 292 Top = 194
Width = 105 Width = 88
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 10 BorderSpacing.Top = 10
Caption = 'lbSlashAlignMax' Caption = 'lbSlashAlignMax'
@ -801,15 +801,15 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
end end
object tbString: TTabSheet object tbString: TTabSheet
Caption = 'tbString' Caption = 'tbString'
ClientHeight = 165 ClientHeight = 240
ClientWidth = 427 ClientWidth = 425
object cbStringEnableAutoContinue: TCheckBox object cbStringEnableAutoContinue: TCheckBox
AnchorSideLeft.Control = tbString AnchorSideLeft.Control = tbString
AnchorSideTop.Control = tbString AnchorSideTop.Control = tbString
Left = 6 Left = 6
Height = 32 Height = 19
Top = 3 Top = 3
Width = 217 Width = 172
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 3 BorderSpacing.Top = 3
Caption = 'cbStringEnableAutoContinue' Caption = 'cbStringEnableAutoContinue'
@ -821,9 +821,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = edStringAutoAppend AnchorSideTop.Control = edStringAutoAppend
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 20 Height = 15
Top = 51 Top = 32
Width = 129 Width = 109
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'lbStringAutoAppend' Caption = 'lbStringAutoAppend'
ParentColor = False ParentColor = False
@ -833,9 +833,9 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Control = edStringAutoPrefix AnchorSideTop.Control = edStringAutoPrefix
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 20 Height = 15
Top = 97 Top = 61
Width = 116 Width = 97
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'lbStringAutoPrefix' Caption = 'lbStringAutoPrefix'
ParentColor = False ParentColor = False
@ -847,10 +847,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbString AnchorSideRight.Control = tbString
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 141 Left = 121
Height = 40 Height = 23
Top = 41 Top = 28
Width = 653 Width = 298
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
@ -864,10 +864,10 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tbString AnchorSideRight.Control = tbString
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 128 Left = 109
Height = 40 Height = 23
Top = 87 Top = 57
Width = 666 Width = 310
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
@ -876,4 +876,57 @@ object EditorIndentOptionsFrame: TEditorIndentOptionsFrame
end end
end end
end end
object chkElasticTabs: TCheckBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = SmartTabsCheckBox
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = CenterLabel
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Top = 65
Width = 201
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Right = 10
Caption = 'chkElasticTabs'
OnChange = chkElasticTabsChange
TabOrder = 9
end
object ElastTabMinWidthsComboBox: TComboBox
AnchorSideLeft.Control = CenterLabel1
AnchorSideTop.Control = TabWidthsComboBox
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 216
Height = 23
Top = 56
Width = 100
BorderSpacing.Top = 6
ItemHeight = 15
Items.Strings = (
'1'
'2'
'4'
'8'
)
OnChange = ComboboxOnChange
OnExit = ComboBoxOnExit
OnKeyDown = ComboboxOnKeyDown
TabOrder = 10
end
object ElastTabMinWidthsLabel: TLabel
AnchorSideLeft.Control = ElastTabMinWidthsComboBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ElastTabMinWidthsComboBox
AnchorSideTop.Side = asrCenter
Left = 322
Height = 15
Top = 60
Width = 128
BorderSpacing.Around = 6
Caption = 'ElastTabMinWidthsLabel'
ParentColor = False
end
end end

View File

@ -54,6 +54,7 @@ type
cbSlashExtend: TComboBox; cbSlashExtend: TComboBox;
CenterLabel1: TLabel; CenterLabel1: TLabel;
cbStringEnableAutoContinue: TCheckBox; cbStringEnableAutoContinue: TCheckBox;
chkElasticTabs: TCheckBox;
CommentsGroupDivider: TDividerBevel; CommentsGroupDivider: TDividerBevel;
edStringAutoAppend: TEdit; edStringAutoAppend: TEdit;
edStringAutoPrefix: TEdit; edStringAutoPrefix: TEdit;
@ -100,6 +101,8 @@ type
lblBlockIndentKeys: TLabel; lblBlockIndentKeys: TLabel;
TabIndentBlocksCheckBox: TCheckBox; TabIndentBlocksCheckBox: TCheckBox;
SmartTabsCheckBox: TCheckBox; SmartTabsCheckBox: TCheckBox;
ElastTabMinWidthsComboBox: TComboBox;
ElastTabMinWidthsLabel: TLabel;
tbAnsi: TTabSheet; tbAnsi: TTabSheet;
tbCurly: TTabSheet; tbCurly: TTabSheet;
tbShlash: TTabSheet; tbShlash: TTabSheet;
@ -126,6 +129,7 @@ type
procedure SmartTabsCheckBoxChange(Sender: TObject); procedure SmartTabsCheckBoxChange(Sender: TObject);
procedure TabIndentBlocksCheckBoxChange(Sender: TObject); procedure TabIndentBlocksCheckBoxChange(Sender: TObject);
procedure TabsToSpacesCheckBoxChange(Sender: TObject); procedure TabsToSpacesCheckBoxChange(Sender: TObject);
procedure chkElasticTabsChange(Sender: TObject);
private private
FDefaultBookmarkImages: TImageList; FDefaultBookmarkImages: TImageList;
FDialog: TAbstractOptionsEditorDialog; FDialog: TAbstractOptionsEditorDialog;
@ -173,6 +177,8 @@ begin
TabsToSpacesCheckBox.Caption := dlgTabsToSpaces; TabsToSpacesCheckBox.Caption := dlgTabsToSpaces;
TabWidthsLabel.Caption := dlgTabWidths; TabWidthsLabel.Caption := dlgTabWidths;
SmartTabsCheckBox.Caption := dlgSmartTabs; SmartTabsCheckBox.Caption := dlgSmartTabs;
chkElasticTabs.Caption := dlgElasticTabs;
ElastTabMinWidthsLabel.Caption := dlgElasticTabsWidths;
// indents // indents
IndentsGroupDivider.Caption := dlgIndentsIndentGroupOptions; IndentsGroupDivider.Caption := dlgIndentsIndentGroupOptions;
@ -273,6 +279,7 @@ begin
SetComboBoxText(BlockIndentComboBox, IntToStr(BlockIndent), cstCaseInsensitive); SetComboBoxText(BlockIndentComboBox, IntToStr(BlockIndent), cstCaseInsensitive);
SetComboBoxText(BlockTabIndentComboBox, IntToStr(BlockTabIndent), cstCaseInsensitive); SetComboBoxText(BlockTabIndentComboBox, IntToStr(BlockTabIndent), cstCaseInsensitive);
SetComboBoxText(TabWidthsComboBox, IntToStr(TabWidth), cstCaseInsensitive); SetComboBoxText(TabWidthsComboBox, IntToStr(TabWidth), cstCaseInsensitive);
SetComboBoxText(ElastTabMinWidthsComboBox, IntToStr(ElasticTabsMinWidth), cstCaseInsensitive);
BlockIndentTypeComboBox.ItemIndex := ord(BlockIndentType); BlockIndentTypeComboBox.ItemIndex := ord(BlockIndentType);
// tabs, indents // tabs, indents
@ -280,6 +287,7 @@ begin
TabIndentBlocksCheckBox.Checked := eoTabIndent in SynEditOptions; TabIndentBlocksCheckBox.Checked := eoTabIndent in SynEditOptions;
SmartTabsCheckBox.Checked := eoSmartTabs in SynEditOptions; SmartTabsCheckBox.Checked := eoSmartTabs in SynEditOptions;
TabsToSpacesCheckBox.Checked := eoTabsToSpaces in SynEditOptions; TabsToSpacesCheckBox.Checked := eoTabsToSpaces in SynEditOptions;
chkElasticTabs.Checked := ElasticTabs;
lblBlockIndentShortcut.Caption := ''; lblBlockIndentShortcut.Caption := '';
K := KeyMap.FindByCommand(ecBlockIndent); K := KeyMap.FindByCommand(ecBlockIndent);
@ -373,6 +381,14 @@ begin
UpdateOptionFromBool(TabIndentBlocksCheckBox.Checked, eoTabIndent); UpdateOptionFromBool(TabIndentBlocksCheckBox.Checked, eoTabIndent);
UpdateOptionFromBool(SmartTabsCheckBox.Checked, eoSmartTabs); UpdateOptionFromBool(SmartTabsCheckBox.Checked, eoSmartTabs);
UpdateOptionFromBool(TabsToSpacesCheckBox.Checked, eoTabsToSpaces); UpdateOptionFromBool(TabsToSpacesCheckBox.Checked, eoTabsToSpaces);
ElasticTabs := chkElasticTabs.Checked;
i := StrToIntDef(ElastTabMinWidthsComboBox.Text, 2);
if i < 1 then
i := 1;
if i > 20 then
i := 20;
ElasticTabsMinWidth := i;
i := StrToIntDef(TabWidthsComboBox.Text, 2); i := StrToIntDef(TabWidthsComboBox.Text, 2);
if i < 1 then if i < 1 then
@ -653,6 +669,13 @@ begin
SetPreviewOption(TabsToSpacesCheckBox.Checked, eoTabsToSpaces); SetPreviewOption(TabsToSpacesCheckBox.Checked, eoTabsToSpaces);
end; end;
procedure TEditorIndentOptionsFrame.chkElasticTabsChange(Sender: TObject);
begin
SmartTabsCheckBox.Enabled := not chkElasticTabs.Checked;
TabsToSpacesCheckBox.Enabled := not chkElasticTabs.Checked;
ElastTabMinWidthsComboBox.Enabled := chkElasticTabs.Checked;
end;
function TEditorIndentOptionsFrame.DefaultBookmarkImages: TImageList; function TEditorIndentOptionsFrame.DefaultBookmarkImages: TImageList;
var var
i: integer; i: integer;

View File

@ -1669,6 +1669,8 @@ resourcestring
dlgUseTabsHistory = 'Use tab history when closing tabs'; dlgUseTabsHistory = 'Use tab history when closing tabs';
dlgShowGutterHints = 'Show gutter hints'; dlgShowGutterHints = 'Show gutter hints';
dlgSmartTabs = 'Smart tabs'; dlgSmartTabs = 'Smart tabs';
dlgElasticTabs = 'Elastic tabs';
dlgElasticTabsWidths = 'Elastic min Widths';
dlgTabsToSpaces = 'Tabs to spaces'; dlgTabsToSpaces = 'Tabs to spaces';
dlgTabIndent = 'Tab indents blocks'; dlgTabIndent = 'Tab indents blocks';
dlgTrimTrailingSpaces = 'Trim trailing spaces'; dlgTrimTrailingSpaces = 'Trim trailing spaces';