IDE: Diff dialog, use highlighter

git-svn-id: trunk@24623 -
This commit is contained in:
martin 2010-04-14 20:03:59 +00:00
parent ae416f6a77
commit 2bc158ad52
4 changed files with 370 additions and 137 deletions

View File

@ -1,21 +1,20 @@
object DiffDlg: TDiffDlg
Left = 298
Left = 300
Height = 505
Top = 132
Top = 147
Width = 598
HelpType = htKeyword
ActiveControl = Text1Combobox
BorderIcons = [biSystemMenu]
Caption = 'Diff dialog'
ClientHeight = 505
ClientWidth = 598
Position = poScreenCenter
LCLVersion = '0.9.27'
LCLVersion = '0.9.29'
object Text1GroupBox: TGroupBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 6
Height = 74
Height = 78
Top = 6
Width = 586
Align = alTop
@ -23,7 +22,7 @@ object DiffDlg: TDiffDlg
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Text1GroupBox'
ClientHeight = 56
ClientHeight = 60
ClientWidth = 582
TabOrder = 0
object Text1Combobox: TComboBox
@ -31,16 +30,14 @@ object DiffDlg: TDiffDlg
AnchorSideTop.Control = Text1GroupBox
AnchorSideRight.Control = Text1FileOpenButton
Left = 6
Height = 21
Height = 23
Top = 6
Width = 532
Anchors = [akTop, akLeft, akRight]
AutoComplete = False
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
ItemHeight = 13
ItemWidth = 0
ItemHeight = 15
OnChange = Text1ComboboxChange
TabOrder = 0
Text = 'Text1Combobox'
@ -50,8 +47,8 @@ object DiffDlg: TDiffDlg
AnchorSideTop.Control = Text1Combobox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 17
Top = 33
Height = 19
Top = 35
Width = 490
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -67,7 +64,7 @@ object DiffDlg: TDiffDlg
AnchorSideBottom.Control = Text1Combobox
AnchorSideBottom.Side = asrBottom
Left = 544
Height = 21
Height = 23
Top = 6
Width = 32
Anchors = [akTop, akRight, akBottom]
@ -79,14 +76,14 @@ object DiffDlg: TDiffDlg
end
object Text2GroupBox: TGroupBox
Left = 6
Height = 74
Top = 86
Height = 78
Top = 90
Width = 586
Align = alTop
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Text2GroupBox'
ClientHeight = 56
ClientHeight = 60
ClientWidth = 582
TabOrder = 1
object Text2Combobox: TComboBox
@ -94,16 +91,14 @@ object DiffDlg: TDiffDlg
AnchorSideTop.Control = Text2GroupBox
AnchorSideRight.Control = Text2FileOpenButton
Left = 6
Height = 21
Height = 23
Top = 6
Width = 532
Anchors = [akTop, akLeft, akRight]
AutoComplete = False
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
ItemHeight = 13
ItemWidth = 0
ItemHeight = 15
OnChange = Text2ComboboxChange
TabOrder = 0
Text = 'Text2Combobox'
@ -113,8 +108,8 @@ object DiffDlg: TDiffDlg
AnchorSideTop.Control = Text2Combobox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 17
Top = 33
Height = 19
Top = 35
Width = 490
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -130,7 +125,7 @@ object DiffDlg: TDiffDlg
AnchorSideBottom.Control = Text2Combobox
AnchorSideBottom.Side = asrBottom
Left = 544
Height = 21
Height = 23
Top = 6
Width = 32
Anchors = [akTop, akRight, akBottom]
@ -166,14 +161,14 @@ object DiffDlg: TDiffDlg
Columns = 2
TabOrder = 2
end
object DiffSynEdit: TSynEdit
inline DiffSynEdit: TSynEdit
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Text2GroupBox
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 6
Height = 186
Top = 166
Height = 178
Top = 174
Width = 586
Align = alTop
BorderSpacing.Around = 6
@ -187,340 +182,487 @@ object DiffDlg: TDiffDlg
ParentFont = False
TabOrder = 3
BookMarkOptions.Xoffset = -18
BookMarkOptions.OnChange = nil
Gutter.Visible = False
Gutter.Width = 0
Gutter.MouseActions = <
item
Shift = []
ShiftMask = []
Button = mbLeft
ClickCount = ccAny
ClickDir = cdDown
Command = 13
MoveCaret = False
Option = 0
Priority = 0
end
item
Shift = []
ShiftMask = []
Button = mbRight
ClickCount = ccSingle
ClickDir = cdUp
Command = 12
MoveCaret = False
Option = 0
Priority = 0
end>
Highlighter = SynDiffSyn1
Keystrokes = <
item
Command = 3
Command = ecUp
ShortCut = 38
end
item
Command = 103
Command = ecSelUp
ShortCut = 8230
end
item
Command = 211
Command = ecScrollUp
ShortCut = 16422
end
item
Command = 4
Command = ecDown
ShortCut = 40
end
item
Command = 104
Command = ecSelDown
ShortCut = 8232
end
item
Command = 212
Command = ecScrollDown
ShortCut = 16424
end
item
Command = 1
Command = ecLeft
ShortCut = 37
end
item
Command = 101
Command = ecSelLeft
ShortCut = 8229
end
item
Command = 5
Command = ecWordLeft
ShortCut = 16421
end
item
Command = 105
Command = ecSelWordLeft
ShortCut = 24613
end
item
Command = 2
Command = ecRight
ShortCut = 39
end
item
Command = 102
Command = ecSelRight
ShortCut = 8231
end
item
Command = 6
Command = ecWordRight
ShortCut = 16423
end
item
Command = 106
Command = ecSelWordRight
ShortCut = 24615
end
item
Command = 10
Command = ecPageDown
ShortCut = 34
end
item
Command = 110
Command = ecSelPageDown
ShortCut = 8226
end
item
Command = 14
Command = ecPageBottom
ShortCut = 16418
end
item
Command = 114
Command = ecSelPageBottom
ShortCut = 24610
end
item
Command = 9
Command = ecPageUp
ShortCut = 33
end
item
Command = 109
Command = ecSelPageUp
ShortCut = 8225
end
item
Command = 13
Command = ecPageTop
ShortCut = 16417
end
item
Command = 113
Command = ecSelPageTop
ShortCut = 24609
end
item
Command = 7
Command = ecLineStart
ShortCut = 36
end
item
Command = 107
Command = ecSelLineStart
ShortCut = 8228
end
item
Command = 15
Command = ecEditorTop
ShortCut = 16420
end
item
Command = 115
Command = ecSelEditorTop
ShortCut = 24612
end
item
Command = 8
Command = ecLineEnd
ShortCut = 35
end
item
Command = 108
Command = ecSelLineEnd
ShortCut = 8227
end
item
Command = 16
Command = ecEditorBottom
ShortCut = 16419
end
item
Command = 116
Command = ecSelEditorBottom
ShortCut = 24611
end
item
Command = 223
Command = ecToggleMode
ShortCut = 45
end
item
Command = 201
Command = ecCopy
ShortCut = 16429
end
item
Command = 604
Command = ecPaste
ShortCut = 8237
end
item
Command = 502
Command = ecDeleteChar
ShortCut = 46
end
item
Command = 603
Command = ecCut
ShortCut = 8238
end
item
Command = 501
Command = ecDeleteLastChar
ShortCut = 8
end
item
Command = 501
Command = ecDeleteLastChar
ShortCut = 8200
end
item
Command = 504
Command = ecDeleteLastWord
ShortCut = 16392
end
item
Command = 601
Command = ecUndo
ShortCut = 32776
end
item
Command = 602
Command = ecRedo
ShortCut = 40968
end
item
Command = 509
Command = ecLineBreak
ShortCut = 13
end
item
Command = 199
Command = ecSelectAll
ShortCut = 16449
end
item
Command = 201
Command = ecCopy
ShortCut = 16451
end
item
Command = 610
Command = ecBlockIndent
ShortCut = 24649
end
item
Command = 509
Command = ecLineBreak
ShortCut = 16461
end
item
Command = 510
Command = ecInsertLine
ShortCut = 16462
end
item
Command = 503
Command = ecDeleteWord
ShortCut = 16468
end
item
Command = 611
Command = ecBlockUnindent
ShortCut = 24661
end
item
Command = 604
Command = ecPaste
ShortCut = 16470
end
item
Command = 603
Command = ecCut
ShortCut = 16472
end
item
Command = 507
Command = ecDeleteLine
ShortCut = 16473
end
item
Command = 506
Command = ecDeleteEOL
ShortCut = 24665
end
item
Command = 601
Command = ecUndo
ShortCut = 16474
end
item
Command = 602
Command = ecRedo
ShortCut = 24666
end
item
Command = 301
Command = ecGotoMarker0
ShortCut = 16432
end
item
Command = 302
Command = ecGotoMarker1
ShortCut = 16433
end
item
Command = 303
Command = ecGotoMarker2
ShortCut = 16434
end
item
Command = 304
Command = ecGotoMarker3
ShortCut = 16435
end
item
Command = 305
Command = ecGotoMarker4
ShortCut = 16436
end
item
Command = 306
Command = ecGotoMarker5
ShortCut = 16437
end
item
Command = 307
Command = ecGotoMarker6
ShortCut = 16438
end
item
Command = 308
Command = ecGotoMarker7
ShortCut = 16439
end
item
Command = 309
Command = ecGotoMarker8
ShortCut = 16440
end
item
Command = 310
Command = ecGotoMarker9
ShortCut = 16441
end
item
Command = 351
Command = ecSetMarker0
ShortCut = 24624
end
item
Command = 352
Command = ecSetMarker1
ShortCut = 24625
end
item
Command = 353
Command = ecSetMarker2
ShortCut = 24626
end
item
Command = 354
Command = ecSetMarker3
ShortCut = 24627
end
item
Command = 355
Command = ecSetMarker4
ShortCut = 24628
end
item
Command = 356
Command = ecSetMarker5
ShortCut = 24629
end
item
Command = 357
Command = ecSetMarker6
ShortCut = 24630
end
item
Command = 358
Command = ecSetMarker7
ShortCut = 24631
end
item
Command = 359
Command = ecSetMarker8
ShortCut = 24632
end
item
Command = 360
Command = ecSetMarker9
ShortCut = 24633
end
item
Command = 231
Command = ecNormalSelect
ShortCut = 24654
end
item
Command = 232
Command = ecColumnSelect
ShortCut = 24643
end
item
Command = 233
Command = ecLineSelect
ShortCut = 24652
end
item
Command = 612
Command = ecTab
ShortCut = 9
end
item
Command = 613
Command = ecShiftTab
ShortCut = 8201
end
item
Command = 250
Command = ecMatchBracket
ShortCut = 24642
end>
MouseActions = <
item
Shift = []
ShiftMask = [ssShift, ssAlt]
Button = mbLeft
ClickCount = ccSingle
ClickDir = cdDown
Command = 1
MoveCaret = True
Option = 0
Priority = 0
end
item
Shift = [ssShift]
ShiftMask = [ssShift, ssAlt]
Button = mbLeft
ClickCount = ccSingle
ClickDir = cdDown
Command = 1
MoveCaret = True
Option = 1
Priority = 0
end
item
Shift = [ssAlt]
ShiftMask = [ssShift, ssAlt]
Button = mbLeft
ClickCount = ccSingle
ClickDir = cdDown
Command = 3
MoveCaret = True
Option = 0
Priority = 0
end
item
Shift = [ssShift, ssAlt]
ShiftMask = [ssShift, ssAlt]
Button = mbLeft
ClickCount = ccSingle
ClickDir = cdDown
Command = 3
MoveCaret = True
Option = 1
Priority = 0
end
item
Shift = []
ShiftMask = []
Button = mbRight
ClickCount = ccSingle
ClickDir = cdUp
Command = 12
MoveCaret = False
Option = 0
Priority = 0
end
item
Shift = []
ShiftMask = []
Button = mbLeft
ClickCount = ccDouble
ClickDir = cdDown
Command = 6
MoveCaret = True
Option = 0
Priority = 0
end
item
Shift = []
ShiftMask = []
Button = mbLeft
ClickCount = ccTriple
ClickDir = cdDown
Command = 7
MoveCaret = True
Option = 0
Priority = 0
end
item
Shift = []
ShiftMask = []
Button = mbLeft
ClickCount = ccQuad
ClickDir = cdDown
Command = 8
MoveCaret = True
Option = 0
Priority = 0
end
item
Shift = []
ShiftMask = []
Button = mbMiddle
ClickCount = ccSingle
ClickDir = cdDown
Command = 10
MoveCaret = True
Option = 0
Priority = 0
end
item
Shift = [ssCtrl]
ShiftMask = [ssShift, ssAlt, ssCtrl]
Button = mbLeft
ClickCount = ccSingle
ClickDir = cdUp
Command = 11
MoveCaret = False
Option = 0
Priority = 0
end>
MouseSelActions = <
item
Shift = []
ShiftMask = []
Button = mbLeft
ClickCount = ccSingle
ClickDir = cdDown
Command = 9
MoveCaret = False
Option = 0
Priority = 0
end>
Lines.Strings = (
'DiffSynEdit'
)
BracketHighlightStyle = sbhsBoth
object TSynGutterPartList
inline TSynGutterPartList
object TSynGutterMarks
Width = 23
end
object TSynGutterLineNumber
Width = 25
MouseActions = <>
MarkupInfo.Background = clBtnFace
MarkupInfo.Foreground = clNone
DigitCount = 2
@ -537,8 +679,88 @@ object DiffDlg: TDiffDlg
Width = 2
end
object TSynGutterCodeFolding
MouseActions = <
item
Shift = []
ShiftMask = []
Button = mbRight
ClickCount = ccSingle
ClickDir = cdUp
Command = 16
MoveCaret = False
Option = 0
Priority = 0
end
item
Shift = []
ShiftMask = [ssShift]
Button = mbMiddle
ClickCount = ccAny
ClickDir = cdDown
Command = 14
MoveCaret = False
Option = 0
Priority = 0
end
item
Shift = [ssShift]
ShiftMask = [ssShift]
Button = mbMiddle
ClickCount = ccAny
ClickDir = cdDown
Command = 14
MoveCaret = False
Option = 1
Priority = 0
end
item
Shift = []
ShiftMask = []
Button = mbLeft
ClickCount = ccAny
ClickDir = cdDown
Command = 0
MoveCaret = False
Option = 0
Priority = 0
end>
MarkupInfo.Background = clNone
MarkupInfo.Foreground = clGray
MouseActionsExpanded = <
item
Shift = []
ShiftMask = []
Button = mbLeft
ClickCount = ccAny
ClickDir = cdDown
Command = 14
MoveCaret = False
Option = 0
Priority = 0
end>
MouseActionsCollapsed = <
item
Shift = [ssCtrl]
ShiftMask = [ssCtrl]
Button = mbLeft
ClickCount = ccAny
ClickDir = cdDown
Command = 15
MoveCaret = False
Option = 0
Priority = 0
end
item
Shift = []
ShiftMask = [ssCtrl]
Button = mbLeft
ClickCount = ccAny
ClickDir = cdDown
Command = 15
MoveCaret = False
Option = 1
Priority = 0
end>
end
end
end
@ -546,10 +768,10 @@ object DiffDlg: TDiffDlg
AnchorSideRight.Control = CloseButton
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 445
Height = 23
Top = 476
Width = 70
Left = 440
Height = 25
Top = 474
Width = 72
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
@ -562,10 +784,10 @@ object DiffDlg: TDiffDlg
AnchorSideRight.Control = SaveDiffButton
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 317
Height = 23
Top = 476
Width = 122
Left = 302
Height = 25
Top = 474
Width = 132
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
@ -579,10 +801,10 @@ object DiffDlg: TDiffDlg
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 521
Left = 518
Height = 26
Top = 473
Width = 71
Width = 74
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
@ -600,7 +822,7 @@ object DiffDlg: TDiffDlg
Left = 6
Height = 26
Top = 473
Width = 66
Width = 70
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Around = 6
@ -624,4 +846,9 @@ object DiffDlg: TDiffDlg
left = 459
top = 12
end
object SynDiffSyn1: TSynDiffSyn
Enabled = False
left = 104
top = 240
end
end

View File

@ -42,7 +42,7 @@ interface
uses
Classes, SysUtils, Math, Forms, Controls, Buttons, StdCtrls, FileUtil,
LazarusIDEStrConsts, EditorOptions, IDEWindowIntf, LCLType,
InputHistory, DiffPatch, ExtCtrls, Dialogs, SynEdit, IDEContextHelpEdit,
InputHistory, DiffPatch, ExtCtrls, Dialogs, SynEdit, SynHighlighterDiff, IDEContextHelpEdit,
SourceEditor;
type
@ -82,6 +82,7 @@ type
DiffSynEdit: TSynEdit;
OpenInEditorButton: TBitBtn;
SaveDiffButton: TBitBtn;
SynDiffSyn1: TSynDiffSyn;
Text1FileOpenButton: TButton;
dlgSave: TSaveDialog;
dlgOpen: TOpenDialog;

View File

@ -3,7 +3,6 @@ object DiskDiffsDlg: TDiskDiffsDlg
Height = 354
Top = 379
Width = 600
ActiveControl = FilesListBox
Caption = 'DiskDiffsDlg'
ClientHeight = 354
ClientWidth = 600
@ -22,12 +21,11 @@ object DiskDiffsDlg: TDiskDiffsDlg
ItemHeight = 0
OnMouseUp = FilesListBoxMouseUp
TabOrder = 0
TopIndex = -1
end
inline DiffSynEdit: TSynEdit
AnchorSideBottom.Control = CheckDiskChangesWithLoadingCheckBox
Left = 6
Height = 182
Height = 189
Top = 97
Width = 588
Align = alTop
@ -67,6 +65,7 @@ object DiskDiffsDlg: TDiskDiffsDlg
Option = 0
Priority = 0
end>
Highlighter = SynDiffSyn1
Keystrokes = <
item
Command = ecUp
@ -521,7 +520,7 @@ object DiskDiffsDlg: TDiskDiffsDlg
Width = 23
end
object SynGutterLineNumber1: TSynGutterLineNumber
Width = 15
Width = 25
MouseActions = <>
MarkupInfo.Background = clBtnFace
MarkupInfo.Foreground = clNone
@ -637,9 +636,9 @@ object DiskDiffsDlg: TDiskDiffsDlg
AnchorSideLeft.Control = Owner
AnchorSideBottom.Control = BtnPanel
Left = 6
Height = 22
Top = 285
Width = 286
Height = 19
Top = 292
Width = 241
Anchors = [akLeft, akBottom]
BorderSpacing.Around = 6
Caption = 'CheckDiskChangesWithLoadingCheckBox'
@ -647,20 +646,20 @@ object DiskDiffsDlg: TDiskDiffsDlg
end
object BtnPanel: TPanel
Left = 0
Height = 41
Top = 313
Height = 37
Top = 317
Width = 600
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 41
ClientHeight = 37
ClientWidth = 600
TabOrder = 4
object RevertAllButton: TButton
Left = 484
Height = 29
Left = 485
Height = 25
Top = 6
Width = 110
Width = 109
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
@ -670,10 +669,10 @@ object DiskDiffsDlg: TDiskDiffsDlg
TabOrder = 0
end
object IgnoreDiskChangesButton: TButton
Left = 300
Height = 29
Left = 315
Height = 25
Top = 6
Width = 178
Width = 164
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
@ -682,4 +681,9 @@ object DiskDiffsDlg: TDiskDiffsDlg
TabOrder = 1
end
end
object SynDiffSyn1: TSynDiffSyn
Enabled = False
left = 135
top = 138
end
end

View File

@ -34,7 +34,7 @@ interface
uses
Classes, SysUtils, LCLProc, Forms, Controls, Buttons, StdCtrls,
SynEdit, LCLType, ComCtrls, ExtCtrls,
SynEdit, SynHighlighterDiff, LCLType, ComCtrls, ExtCtrls,
FileProcs, CodeToolManager, CodeCache, Laz_XMLCfg, Laz_XMLWrite,
Project, DiffPatch, LazarusIDEStrConsts, EnvironmentOpts, EditorOptions,
PackageDefs;
@ -59,6 +59,7 @@ type
RevertAllButton: TButton;
IgnoreDiskChangesButton: TButton;
Splitter: TSplitter;
SynDiffSyn1: TSynDiffSyn;
procedure DiskDiffsDlgKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FilesListBoxMouseUp(Sender: TOBject; Button: TMouseButton;