public TemplateCompletionData(CodeTemplate template, bool automaticInsert) : base(template.Shortcut, template.Description + StringParser.Parse("\n${res:Dialog.Options.CodeTemplate.PressTabToInsertTemplate}\n\n") + template.Text, ClassBrowserIconService.CodeTemplateIndex) { this.template = template; this.automaticInsert = automaticInsert; }
public TemplateCompletionData(CodeTemplate template) { this.template = template; }
ArrayList CopyCodeTemplateGroups(ArrayList groups) { ArrayList copiedGroups = new ArrayList(); foreach (CodeTemplateGroup group in groups) { CodeTemplateGroup newGroup = new CodeTemplateGroup(String.Join(";", group.ExtensionStrings)); foreach (CodeTemplate template in group.Templates) { CodeTemplate newTemplate = new CodeTemplate(template.Shortcut, template.Description, template.Text); newGroup.Templates.Add(newTemplate); } copiedGroups.Add(newGroup); } return copiedGroups; }
void EditEvent(object sender, System.EventArgs e) { int i = GetCurrentIndex(); if (i != -1) { ListViewItem item = ((ListView)ControlDictionary["templateListView"]).SelectedItems[0]; CodeTemplate template = (CodeTemplate)item.Tag; template = new CodeTemplate(template.Shortcut, template.Description, template.Text); using (EditTemplateDialog etd = new EditTemplateDialog(template)) { if (etd.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK) { item.Tag = template; StoreTemplateGroup(); } } BuildListView(); } }
void AddEvent(object sender, System.EventArgs e) { CodeTemplate newTemplate = new CodeTemplate(); using (EditTemplateDialog etd = new EditTemplateDialog(newTemplate)) { if (etd.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK) { CurrentTemplateGroup.Templates.Add(newTemplate); ((ListView)ControlDictionary["templateListView"]).SelectedItems.Clear(); BuildListView(); ((ListView)ControlDictionary["templateListView"]).Select(); } } }
public EditTemplateDialog(CodeTemplate codeTemplate) { this.codeTemplate = codeTemplate; InitializeComponents(); }
/// <remarks> /// This method inserts a code template at the current caret position /// </remarks> public void InsertTemplate(CodeTemplate template) { string selectedText = String.Empty; Document.UndoStack.StartUndoGroup(); if (base.ActiveTextAreaControl.TextArea.SelectionManager.HasSomethingSelected) { selectedText = base.ActiveTextAreaControl.TextArea.SelectionManager.SelectedText; ActiveTextAreaControl.TextArea.Caret.Position = ActiveTextAreaControl.TextArea.SelectionManager.SelectionCollection[0].StartPosition; base.ActiveTextAreaControl.TextArea.SelectionManager.RemoveSelectedText(); } // save old properties, these properties cause strange effects, when not // be turned off (like insert curly braces or other formatting stuff) string templateText = StringParser.Parse(template.Text, new string[,] { { "Selection", selectedText } }); int finalCaretOffset = templateText.IndexOf('|'); if (finalCaretOffset >= 0) { templateText = templateText.Remove(finalCaretOffset, 1); } else { finalCaretOffset = templateText.Length; } int caretOffset = ActiveTextAreaControl.TextArea.Caret.Offset; BeginUpdate(); int beginLine = ActiveTextAreaControl.TextArea.Caret.Line; Document.Insert(caretOffset, templateText); ActiveTextAreaControl.TextArea.Caret.Position = Document.OffsetToPosition(caretOffset + finalCaretOffset); int endLine = Document.OffsetToPosition(caretOffset + templateText.Length).Y; IndentStyle save1 = TextEditorProperties.IndentStyle; TextEditorProperties.IndentStyle = IndentStyle.Smart; Console.WriteLine("Indent between {0} and {1}", beginLine, endLine); Document.FormattingStrategy.IndentLines(ActiveTextAreaControl.TextArea, beginLine, endLine); Document.UndoStack.EndUndoGroup(); EndUpdate(); Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.WholeTextArea)); Document.CommitUpdate(); // restore old property settings TextEditorProperties.IndentStyle = save1; }