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.lfm svneol=native#text/plain
ide/codeexplorer.lrs svneol=native#text/pascal ide/codeexplorer.lrs svneol=native#text/pascal
ide/codeexplorer.pas 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.lfm svneol=native#text/plain
ide/codetemplatesdlg.lrs 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.lrs svneol=native#text/pascal
ide/codetoolsdefines.pas svneol=native#text/pascal ide/codetoolsdefines.pas svneol=native#text/pascal
ide/codetoolsdefpreview.lfm svneol=native#text/plain ide/codetoolsdefpreview.lfm svneol=native#text/plain

View File

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

View File

@ -24,16 +24,17 @@
A dialog for adding and editing code templates A dialog for adding and editing code templates
} }
unit CodeTemplateDialog; unit CodeTemplatesDlg;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, LCLProc, LResources, Forms, Controls, Graphics, Dialogs,
LazarusIDEStrConsts, StdCtrls, Buttons, SynEdit, SynHighlighterPas, ExtCtrls, StdCtrls, Buttons, SynEdit, SynHighlighterPas, ExtCtrls,
EditorOptions, SynCompletion; SynEditAutoComplete, InputHistory,
LazarusIDEStrConsts, EditorOptions;
type type
@ -56,7 +57,9 @@ type
procedure AddButtonClick(Sender: TObject); procedure AddButtonClick(Sender: TObject);
procedure DeleteButtonClick(Sender: TObject); procedure DeleteButtonClick(Sender: TObject);
procedure EditButtonClick(Sender: TObject); procedure EditButtonClick(Sender: TObject);
procedure FilenameButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure OkButtonClick(Sender: TObject);
procedure TemplateListBoxSelectionChange(Sender: TObject; User: boolean); procedure TemplateListBoxSelectionChange(Sender: TObject; User: boolean);
private private
SynAutoComplete: TSynEditAutoComplete; SynAutoComplete: TSynEditAutoComplete;
@ -292,6 +295,8 @@ end;
{ TCodeTemplateDialog } { TCodeTemplateDialog }
procedure TCodeTemplateDialog.FormCreate(Sender: TObject); procedure TCodeTemplateDialog.FormCreate(Sender: TObject);
var
s: String;
begin begin
SynAutoComplete:=TSynEditAutoComplete.Create(Self); SynAutoComplete:=TSynEditAutoComplete.Create(Self);
@ -316,17 +321,48 @@ begin
end; end;
end; end;
FillCodeTemplateListBox; FillCodeTemplateListBox;
with CodeTemplateListBox do with TemplateListBox do
if Items.Count>0 then begin if Items.Count>0 then begin
Selected[0]:=true; ItemIndex:=0;
ShowCurCodeTemplate; ShowCurCodeTemplate;
end; end;
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); procedure TCodeTemplateDialog.AddButtonClick(Sender: TObject);
var var
Token: String; Token: String;
Comment: String; Comment: String;
Index: LongInt;
begin begin
SaveCurCodeTemplate; SaveCurCodeTemplate;
Token:='new'; Token:='new';
@ -354,25 +390,45 @@ begin
+'?',mtConfirmation,[mbOk,mbCancel],0)=mrOK then begin +'?',mtConfirmation,[mbOk,mbCancel],0)=mrOK then begin
SynAutoComplete.DeleteCompletion(i); SynAutoComplete.DeleteCompletion(i);
FillCodeTemplateListBox; FillCodeTemplateListBox;
if (i>=0) and (i<CodeTemplateListBox.Items.Count) then begin if (i>=0) and (i<TemplateListBox.Items.Count) then begin
CodeTemplateListBox.ItemIndex:=i; TemplateListBox.ItemIndex:=i;
end; end;
ShowCurCodeTemplate; ShowCurCodeTemplate;
end; end;
end; end;
procedure TCodeTemplateDialog.EditButtonClick(Sender: TObject); procedure TCodeTemplateDialog.EditButtonClick(Sender: TObject);
var
i: LongInt;
begin begin
i:=TemplateListBox.ItemIndex; i:=TemplateListBox.ItemIndex;
if i<0 then exit; if i<0 then exit;
if EditCodeTemplate(SynAutoComplete,i)=mrOk then begin if EditCodeTemplate(SynAutoComplete,i)=mrOk then begin
CodeTemplateListBox.Items[i]:= TemplateListBox.Items[i]:=
SynAutoComplete.Completions[i] SynAutoComplete.Completions[i]
+' - "'+SynAutoComplete.CompletionComments[i]+'"'; +' - "'+SynAutoComplete.CompletionComments[i]+'"';
ShowCurCodeTemplate; ShowCurCodeTemplate;
end; end;
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; procedure TCodeTemplateDialog.TemplateListBoxSelectionChange(Sender: TObject;
User: boolean); User: boolean);
begin begin
@ -403,7 +459,6 @@ begin
TemplateSynEdit.Lines.Clear; TemplateSynEdit.Lines.Clear;
i:=TemplateListBox.ItemIndex; i:=TemplateListBox.ItemIndex;
if i>=0 then begin if i>=0 then begin
CurCodeTemplate:=i;
s:=SynAutoComplete.CompletionValues[i]; s:=SynAutoComplete.CompletionValues[i];
sp:=1; sp:=1;
ep:=1; ep:=1;
@ -431,7 +486,7 @@ var
begin begin
i:=TemplateListBox.ItemIndex; i:=TemplateListBox.ItemIndex;
if i<0 then exit; if i<0 then exit;
NewValue:=CodeTemplateCodePreview.Lines.Text; NewValue:=TemplateSynEdit.Lines.Text;
// remove last EOL // remove last EOL
if NewValue<>'' then begin if NewValue<>'' then begin
l:=length(NewValue); l:=length(NewValue);

View File

@ -42,7 +42,7 @@ uses
SynHighlighterLFM, SynHighlighterPerl, SynHighlighterJava, SynHighlighterLFM, SynHighlighterPerl, SynHighlighterJava,
SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterPHP, SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterPHP,
Laz_XMLCfg, IDEWindowIntf, Laz_XMLCfg, IDEWindowIntf,
IDECommands, CodeTemplateDialog, KeyMapping, InputHistory, IDEOptionDefs, IDECommands, KeyMapping, InputHistory, IDEOptionDefs,
LazarusIDEStrConsts, KeymapSchemeDlg; LazarusIDEStrConsts, KeymapSchemeDlg;
type type
@ -386,19 +386,6 @@ type
AutoDelayTrackBar:TTrackBar; AutoDelayTrackBar:TTrackBar;
AutoDelayMinLabel:TLabel; AutoDelayMinLabel:TLabel;
AutoDelayMaxLabel: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 // buttons at bottom
OkButton:TButton; OkButton:TButton;
@ -436,11 +423,6 @@ type
procedure SetAllAttributesToDefaultButtonClick(Sender: TObject); procedure SetAllAttributesToDefaultButtonClick(Sender: TObject);
// code tools // 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 // buttons at bottom
procedure OkButtonClick(Sender:TObject); procedure OkButtonClick(Sender:TObject);
@ -448,10 +430,9 @@ type
private private
FormCreating: boolean; FormCreating: boolean;
PreviewSyn: TCustomSyn; PreviewSyn: TCustomSyn;
PreviewEdits:array[1..3] of TPreviewEditor; PreviewEdits:array[1..2] of TPreviewEditor;
CurLanguageID: integer; // current index in EditorOpts.EditOptHighlighterList CurLanguageID: integer; // current index in EditorOpts.EditOptHighlighterList
CurHighlightElement: TSynHighlightElement; CurHighlightElement: TSynHighlightElement;
CurCodeTemplate: integer;
UpdatingColor: boolean; UpdatingColor: boolean;
fHighlighterList: TStringList; // list of "ColorScheme" Data=TCustomSyn fHighlighterList: TStringList; // list of "ColorScheme" Data=TCustomSyn
fColorSchemes: TStringList; // list of LanguageName=ColorScheme fColorSchemes: TStringList; // list of LanguageName=ColorScheme
@ -501,9 +482,6 @@ type
// code tools // code tools
procedure SetupCodeToolsPage; procedure SetupCodeToolsPage;
procedure ResizeCodeToolsPage; procedure ResizeCodeToolsPage;
procedure FillCodeTemplateListBox;
procedure ShowCurCodeTemplate;
procedure SaveCurCodeTemplate;
public public
constructor Create(TheOwner: TComponent); override; constructor Create(TheOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
@ -534,6 +512,8 @@ function ShowEditorOptionsDialog:TModalResult;
function StrToLazSyntaxHighlighter(const s: string): TLazSyntaxHighlighter; function StrToLazSyntaxHighlighter(const s: string): TLazSyntaxHighlighter;
function ExtensionToLazSyntaxHighlighter(Ext:string): TLazSyntaxHighlighter; function ExtensionToLazSyntaxHighlighter(Ext:string): TLazSyntaxHighlighter;
function BuildBorlandDCIFile(
ACustomSynAutoComplete: TCustomSynAutoComplete):boolean;
implementation implementation
@ -639,7 +619,7 @@ begin
if Value[ep] in [#10,#13] then begin if Value[ep] in [#10,#13] then begin
sl.Add(copy(Value,sp,ep-sp)); sl.Add(copy(Value,sp,ep-sp));
inc(ep); 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); and (Value[ep]<>Value[ep-1]) then inc(ep);
sp:=ep; sp:=ep;
end else inc(ep); end else inc(ep);
@ -2191,8 +2171,6 @@ begin
IDEDialogLayoutList.ApplyLayout(Self,480,480); IDEDialogLayoutList.ApplyLayout(Self,480,480);
OnResize:=@EditorOptionsFormResize; OnResize:=@EditorOptionsFormResize;
SynAutoComplete:=TSynEditAutoComplete.Create(Self);
MainNoteBook:=TNoteBook.Create(Self); MainNoteBook:=TNoteBook.Create(Self);
with MainNoteBook do with MainNoteBook do
begin begin
@ -2248,7 +2226,6 @@ begin
PreviewEdits[1]:=DisplayPreview; PreviewEdits[1]:=DisplayPreview;
PreviewEdits[2]:=ColorPreview; PreviewEdits[2]:=ColorPreview;
PreviewEdits[3]:=CodeTemplateCodePreview;
for a:=Low(PreviewEdits) to High(PreviewEdits) do for a:=Low(PreviewEdits) to High(PreviewEdits) do
begin begin
if PreviewEdits[a]<>nil then if PreviewEdits[a]<>nil then
@ -2267,7 +2244,6 @@ begin
end; end;
end; end;
end; end;
CodeTemplateCodePreview.Gutter.Visible:=false;
// general options // general options
@ -2286,26 +2262,7 @@ begin
ShowCurAttribute; ShowCurAttribute;
// code Tools options // 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; MainNoteBook.PageIndex:=0;
FormCreating:=false; FormCreating:=false;
@ -2324,83 +2281,6 @@ end;
// general // 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); procedure TEditorOptionsForm.EditorOptionsFormResize(Sender: TObject);
begin begin
with MainNoteBook do begin with MainNoteBook do begin
@ -3254,147 +3134,6 @@ begin
end; end;
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 // useful functions
procedure TEditorOptionsForm.SetComboBoxText(AComboBox:TComboBox; procedure TEditorOptionsForm.SetComboBoxText(AComboBox:TComboBox;
@ -4787,159 +4526,12 @@ begin
Width:=70; Width:=70;
Caption:='1.5 '+ dlgTimeSecondUnit; Caption:='1.5 '+ dlgTimeSecondUnit;
end; 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; end;
procedure TEditorOptionsForm.ResizeCodeToolsPage; procedure TEditorOptionsForm.ResizeCodeToolsPage;
var MaxX, MaxY:integer; var MaxX:integer;
begin begin
MaxX:=Width-5; MaxX:=Width-5;
MaxY:=ClientHeight-76;
with AutomaticFeaturesGroupBox do begin with AutomaticFeaturesGroupBox do begin
Top:=5; Top:=5;
@ -5004,13 +4596,6 @@ begin
Left:=AutoDelayTrackBar.Left+AutoDelayTrackBar.Width-30; Left:=AutoDelayTrackBar.Left+AutoDelayTrackBar.Width-30;
Width:=70; Width:=70;
end; end;
with CodeTemplatesGroupBox do begin
Top:=AutomaticFeaturesGroupBox.Top+AutomaticFeaturesGroupBox.Height+5;
Left:=AutomaticFeaturesGroupBox.Left;
Width:=AutomaticFeaturesGroupBox.Width;
Height:=MaxY-Top-10;
end;
end; end;
procedure TEditorOptionsForm.SetupButtonBar; procedure TEditorOptionsForm.SetupButtonBar;
@ -5059,13 +4644,12 @@ begin
end; end;
procedure TEditorOptionsForm.OkButtonClick(Sender:TObject); procedure TEditorOptionsForm.OkButtonClick(Sender:TObject);
var res: TModalResult; var
SynOptions: TSynEditorOptions; SynOptions: TSynEditorOptions;
i: integer; i: integer;
begin begin
IDEDialogLayoutList.SaveLayout(Self); IDEDialogLayoutList.SaveLayout(Self);
SaveCurCodeTemplate;
// save all values // save all values
EditorOpts.KeyMap.Assign(EditingKeyMap); EditorOpts.KeyMap.Assign(EditingKeyMap);
SynOptions:=PreviewEdits[1].Options-[eoNoSelection,eoNoCaret]; SynOptions:=PreviewEdits[1].Options-[eoNoSelection,eoNoCaret];
@ -5112,27 +4696,9 @@ begin
EditorOpts.AutoToolTipExprEval:=AutoToolTipExprEvalCheckBox.Checked; EditorOpts.AutoToolTipExprEval:=AutoToolTipExprEvalCheckBox.Checked;
EditorOpts.AutoToolTipSymbTools:=AutoToolTipSymbToolsCheckBox.Checked; EditorOpts.AutoToolTipSymbTools:=AutoToolTipSymbToolsCheckBox.Checked;
EditorOpts.AutoDelayInMSec:=AutoDelayTrackBar.Position*250; EditorOpts.AutoDelayInMSec:=AutoDelayTrackBar.Position*250;
EditorOpts.CodeTemplateFileName:=CodeTemplateFileNameComboBox.Text;
EditorOpts.CodeTemplateIndentToTokenStart:=
(CodeTemplateIndentTypeRadioGroup.ItemIndex=0);
EditorOpts.Save; 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; ModalResult:=mrOk;
end; end;

View File

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

View File

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

View File

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

View File

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

View File

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