moved code templates settings to a dialog of its own - it needs more space for the coming makros

git-svn-id: trunk@7601 -
This commit is contained in:
mattias 2005-08-30 20:54:21 +00:00
parent cf73b83525
commit 4f10f5506b
10 changed files with 185 additions and 562 deletions

2
.gitattributes vendored
View File

@ -793,9 +793,9 @@ ide/codeexplopts.pas svneol=native#text/pascal
ide/codeexplorer.lfm svneol=native#text/plain
ide/codeexplorer.lrs svneol=native#text/pascal
ide/codeexplorer.pas svneol=native#text/pascal
ide/codetemplatedialog.pp svneol=native#text/pascal
ide/codetemplatesdlg.lfm svneol=native#text/plain
ide/codetemplatesdlg.lrs svneol=native#text/plain
ide/codetemplatesdlg.pas svneol=native#text/pascal
ide/codetoolsdefines.lrs svneol=native#text/pascal
ide/codetoolsdefines.pas svneol=native#text/pascal
ide/codetoolsdefpreview.lfm svneol=native#text/plain

View File

@ -12,7 +12,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
Width = 596
object FilenameGroupBox: TGroupBox
Align = alTop
BorderSpacing.OnChange = nil
BorderSpacing.Around = 5
Caption = 'FilenameGroupBox'
ClientHeight = 42
@ -25,7 +24,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
Width = 586
object FilenameEdit: TEdit
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
BorderSpacing.Right = 5
TabOrder = 0
Text = 'FilenameEdit'
@ -37,8 +35,8 @@ object CodeTemplateDialog: TCodeTemplateDialog
end
object FilenameButton: TButton
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.OnChange = nil
Caption = '...'
OnClick = FilenameButtonClick
TabOrder = 1
AnchorSideBottom.Control = FilenameEdit
AnchorSideBottom.Side = asrBottom
@ -51,9 +49,9 @@ object CodeTemplateDialog: TCodeTemplateDialog
object OkButton: TButton
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.OnChange = nil
BorderSpacing.Right = 14
Caption = 'OkButton'
OnClick = OkButtonClick
TabOrder = 1
AnchorSideRight.Control = CancelButton
AnchorSideBottom.Control = CancelButton
@ -66,7 +64,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
object CancelButton: TButton
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.OnChange = nil
Caption = 'CancelButton'
ModalResult = 2
TabOrder = 2
@ -78,7 +75,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
object TemplateGroupBox: TGroupBox
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.OnChange = nil
BorderSpacing.Around = 5
Caption = 'TemplateGroupBox'
ClientHeight = 306
@ -93,7 +89,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
object TemplateListBox: TListBox
Align = alLeft
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.OnChange = nil
OnSelectionChange = TemplateListBoxSelectionChange
TabOrder = 0
TopIndex = -1
@ -102,15 +97,12 @@ object CodeTemplateDialog: TCodeTemplateDialog
end
object TemplateSynEdit: TSynEdit
Align = alBottom
BorderSpacing.OnChange = nil
Font.Height = -18
Font.Name = 'courier'
Height = 150
Name = 'TemplateSynEdit'
TabOrder = 1
Width = 582
BookMarkOptions.OnChange = nil
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = ASynPasSyn
Keystrokes = <
@ -437,7 +429,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
Lines.Strings = (
'TemplateSynEdit'
)
SelectedColor.OnChange = nil
Cursor = crIBeam
Height = 150
Top = 156
@ -455,7 +446,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
Width = 582
end
object AddButton: TButton
BorderSpacing.OnChange = nil
Caption = 'AddButton'
OnClick = AddButtonClick
TabOrder = 2
@ -464,7 +454,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
Width = 115
end
object DeleteButton: TButton
BorderSpacing.OnChange = nil
Caption = 'DeleteButton'
OnClick = DeleteButtonClick
TabOrder = 3
@ -474,7 +463,6 @@ object CodeTemplateDialog: TCodeTemplateDialog
Width = 115
end
object EditButton: TButton
BorderSpacing.OnChange = nil
Caption = 'EditButton'
OnClick = EditButtonClick
TabOrder = 4

View File

@ -5,93 +5,88 @@ LazarusResources.Add('TCodeTemplateDialog','FORMDATA',[
+'plateDialog'#12'ClientHeight'#3#176#1#11'ClientWidth'#3'T'#2#8'OnCreate'#7
+#10'FormCreate'#13'PixelsPerInch'#2'p'#18'HorzScrollBar.Page'#3'S'#2#18'Vert'
+'ScrollBar.Page'#3#175#1#4'Left'#3'"'#1#6'Height'#3#176#1#3'Top'#3#163#0#5'W'
+'idth'#3'T'#2#0#9'TGroupBox'#16'FilenameGroupBox'#5'Align'#7#5'alTop'#22'Bor'
+'derSpacing.OnChange'#13#20'BorderSpacing.Around'#2#5#7'Caption'#6#16'Filena'
+'meGroupBox'#12'ClientHeight'#2'*'#11'ClientWidth'#3'F'#2#11'ParentColor'#9#8
+'TabOrder'#2#0#4'Left'#2#5#6'Height'#2';'#3'Top'#2#5#5'Width'#3'J'#2#0#5'TEd'
+'it'#12'FilenameEdit'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'Borde'
+'rSpacing.OnChange'#13#19'BorderSpacing.Right'#2#5#8'TabOrder'#2#0#4'Text'#6
+#12'FilenameEdit'#23'AnchorSideRight.Control'#7#14'FilenameButton'#4'Left'#2
+#9#6'Height'#2#23#3'Top'#2#4#5'Width'#3#19#2#0#0#7'TButton'#14'FilenameButto'
+'n'#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#22'BorderSpacing.OnChange'
+#13#7'Caption'#6#3'...'#8'TabOrder'#2#1#24'AnchorSideBottom.Control'#7#12'Fi'
+'lenameEdit'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'!'#2#6'Heigh'
+'t'#2#23#3'Top'#2#4#5'Width'#2#30#0#0#0#7'TButton'#8'OkButton'#7'Anchors'#11
+#7'akRight'#8'akBottom'#0#8'AutoSize'#9#22'BorderSpacing.OnChange'#13#19'Bor'
+'derSpacing.Right'#2#14#7'Caption'#6#8'OkButton'#8'TabOrder'#2#1#23'AnchorSi'
+'deRight.Control'#7#12'CancelButton'#24'AnchorSideBottom.Control'#7#12'Cance'
+'lButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#147#1#6'Height'
+#2#25#3'Top'#3#141#1#5'Width'#2'['#0#0#7'TButton'#12'CancelButton'#7'Anchors'
+#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#22'BorderSpacing.OnChange'#13#7'C'
+'aption'#6#12'CancelButton'#11'ModalResult'#2#2#8'TabOrder'#2#2#4'Left'#3#252
+#1#6'Height'#2#25#3'Top'#3#141#1#5'Width'#2'K'#0#0#9'TGroupBox'#16'TemplateG'
+'roupBox'#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8
+'akBottom'#0#22'BorderSpacing.OnChange'#13#20'BorderSpacing.Around'#2#5#7'Ca'
+'ption'#6#16'TemplateGroupBox'#12'ClientHeight'#3'2'#1#11'ClientWidth'#3'F'#2
+#11'ParentColor'#9#8'TabOrder'#2#3#24'AnchorSideBottom.Control'#7#12'CancelB'
+'utton'#4'Left'#2#5#6'Height'#3'C'#1#3'Top'#2'E'#5'Width'#3'J'#2#0#8'TListBo'
+'x'#15'TemplateListBox'#5'Align'#7#6'alLeft'#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#8'akBottom'#0#22'BorderSpacing.OnChange'#13#17'OnSelectionChange'
+#7#30'TemplateListBoxSelectionChange'#8'TabOrder'#2#0#8'TopIndex'#2#255#6'He'
+'ight'#3#151#0#5'Width'#3#191#1#0#0#8'TSynEdit'#15'TemplateSynEdit'#5'Align'
+#7#8'alBottom'#22'BorderSpacing.OnChange'#13#11'Font.Height'#2#238#9'Font.Na'
+'me'#6#7'courier'#6'Height'#3#150#0#4'Name'#6#15'TemplateSynEdit'#8'TabOrder'
+#2#1#5'Width'#3'F'#2#24'BookMarkOptions.OnChange'#13#15'Gutter.OnChange'#13
+#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'ASynPasSyn'#10'Keystr'
+'okes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3
+'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'
+#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCu'
+'t'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'
+#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3
+'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3
+''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3
+'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3
+'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3
+'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'!'
+' '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3
+'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$'
+' '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3
+'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'#'
+' '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3
+'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortC'
+'ut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8
+'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245
+#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3
+#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7
+'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2
+#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortC'
+'ut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8
+'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3
+#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Comma'
+'nd'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7
+'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'
,#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3
+'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCu'
+'t'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'Sh'
+'ortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1
+#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3
+'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Comman'
+'d'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'C'
+'ommand'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1
+#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'
+#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3
+'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCu'
+'t'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'S'
+'hortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233
+#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3
+'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#13'Lin'
+'es.Strings'#1#6#15'TemplateSynEdit'#0#22'SelectedColor.OnChange'#13#6'Curso'
+'r'#7#7'crIBeam'#6'Height'#3#150#0#3'Top'#3#156#0#5'Width'#3'F'#2#0#0#9'TSpl'
+'itter'#16'TemplateSplitter'#5'Align'#7#8'alBottom'#6'Cursor'#7#8'crVSplit'#6
+'Height'#2#5#11'ParentColor'#9#5'Width'#3'F'#2#6'Cursor'#7#8'crVSplit'#6'Hei'
+'ght'#2#5#3'Top'#3#151#0#5'Width'#3'F'#2#0#0#7'TButton'#9'AddButton'#22'Bord'
+'erSpacing.OnChange'#13#7'Caption'#6#9'AddButton'#7'OnClick'#7#14'AddButtonC'
+'lick'#8'TabOrder'#2#2#4'Left'#3#201#1#6'Height'#2' '#5'Width'#2's'#0#0#7'TB'
+'utton'#12'DeleteButton'#22'BorderSpacing.OnChange'#13#7'Caption'#6#12'Delet'
+'eButton'#7'OnClick'#7#17'DeleteButtonClick'#8'TabOrder'#2#3#4'Left'#3#201#1
+#6'Height'#2' '#3'Top'#2','#5'Width'#2's'#0#0#7'TButton'#10'EditButton'#22'B'
+'orderSpacing.OnChange'#13#7'Caption'#6#10'EditButton'#7'OnClick'#7#15'EditB'
+'uttonClick'#8'TabOrder'#2#4#4'Left'#3#201#1#6'Height'#2' '#3'Top'#2'\'#5'Wi'
+'dth'#2's'#0#0#0#10'TSynPasSyn'#10'ASynPasSyn'#7'Enabled'#8#4'left'#3#21#1#3
+'top'#3#216#0#0#0#0
+'idth'#3'T'#2#0#9'TGroupBox'#16'FilenameGroupBox'#5'Align'#7#5'alTop'#20'Bor'
+'derSpacing.Around'#2#5#7'Caption'#6#16'FilenameGroupBox'#12'ClientHeight'#2
+'*'#11'ClientWidth'#3'F'#2#11'ParentColor'#9#8'TabOrder'#2#0#4'Left'#2#5#6'H'
+'eight'#2';'#3'Top'#2#5#5'Width'#3'J'#2#0#5'TEdit'#12'FilenameEdit'#7'Anchor'
+'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#5#8'TabOrde'
+'r'#2#0#4'Text'#6#12'FilenameEdit'#23'AnchorSideRight.Control'#7#14'Filename'
+'Button'#4'Left'#2#9#6'Height'#2#23#3'Top'#2#4#5'Width'#3#19#2#0#0#7'TButton'
+#14'FilenameButton'#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#7'Caption'
+#6#3'...'#7'OnClick'#7#19'FilenameButtonClick'#8'TabOrder'#2#1#24'AnchorSide'
+'Bottom.Control'#7#12'FilenameEdit'#21'AnchorSideBottom.Side'#7#9'asrBottom'
+#4'Left'#3'!'#2#6'Height'#2#23#3'Top'#2#4#5'Width'#2#30#0#0#0#7'TButton'#8'O'
+'kButton'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#19'BorderSpac'
+'ing.Right'#2#14#7'Caption'#6#8'OkButton'#7'OnClick'#7#13'OkButtonClick'#8'T'
+'abOrder'#2#1#23'AnchorSideRight.Control'#7#12'CancelButton'#24'AnchorSideBo'
+'ttom.Control'#7#12'CancelButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4
+'Left'#3#147#1#6'Height'#2#25#3'Top'#3#141#1#5'Width'#2'['#0#0#7'TButton'#12
+'CancelButton'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#7'Captio'
+'n'#6#12'CancelButton'#11'ModalResult'#2#2#8'TabOrder'#2#2#4'Left'#3#252#1#6
+'Height'#2#25#3'Top'#3#141#1#5'Width'#2'K'#0#0#9'TGroupBox'#16'TemplateGroup'
+'Box'#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBo'
+'ttom'#0#20'BorderSpacing.Around'#2#5#7'Caption'#6#16'TemplateGroupBox'#12'C'
+'lientHeight'#3'2'#1#11'ClientWidth'#3'F'#2#11'ParentColor'#9#8'TabOrder'#2#3
+#24'AnchorSideBottom.Control'#7#12'CancelButton'#4'Left'#2#5#6'Height'#3'C'#1
+#3'Top'#2'E'#5'Width'#3'J'#2#0#8'TListBox'#15'TemplateListBox'#5'Align'#7#6
+'alLeft'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'OnSele'
+'ctionChange'#7#30'TemplateListBoxSelectionChange'#8'TabOrder'#2#0#8'TopInde'
+'x'#2#255#6'Height'#3#151#0#5'Width'#3#191#1#0#0#8'TSynEdit'#15'TemplateSynE'
+'dit'#5'Align'#7#8'alBottom'#11'Font.Height'#2#238#9'Font.Name'#6#7'courier'
+#6'Height'#3#150#0#4'Name'#6#15'TemplateSynEdit'#8'TabOrder'#2#1#5'Width'#3
+'F'#2#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'ASynPasSyn'#10'K'
+'eystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'Short'
+'Cut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'Sh'
+'ortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8
+'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'S'
+'hortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'S'
+'hortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'S'
+'hortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8
+'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8
+'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8
+'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'S'
+'hortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8
+'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'S'
+'hortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8
+'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'S'
+'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8
+'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201
+#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3
+#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7
+'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8
+#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1
+#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3
+#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
+'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7
+'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X'
+'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
+'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1
+#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3
,'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman'
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
+'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1
+#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'
+#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3
+'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1
+#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3
+#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
+'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7
+'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
+#0#0#13'Lines.Strings'#1#6#15'TemplateSynEdit'#0#6'Cursor'#7#7'crIBeam'#6'He'
+'ight'#3#150#0#3'Top'#3#156#0#5'Width'#3'F'#2#0#0#9'TSplitter'#16'TemplateSp'
+'litter'#5'Align'#7#8'alBottom'#6'Cursor'#7#8'crVSplit'#6'Height'#2#5#11'Par'
+'entColor'#9#5'Width'#3'F'#2#6'Cursor'#7#8'crVSplit'#6'Height'#2#5#3'Top'#3
+#151#0#5'Width'#3'F'#2#0#0#7'TButton'#9'AddButton'#7'Caption'#6#9'AddButton'
+#7'OnClick'#7#14'AddButtonClick'#8'TabOrder'#2#2#4'Left'#3#201#1#6'Height'#2
+' '#5'Width'#2's'#0#0#7'TButton'#12'DeleteButton'#7'Caption'#6#12'DeleteButt'
+'on'#7'OnClick'#7#17'DeleteButtonClick'#8'TabOrder'#2#3#4'Left'#3#201#1#6'He'
+'ight'#2' '#3'Top'#2','#5'Width'#2's'#0#0#7'TButton'#10'EditButton'#7'Captio'
+'n'#6#10'EditButton'#7'OnClick'#7#15'EditButtonClick'#8'TabOrder'#2#4#4'Left'
+#3#201#1#6'Height'#2' '#3'Top'#2'\'#5'Width'#2's'#0#0#0#10'TSynPasSyn'#10'AS'
+'ynPasSyn'#7'Enabled'#8#4'left'#3#21#1#3'top'#3#216#0#0#0#0
]);

View File

@ -24,16 +24,17 @@
A dialog for adding and editing code templates
}
unit CodeTemplateDialog;
unit CodeTemplatesDlg;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
LazarusIDEStrConsts, StdCtrls, Buttons, SynEdit, SynHighlighterPas, ExtCtrls,
EditorOptions, SynCompletion;
Classes, SysUtils, LCLProc, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, SynEdit, SynHighlighterPas, ExtCtrls,
SynEditAutoComplete, InputHistory,
LazarusIDEStrConsts, EditorOptions;
type
@ -56,7 +57,9 @@ type
procedure AddButtonClick(Sender: TObject);
procedure DeleteButtonClick(Sender: TObject);
procedure EditButtonClick(Sender: TObject);
procedure FilenameButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure OkButtonClick(Sender: TObject);
procedure TemplateListBoxSelectionChange(Sender: TObject; User: boolean);
private
SynAutoComplete: TSynEditAutoComplete;
@ -292,6 +295,8 @@ end;
{ TCodeTemplateDialog }
procedure TCodeTemplateDialog.FormCreate(Sender: TObject);
var
s: String;
begin
SynAutoComplete:=TSynEditAutoComplete.Create(Self);
@ -316,17 +321,48 @@ begin
end;
end;
FillCodeTemplateListBox;
with CodeTemplateListBox do
with TemplateListBox do
if Items.Count>0 then begin
Selected[0]:=true;
ItemIndex:=0;
ShowCurCodeTemplate;
end;
end;
procedure TCodeTemplateDialog.OkButtonClick(Sender: TObject);
var
Res: TModalResult;
begin
SaveCurCodeTemplate;
EditorOpts.CodeTemplateFileName:=FilenameEdit.Text;
//EditorOpts.CodeTemplateIndentToTokenStart:=
// (CodeTemplateIndentTypeRadioGroup.ItemIndex=0);
EditorOpts.Save;
if BuildBorlandDCIFile(SynAutoComplete) then begin
Res:=mrOk;
repeat
try
SynAutoComplete.AutoCompleteList.SaveToFile(
EditorOpts.CodeTemplateFileName);
except
res:=MessageDlg(' Unable to write code templates to file '''
+EditorOpts.CodeTemplateFileName+'''! ',mtError
,[mbAbort, mbIgnore, mbRetry],0);
if res=mrAbort then exit;
end;
until Res<>mrRetry;
end;
ModalResult:=mrOk;
end;
procedure TCodeTemplateDialog.AddButtonClick(Sender: TObject);
var
Token: String;
Comment: String;
Index: LongInt;
begin
SaveCurCodeTemplate;
Token:='new';
@ -354,25 +390,45 @@ begin
+'?',mtConfirmation,[mbOk,mbCancel],0)=mrOK then begin
SynAutoComplete.DeleteCompletion(i);
FillCodeTemplateListBox;
if (i>=0) and (i<CodeTemplateListBox.Items.Count) then begin
CodeTemplateListBox.ItemIndex:=i;
if (i>=0) and (i<TemplateListBox.Items.Count) then begin
TemplateListBox.ItemIndex:=i;
end;
ShowCurCodeTemplate;
end;
end;
procedure TCodeTemplateDialog.EditButtonClick(Sender: TObject);
var
i: LongInt;
begin
i:=TemplateListBox.ItemIndex;
if i<0 then exit;
if EditCodeTemplate(SynAutoComplete,i)=mrOk then begin
CodeTemplateListBox.Items[i]:=
TemplateListBox.Items[i]:=
SynAutoComplete.Completions[i]
+' - "'+SynAutoComplete.CompletionComments[i]+'"';
ShowCurCodeTemplate;
end;
end;
procedure TCodeTemplateDialog.FilenameButtonClick(Sender: TObject);
var OpenDialog:TOpenDialog;
begin
OpenDialog:=TOpenDialog.Create(nil);
try
InputHistories.ApplyFileDialogSettings(OpenDialog);
with OpenDialog do begin
Title:=dlgChsCodeTempl;
Filter:='DCI file (*.dci)|*.dci|'+dlgAllFiles+'|*.*';
if Execute then
FilenameEdit.Text:=FileName;
end;
InputHistories.StoreFileDialogSettings(OpenDialog);
finally
OpenDialog.Free;
end;
end;
procedure TCodeTemplateDialog.TemplateListBoxSelectionChange(Sender: TObject;
User: boolean);
begin
@ -403,7 +459,6 @@ begin
TemplateSynEdit.Lines.Clear;
i:=TemplateListBox.ItemIndex;
if i>=0 then begin
CurCodeTemplate:=i;
s:=SynAutoComplete.CompletionValues[i];
sp:=1;
ep:=1;
@ -431,7 +486,7 @@ var
begin
i:=TemplateListBox.ItemIndex;
if i<0 then exit;
NewValue:=CodeTemplateCodePreview.Lines.Text;
NewValue:=TemplateSynEdit.Lines.Text;
// remove last EOL
if NewValue<>'' then begin
l:=length(NewValue);

View File

@ -42,7 +42,7 @@ uses
SynHighlighterLFM, SynHighlighterPerl, SynHighlighterJava,
SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterPHP,
Laz_XMLCfg, IDEWindowIntf,
IDECommands, CodeTemplateDialog, KeyMapping, InputHistory, IDEOptionDefs,
IDECommands, KeyMapping, InputHistory, IDEOptionDefs,
LazarusIDEStrConsts, KeymapSchemeDlg;
type
@ -386,19 +386,6 @@ type
AutoDelayTrackBar:TTrackBar;
AutoDelayMinLabel:TLabel;
AutoDelayMaxLabel:TLabel;
CodeTemplatesGroupBox:TGroupBox;
CodeTemplateFileNameLabel:TLabel;
CodeTemplateFileNameComboBox:TComboBox;
CodeTemplateFileNameButton:TButton;
CodeTemplatesLabel:TLabel;
CodeTemplateListBox:TListBox;
CodeTemplateAddButton:TButton;
CodeTemplateEditButton:TButton;
CodeTemplateDeleteButton:TButton;
CodeTemplateCodeLabel:TLabel;
CodeTemplateCodePreview:TPreviewEditor;
CodeTemplateIndentTypeRadioGroup: TRadioGroup;
SynAutoComplete:TSynEditAutoComplete;
// buttons at bottom
OkButton:TButton;
@ -436,11 +423,6 @@ type
procedure SetAllAttributesToDefaultButtonClick(Sender: TObject);
// code tools
procedure CodeTemplateListBoxMouseUp(Sender:TObject;
Button:TMouseButton; Shift:TShiftState; X,Y:integer);
procedure CodeTemplateFileNameButtonClick(Sender:TObject);
procedure CodeTemplateButtonClick(Sender:TObject);
procedure CodeTemplatesGroupBoxResize(Sender: TObject);
// buttons at bottom
procedure OkButtonClick(Sender:TObject);
@ -448,10 +430,9 @@ type
private
FormCreating: boolean;
PreviewSyn: TCustomSyn;
PreviewEdits:array[1..3] of TPreviewEditor;
PreviewEdits:array[1..2] of TPreviewEditor;
CurLanguageID: integer; // current index in EditorOpts.EditOptHighlighterList
CurHighlightElement: TSynHighlightElement;
CurCodeTemplate: integer;
UpdatingColor: boolean;
fHighlighterList: TStringList; // list of "ColorScheme" Data=TCustomSyn
fColorSchemes: TStringList; // list of LanguageName=ColorScheme
@ -501,9 +482,6 @@ type
// code tools
procedure SetupCodeToolsPage;
procedure ResizeCodeToolsPage;
procedure FillCodeTemplateListBox;
procedure ShowCurCodeTemplate;
procedure SaveCurCodeTemplate;
public
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;
@ -534,6 +512,8 @@ function ShowEditorOptionsDialog:TModalResult;
function StrToLazSyntaxHighlighter(const s: string): TLazSyntaxHighlighter;
function ExtensionToLazSyntaxHighlighter(Ext:string): TLazSyntaxHighlighter;
function BuildBorlandDCIFile(
ACustomSynAutoComplete: TCustomSynAutoComplete):boolean;
implementation
@ -639,7 +619,7 @@ begin
if Value[ep] in [#10,#13] then begin
sl.Add(copy(Value,sp,ep-sp));
inc(ep);
if (ep<=length(Value)) and (Value[ep] in [#10,#13])
if (ep<=length(Value)) and (Value[ep] in [#10,#13])
and (Value[ep]<>Value[ep-1]) then inc(ep);
sp:=ep;
end else inc(ep);
@ -2191,8 +2171,6 @@ begin
IDEDialogLayoutList.ApplyLayout(Self,480,480);
OnResize:=@EditorOptionsFormResize;
SynAutoComplete:=TSynEditAutoComplete.Create(Self);
MainNoteBook:=TNoteBook.Create(Self);
with MainNoteBook do
begin
@ -2248,7 +2226,6 @@ begin
PreviewEdits[1]:=DisplayPreview;
PreviewEdits[2]:=ColorPreview;
PreviewEdits[3]:=CodeTemplateCodePreview;
for a:=Low(PreviewEdits) to High(PreviewEdits) do
begin
if PreviewEdits[a]<>nil then
@ -2267,7 +2244,6 @@ begin
end;
end;
end;
CodeTemplateCodePreview.Gutter.Visible:=false;
// general options
@ -2286,26 +2262,7 @@ begin
ShowCurAttribute;
// code Tools options
with SynAutoComplete do begin
s:=EditorOpts.CodeTemplateFileName;
if FileExists(s) then
try
AutoCompleteList.LoadFromFile(s);
except
DebugLn('NOTE: unable to read code template file ''',s,'''');
end;
end;
FillCodeTemplateListBox;
with CodeTemplateListBox do
if Items.Count>0 then begin
Selected[0]:=true;
ShowCurCodeTemplate;
end;
if EditorOpts.CodeTemplateIndentToTokenStart then
CodeTemplateIndentTypeRadioGroup.ItemIndex:=0
else
CodeTemplateIndentTypeRadioGroup.ItemIndex:=1;
MainNoteBook.PageIndex:=0;
FormCreating:=false;
@ -2324,83 +2281,6 @@ end;
// general
procedure TEditorOptionsForm.CodeTemplatesGroupBoxResize(Sender: TObject);
begin
with CodeTemplateFileNameLabel do begin
Top:=5;
Left:=7;
Width:=110;
end;
with CodeTemplateFileNameComboBox do begin
Top:=3;
Left:=CodeTemplateFileNameLabel.Left+CodeTemplateFileNameLabel.Width+2;
Width:=CodeTemplatesGroupBox.Width-12-Left-Height;
end;
with CodeTemplateFileNameButton do begin
Top:=CodeTemplateFileNameComboBox.Top+2;
Width:=CodeTemplateFileNameComboBox.Height-5;
Left:=CodeTemplatesGroupBox.Width-9-Width;
Height:=Width;
end;
with CodeTemplateAddButton do begin
Top:=CodeTemplateFileNameComboBox.Top+CodeTemplateFileNameComboBox.Height+10;
Width:=50;
Left:=CodeTemplateFileNameLabel.Left;
Height:=23;
end;
with CodeTemplateEditButton do begin
Top:=CodeTemplateAddButton.Top+CodeTemplateAddButton.Height+5;
Left:=CodeTemplateAddButton.Left;
Width:=CodeTemplateAddButton.Width;
Height:=CodeTemplateAddButton.Height;
end;
with CodeTemplateDeleteButton do begin
Top:=CodeTemplateEditButton.Top+CodeTemplateEditButton.Height+5;
Left:=CodeTemplateAddButton.Left;
Width:=CodeTemplateAddButton.Width;
Height:=CodeTemplateAddButton.Height;
end;
with CodeTemplatesLabel do begin
Top:=CodeTemplateFileNameLabel.Top+CodeTemplateFileNameLabel.Height+12;
Left:=CodeTemplateAddButton.Left+CodeTemplateAddButton.Width+5;
Width:=60;
end;
with CodeTemplateListBox do begin
Top:=CodeTemplatesLabel.Top;
Left:=CodeTemplatesLabel.Left+CodeTemplatesLabel.Width+5;
Width:=Parent.ClientWidth-8-Left;
Height:=80;
end;
with CodeTemplateCodeLabel do begin
Top:=CodeTemplateListBox.Top+CodeTemplateListBox.Height+5;
Left:=CodeTemplatesLabel.Left;
Width:=CodeTemplatesLabel.Width;
Height:=CodeTemplatesLabel.Height;
end;
with CodeTemplateCodePreview do begin
Top:=CodeTemplateCodeLabel.Top;
Left:=CodeTemplateCodeLabel.Left+CodeTemplateCodeLabel.Width+5;
Width:=CodeTemplateListBox.Width;
Height:=CodeTemplatesGroupBox.ClientHeight-Top;
end;
with CodeTemplateIndentTypeRadioGroup do begin
Left:=CodeTemplateAddButton.Left;
Top:=CodeTemplateCodeLabel.Top+CodeTemplateCodeLabel.Height+15;
Width:=CodeTemplateCodePreview.Left-Left-8;
Height:=70;
end;
end;
procedure TEditorOptionsForm.EditorOptionsFormResize(Sender: TObject);
begin
with MainNoteBook do begin
@ -3254,147 +3134,6 @@ begin
end;
end;
procedure TEditorOptionsForm.ShowCurCodeTemplate;
var i,sp,ep:integer;
s:ansistring;
begin
CodeTemplateCodePreview.Lines.BeginUpdate;
CodeTemplateCodePreview.Lines.Clear;
i:=0;
while i<CodeTemplateListBox.Items.Count do begin
if CodeTemplateListBox.Selected[i] then begin
CurCodeTemplate:=i;
s:=SynAutoComplete.CompletionValues[i];
sp:=1;
ep:=1;
while ep<=length(s) do begin
if s[ep] in [#10,#13] then begin
CodeTemplateCodePreview.Lines.Add(copy(s,sp,ep-sp));
inc(ep);
if (ep<=length(s)) and (s[ep] in [#10,#13]) and (s[ep-1]<>s[ep]) then
inc(ep);
sp:=ep;
end else inc(ep);
end;
if (ep>sp) or ((s<>'') and (s[length(s)] in [#10,#13])) then
CodeTemplateCodePreview.Lines.Add(copy(s,sp,ep-sp));
break;
end;
inc(i);
end;
CodeTemplateCodePreview.Lines.EndUpdate;
CodeTemplateCodePreview.Invalidate;
end;
procedure TEditorOptionsForm.SaveCurCodeTemplate;
var
NewValue: string;
l: integer;
begin
if CurCodeTemplate<0 then exit;
NewValue:=CodeTemplateCodePreview.Lines.Text;
// remove last end EOL
if NewValue<>'' then begin
l:=length(NewValue);
if NewValue[l] in [#10,#13] then begin
dec(l);
if (l>0) and (NewValue[l] in [#10,#13])
and (NewValue[l]<>NewValue[l+1]) then
dec(l);
SetLength(NewValue,l);
end;
end;
SynAutoComplete.CompletionValues[CurCodeTemplate]:=NewValue;
end;
procedure TEditorOptionsForm.FillCodeTemplateListBox;
var a:integer;
begin
with CodeTemplateListBox do begin
Items.BeginUpdate;
Items.Clear;
for a:=0 to SynAutoComplete.Completions.Count-1 do begin
Items.Add(SynAutoComplete.Completions[a]
+' - "'+SynAutoComplete.CompletionComments[a]+'"');
end;
Items.EndUpdate;
end;
end;
procedure TEditorOptionsForm.CodeTemplateListBoxMouseUp(Sender:TObject;
Button:TMouseButton; Shift:TShiftState; X,Y:integer);
begin
SaveCurCodeTemplate;
ShowCurCodeTemplate;
end;
procedure TEditorOptionsForm.CodeTemplateButtonClick(Sender:TObject);
var Token,Comment:ansistring;
Index:integer;
begin
SaveCurCodeTemplate;
if Sender=CodeTemplateAddButton then begin
Token:='new';
Comment:='(custom)';
CurCodeTemplate:=-1;
if AddCodeTemplate(SynAutoComplete,Token,Comment)=mrOk then begin
SynAutoComplete.AddCompletion(Token, '', Comment);
FillCodeTemplateListBox;
Index:=SynAutoComplete.Completions.IndexOf(Token);
if (Index>=0) and (Index<CodeTemplateListBox.Items.Count) then begin
CodeTemplateListBox.Selected[Index]:=true;
CodeTemplateListBox.ItemIndex:=Index;
end;
ShowCurCodeTemplate;
end;
end else if Sender=CodeTemplateEditButton then begin
Index:=CurCodeTemplate;
if Index<CodeTemplateListBox.Items.Count then begin
if EditCodeTemplate(SynAutoComplete,Index)=mrOk then begin
CodeTemplateListBox.Items[Index]:=
SynAutoComplete.Completions[Index]
+' - "'+SynAutoComplete.CompletionComments[Index]+'"';
ShowCurCodeTemplate;
end;
end;
end else if Sender=CodeTemplateDeleteButton then begin
if CurCodeTemplate>=0 then begin
if MessageDlg(dlgDelTemplate
+'"'+SynAutoComplete.Completions[CurCodeTemplate]+' - '
+SynAutoComplete.CompletionComments[CurCodeTemplate]+'"'
+'?',mtConfirmation,[mbOk,mbCancel],0)=mrOK then begin
SynAutoComplete.DeleteCompletion(CurCodeTemplate);
dec(CurCodeTemplate);
FillCodeTemplateListBox;
if (CurCodeTemplate>=0)
and (CurCodeTemplate<CodeTemplateListBox.Items.Count) then begin
CodeTemplateListBox.Selected[CurCodeTemplate]:=true;
CodeTemplateListBox.ItemIndex:=CurCodeTemplate;
end;
ShowCurCodeTemplate;
end;
end;
end;
end;
procedure TEditorOptionsForm.CodeTemplateFileNameButtonClick(Sender:TObject);
var OpenDialog:TOpenDialog;
begin
OpenDialog:=TOpenDialog.Create(nil);
try
InputHistories.ApplyFileDialogSettings(OpenDialog);
with OpenDialog do begin
Title:=dlgChsCodeTempl;
Filter:='DCI file (*.dci)|*.dci|'+dlgAllFiles+'|*.*';
if Execute then
CodeTemplateFileNameComboBox.Text:=FileName;
end;
InputHistories.StoreFileDialogSettings(OpenDialog);
finally
OpenDialog.Free;
end;
end;
// useful functions
procedure TEditorOptionsForm.SetComboBoxText(AComboBox:TComboBox;
@ -4787,159 +4526,12 @@ begin
Width:=70;
Caption:='1.5 '+ dlgTimeSecondUnit;
end;
CodeTemplatesGroupBox:=TGroupBox.Create(Self);
with CodeTemplatesGroupBox do begin
Name:='CodeTemplatesGroupBox';
Parent:=MainNoteBook.Page[4];
Top:=AutomaticFeaturesGroupBox.Top+AutomaticFeaturesGroupBox.Height+5;
Left:=AutomaticFeaturesGroupBox.Left;
Width:=AutomaticFeaturesGroupBox.Width;
Height:=250;
Caption:=dlgEdCodeTempl;
OnResize:=@CodeTemplatesGroupBoxResize;
end;
CodeTemplateFileNameLabel:=TLabel.Create(Self);
with CodeTemplateFileNameLabel do begin
Name:='CodeTemplateFileNameLabel';
Parent:=CodeTemplatesGroupBox;
Top:=5;
Left:=7;
Width:=110;
Caption:=dlgTplFName;
end;
CodeTemplateFileNameComboBox:=TComboBox.Create(Self);
with CodeTemplateFileNameComboBox do begin
Name:='CodeTemplateFileNameComboBox';
Parent:=CodeTemplatesGroupBox;
Top:=3;
Left:=CodeTemplateFileNameLabel.Left+CodeTemplateFileNameLabel.Width+2;
Width:=CodeTemplatesGroupBox.Width-12-Left-Height;
Text:=EditorOpts.CodeTemplateFileName;
OnChange:=@ComboBoxOnChange;
OnKeyDown:=@ComboBoxOnKeyDown;
OnExit:=@ComboBoxOnExit;
end;
CodeTemplateFileNameButton:=TButton.Create(Self);
with CodeTemplateFileNameButton do begin
Name:='CodeTemplateFileNameButton';
Parent:=CodeTemplatesGroupBox;
Top:=CodeTemplateFileNameComboBox.Top+2;
Width:=CodeTemplateFileNameComboBox.Height-5;
Left:=CodeTemplatesGroupBox.Width-9-Width;
Height:=Width;
Caption:='...';
OnClick:=@CodeTemplateFileNameButtonClick;
end;
CodeTemplateAddButton:=TButton.Create(Self);
with CodeTemplateAddButton do begin
Name:='CodeTemplateAddButton';
Parent:=CodeTemplatesGroupBox;
Top:=CodeTemplateFileNameComboBox.Top+CodeTemplateFileNameComboBox.Height+10;
Width:=50;
Left:=CodeTemplateFileNameLabel.Left;
Height:=23;
Caption:=dlgEdAdd;
OnClick:=@CodeTemplateButtonClick;
end;
CodeTemplateEditButton:=TButton.Create(Self);
with CodeTemplateEditButton do begin
Name:='CodeTemplateEditButton';
Parent:=CodeTemplatesGroupBox;
Top:=CodeTemplateAddButton.Top+CodeTemplateAddButton.Height+5;
Left:=CodeTemplateAddButton.Left;
Width:=CodeTemplateAddButton.Width;
Height:=CodeTemplateAddButton.Height;
Caption:=dlgEdEdit;
OnClick:=@CodeTemplateButtonClick;
end;
CodeTemplateDeleteButton:=TButton.Create(Self);
with CodeTemplateDeleteButton do begin
Name:='CodeTemplateDeleteButton';
Parent:=CodeTemplatesGroupBox;
Top:=CodeTemplateEditButton.Top+CodeTemplateEditButton.Height+5;
Left:=CodeTemplateAddButton.Left;
Width:=CodeTemplateAddButton.Width;
Height:=CodeTemplateAddButton.Height;
Caption:=dlgEdDelete;
OnClick:=@CodeTemplateButtonClick;
end;
CodeTemplatesLabel:=TLabel.Create(Self);
with CodeTemplatesLabel do begin
Name:='CodeTemplatesLabel';
Parent:=CodeTemplatesGroupBox;
Top:=CodeTemplateFileNameLabel.Top+CodeTemplateFileNameLabel.Height+12;
Left:=CodeTemplateAddButton.Left+CodeTemplateAddButton.Width+5;
Width:=60;
Caption:='Templates';
end;
CodeTemplateListBox:=TListBox.Create(Self);
with CodeTemplateListBox do begin
Name:='CodeTemplateListBox';
Parent:=CodeTemplatesGroupBox;
Top:=CodeTemplatesLabel.Top;
Left:=CodeTemplatesLabel.Left+CodeTemplatesLabel.Width+5;
Width:=Parent.ClientWidth-8-Left;
Height:=80;
OnMouseUp:=@CodeTemplateListBoxMouseUp;
end;
CodeTemplateCodeLabel:=TLabel.Create(Self);
with CodeTemplateCodeLabel do begin
Name:='CodeTemplateCodeLabel';
Parent:=CodeTemplatesGroupBox;
Top:=CodeTemplateListBox.Top+CodeTemplateListBox.Height+5;
Left:=CodeTemplatesLabel.Left;
Width:=CodeTemplatesLabel.Width;
Height:=CodeTemplatesLabel.Height;
Caption:='Code';
end;
CodeTemplateCodePreview:=TPreviewEditor.Create(Self);
with CodeTemplateCodePreview do begin
Name:='CodeTemplateCodePreview';
Parent:=CodeTemplatesGroupBox;
Top:=CodeTemplateCodeLabel.Top;
Left:=CodeTemplateCodeLabel.Left+CodeTemplateCodeLabel.Width+5;
Width:=CodeTemplateListBox.Width;
Height:=CodeTemplatesGroupBox.ClientHeight-20-Top;
Lines.Clear;
Gutter.Visible:=false;
end;
CodeTemplateIndentTypeRadioGroup:=TRadioGroup.Create(Self);
with CodeTemplateIndentTypeRadioGroup do begin
Name:='CodeTemplateIndentTypeRadioGroup';
Parent:=CodeTemplatesGroupBox;
Left:=CodeTemplateAddButton.Left;
Top:=CodeTemplateCodeLabel.Top+CodeTemplateCodeLabel.Height+15;
Width:=CodeTemplateCodePreview.Left-Left-8;
Height:=70;
Caption:=dlgIndentCodeTo;
with Items do begin
BeginUpdate;
Add('Token start');
Add('Line start');
EndUpdate;
end;
end;
CurCodeTemplate:=-1;
end;
procedure TEditorOptionsForm.ResizeCodeToolsPage;
var MaxX, MaxY:integer;
var MaxX:integer;
begin
MaxX:=Width-5;
MaxY:=ClientHeight-76;
with AutomaticFeaturesGroupBox do begin
Top:=5;
@ -5004,13 +4596,6 @@ begin
Left:=AutoDelayTrackBar.Left+AutoDelayTrackBar.Width-30;
Width:=70;
end;
with CodeTemplatesGroupBox do begin
Top:=AutomaticFeaturesGroupBox.Top+AutomaticFeaturesGroupBox.Height+5;
Left:=AutomaticFeaturesGroupBox.Left;
Width:=AutomaticFeaturesGroupBox.Width;
Height:=MaxY-Top-10;
end;
end;
procedure TEditorOptionsForm.SetupButtonBar;
@ -5059,13 +4644,12 @@ begin
end;
procedure TEditorOptionsForm.OkButtonClick(Sender:TObject);
var res: TModalResult;
var
SynOptions: TSynEditorOptions;
i: integer;
begin
IDEDialogLayoutList.SaveLayout(Self);
SaveCurCodeTemplate;
// save all values
EditorOpts.KeyMap.Assign(EditingKeyMap);
SynOptions:=PreviewEdits[1].Options-[eoNoSelection,eoNoCaret];
@ -5112,27 +4696,9 @@ begin
EditorOpts.AutoToolTipExprEval:=AutoToolTipExprEvalCheckBox.Checked;
EditorOpts.AutoToolTipSymbTools:=AutoToolTipSymbToolsCheckBox.Checked;
EditorOpts.AutoDelayInMSec:=AutoDelayTrackBar.Position*250;
EditorOpts.CodeTemplateFileName:=CodeTemplateFileNameComboBox.Text;
EditorOpts.CodeTemplateIndentToTokenStart:=
(CodeTemplateIndentTypeRadioGroup.ItemIndex=0);
EditorOpts.Save;
if BuildBorlandDCIFile(SynAutoComplete) then begin
Res:=mrOk;
repeat
try
SynAutoComplete.AutoCompleteList.SaveToFile(
EditorOpts.CodeTemplateFileName);
except
res:=MessageDlg(' Unable to write code templates to file '''
+EditorOpts.CodeTemplateFileName+'''! ',mtError
,[mbAbort, mbIgnore, mbRetry],0);
if res=mrAbort then exit;
end;
until Res<>mrRetry;
end;
ModalResult:=mrOk;
end;

View File

@ -240,9 +240,10 @@ const
ecConfigBuildLazarus = ecUserFirst + 803;
ecEnvironmentOptions = ecUserFirst + 804;
ecEditorOptions = ecUserFirst + 805;
ecCodeToolsOptions = ecUserFirst + 806;
ecCodeToolsDefinesEd = ecUserFirst + 807;
ecRescanFPCSrcDir = ecUserFirst + 808;
ecEditCodeTemplates = ecUserFirst + 806;
ecCodeToolsOptions = ecUserFirst + 807;
ecCodeToolsDefinesEd = ecUserFirst + 808;
ecRescanFPCSrcDir = ecUserFirst + 809;
// help menu
ecAboutLazarus = ecUserFirst + 900;
@ -708,6 +709,7 @@ begin
// environment menu
ecEnvironmentOptions: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecEditorOptions: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecEditCodeTemplates: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecCodeToolsOptions: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecCodeToolsDefinesEd: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecRescanFPCSrcDir: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
@ -1014,6 +1016,7 @@ begin
// environment menu
ecEnvironmentOptions: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecEditorOptions: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecEditCodeTemplates: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecCodeToolsOptions: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecCodeToolsDefinesEd: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecRescanFPCSrcDir: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
@ -1579,7 +1582,8 @@ begin
// environment menu
ecEnvironmentOptions : Result:= srkmecEnvironmentOptions;
ecEditorOptions : Result:= lismenueditoroptions;
ecEditorOptions : Result:= lisMenuEditorOptions;
ecEditCodeTemplates : Result:= lisMenuEditCodeTemplates;
ecCodeToolsOptions : Result:= srkmecCodeToolsOptions;
ecCodeToolsDefinesEd : Result:= srkmecCodeToolsDefinesEd;
ecRescanFPCSrcDir : Result:= lisMenuRescanFPCSourceDirectory;
@ -2488,6 +2492,7 @@ begin
C:=Categories[AddCategory('EnvironmentMenu',srkmCatEnvMenu,caAll)];
AddDefault(C,'General environment options',ecEnvironmentOptions);
AddDefault(C,'Editor options',ecEditorOptions);
AddDefault(C,'Edit Code Templates',ecEditCodeTemplates);
AddDefault(C,'CodeTools options',ecCodeToolsOptions);
AddDefault(C,'CodeTools defines editor',ecCodeToolsDefinesEd);
AddDefault(C,'Rescan FPC source directory',ecRescanFPCSrcDir);

View File

@ -271,6 +271,7 @@ resourcestring
lisMenuGeneralOptions = 'Environment options';
lisMenuEditorOptions = 'Editor options';
lisMenuEditCodeTemplates = 'Code Templates';
lisMenDebuggerOptions = 'Debugger Options';
lisMenuCodeToolsOptions = 'CodeTools options';
lisMenuCodeToolsDefinesEditor = 'CodeTools defines editor';

View File

@ -107,6 +107,7 @@ uses
ViewUnit_dlg,
// rest of the ide
Splash, IDEDefs, LazarusIDEStrConsts, LazConf, MsgView, SearchResultView,
CodeTemplatesDlg,
PublishModule, EnvironmentOpts, TransferMacros, KeyMapping, Translations,
IDEProcs, ExtToolDialog, ExtToolEditDlg, MacroPromptDlg, OutputFilter,
BuildLazDialog, MiscOptions, InputHistory, UnitDependencies, ClipBoardHistory,
@ -269,6 +270,7 @@ type
// environment menu
procedure mnuEnvGeneralOptionsClicked(Sender: TObject);
procedure mnuEnvEditorOptionsClicked(Sender: TObject);
procedure mnuEnvCodeTemplatesClicked(Sender: TObject);
procedure mnuEnvCodeToolsOptionsClicked(Sender: TObject);
procedure mnuEnvCodeToolsDefinesEditorClicked(Sender: TObject);
procedure mnuEnvRescanFPCSrcDirClicked(Sender: TObject);
@ -1922,6 +1924,7 @@ begin
with MainIDEBar do begin
itmEnvGeneralOptions.OnClick := @mnuEnvGeneralOptionsClicked;
itmEnvEditorOptions.OnClick := @mnuEnvEditorOptionsClicked;
itmEnvCodeTemplates.OnClick := @mnuEnvCodeTemplatesClicked;
itmEnvCodeToolsOptions.OnClick := @mnuEnvCodeToolsOptionsClicked;
itmEnvCodeToolsDefinesEditor.OnClick := @mnuEnvCodeToolsDefinesEditorClicked;
itmEnvRescanFPCSrcDir.OnClick := @mnuEnvRescanFPCSrcDirClicked;
@ -3282,6 +3285,12 @@ Begin
end;
End;
procedure TMainIDE.mnuEnvCodeTemplatesClicked(Sender: TObject);
begin
if ShowCodeTemplateDialog=mrOk then
SourceNotebook.ReloadEditorOptions;
end;
procedure TMainIDE.mnuEnvCodeToolsOptionsClicked(Sender: TObject);
begin
ShowCodeToolsOptions(CodeToolsOpts,@SourceNoteBook.GetSynEditPreviewSettings);

View File

@ -255,6 +255,7 @@ type
// environment menu
itmEnvGeneralOptions: TMenuItem;
itmEnvEditorOptions: TMenuItem;
itmEnvCodeTemplates: TMenuItem;
itmEnvDebuggerOptions: TMenuItem;
itmEnvCodeToolsOptions: TMenuItem;
itmEnvCodeToolsDefinesEditor: TMenuItem;

View File

@ -677,6 +677,8 @@ begin
lisMenuGeneralOptions,'menu_environmentoptions');
CreateMenuItem(ParentMI,itmEnvEditorOptions,'itmEnvEditorOptions',
lisMenuEditorOptions,'menu_editoroptions');
CreateMenuItem(ParentMI,itmEnvCodeTemplates,'itmEnvCodeTemplates',
lisMenuEditCodeTemplates,'');
CreateMenuItem(ParentMI,itmEnvDebuggerOptions,'itmEnvDebuggerOptions',
lisMenDebuggerOptions,'');
CreateMenuItem(ParentMI,itmEnvCodeToolsOptions,'itmEnvCodeToolsOptions',
@ -862,6 +864,7 @@ begin
// environment menu
itmEnvGeneralOptions.ShortCut:=CommandToShortCut(ecEnvironmentOptions);
itmEnvEditorOptions.ShortCut:=CommandToShortCut(ecEditorOptions);
itmEnvCodeTemplates.ShortCut:=CommandToShortCut(ecEditCodeTemplates);
itmEnvCodeToolsOptions.ShortCut:=CommandToShortCut(ecCodeToolsOptions);
itmEnvCodeToolsDefinesEditor.ShortCut:=CommandToShortCut(ecCodeToolsDefinesEd);
itmEnvRescanFPCSrcDir.ShortCut:=CommandToShortCut(ecRescanFPCSrcDir);