From 4f10f5506bd585f61ac88880dcd132adfed6b7d0 Mon Sep 17 00:00:00 2001 From: mattias Date: Tue, 30 Aug 2005 20:54:21 +0000 Subject: [PATCH] moved code templates settings to a dialog of its own - it needs more space for the coming makros git-svn-id: trunk@7601 - --- .gitattributes | 2 +- ide/codetemplatesdlg.lfm | 16 +- ide/codetemplatesdlg.lrs | 173 ++++--- ...templatedialog.pp => codetemplatesdlg.pas} | 77 ++- ide/editoroptions.pp | 452 +----------------- ide/keymapping.pp | 13 +- ide/lazarusidestrconsts.pas | 1 + ide/main.pp | 9 + ide/mainbar.pas | 1 + ide/mainbase.pas | 3 + 10 files changed, 185 insertions(+), 562 deletions(-) rename ide/{codetemplatedialog.pp => codetemplatesdlg.pas} (87%) diff --git a/.gitattributes b/.gitattributes index 85d072d695..661101a018 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/ide/codetemplatesdlg.lfm b/ide/codetemplatesdlg.lfm index 630e561aa2..eb2e2dabc7 100644 --- a/ide/codetemplatesdlg.lfm +++ b/ide/codetemplatesdlg.lfm @@ -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 diff --git a/ide/codetemplatesdlg.lrs b/ide/codetemplatesdlg.lrs index c1518cc481..99a8c694c0 100644 --- a/ide/codetemplatesdlg.lrs +++ b/ide/codetemplatesdlg.lrs @@ -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 ]); diff --git a/ide/codetemplatedialog.pp b/ide/codetemplatesdlg.pas similarity index 87% rename from ide/codetemplatedialog.pp rename to ide/codetemplatesdlg.pas index 5335980a3a..d32a9beeeb 100644 --- a/ide/codetemplatedialog.pp +++ b/ide/codetemplatesdlg.pas @@ -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=0) and (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); diff --git a/ide/editoroptions.pp b/ide/editoroptions.pp index 292dea31e3..dd42e7e558 100644 --- a/ide/editoroptions.pp +++ b/ide/editoroptions.pp @@ -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 is[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=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 (CurCodeTemplatemrRetry; - end; - ModalResult:=mrOk; end; diff --git a/ide/keymapping.pp b/ide/keymapping.pp index 15cfd4da16..440f50e17d 100644 --- a/ide/keymapping.pp +++ b/ide/keymapping.pp @@ -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); diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index ba8a86d797..d78023f271 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -271,6 +271,7 @@ resourcestring lisMenuGeneralOptions = 'Environment options'; lisMenuEditorOptions = 'Editor options'; + lisMenuEditCodeTemplates = 'Code Templates'; lisMenDebuggerOptions = 'Debugger Options'; lisMenuCodeToolsOptions = 'CodeTools options'; lisMenuCodeToolsDefinesEditor = 'CodeTools defines editor'; diff --git a/ide/main.pp b/ide/main.pp index 79038ec758..737d108b52 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -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); diff --git a/ide/mainbar.pas b/ide/mainbar.pas index 438a47ade7..1a253a490d 100644 --- a/ide/mainbar.pas +++ b/ide/mainbar.pas @@ -255,6 +255,7 @@ type // environment menu itmEnvGeneralOptions: TMenuItem; itmEnvEditorOptions: TMenuItem; + itmEnvCodeTemplates: TMenuItem; itmEnvDebuggerOptions: TMenuItem; itmEnvCodeToolsOptions: TMenuItem; itmEnvCodeToolsDefinesEditor: TMenuItem; diff --git a/ide/mainbase.pas b/ide/mainbase.pas index f197280c1c..e7708bdaf6 100644 --- a/ide/mainbase.pas +++ b/ide/mainbase.pas @@ -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);