/* * public static void SaveTemplates () * { * if (!Directory.Exists (TemplatePath)) * Directory.CreateDirectory (TemplatePath); * foreach (string templateFile in Directory.GetFiles (TemplatePath, "*.xml")) { * File.Delete (templateFile); * } * foreach (CodeTemplate template in templates) { * if (string.IsNullOrEmpty (template.Shortcut)) { * LoggingService.LogError ("CodeTemplateService: Can't save unnamed template " + template); * continue; * } * SaveTemplate (template, Path.Combine (TemplatePath, template.Shortcut + ".template.xml")); * } * }*/ static List <CodeTemplate> LoadTemplates(XmlReader reader) { List <CodeTemplate> result = new List <CodeTemplate> (); try { while (reader.Read()) { if (reader.IsStartElement()) { switch (reader.LocalName) { case Node: string fileVersion = reader.GetAttribute(VersionAttribute); if (fileVersion != Version) { return(null); } break; case CodeTemplate.Node: result.Add(CodeTemplate.Read(reader)); break; } } } } catch (Exception e) { LoggingService.LogError("CodeTemplateService: Exception while loading template.", e); return(null); } finally { reader.Close(); } return(result); }
public static void SaveTemplate(CodeTemplate template) { if (!Directory.Exists(TemplatePath)) { Directory.CreateDirectory(TemplatePath); } SaveTemplate(template, Path.Combine(TemplatePath, template.Shortcut + ".template.xml")); }
public static CodeTemplate Read (XmlReader reader) { Debug.Assert (reader.LocalName == Node); CodeTemplate result = new CodeTemplate (); XmlReadHelper.ReadList (reader, Node, delegate () { //Console.WriteLine (reader.LocalName); switch (reader.LocalName) { case HeaderNode: XmlReadHelper.ReadList (reader, HeaderNode, delegate () { switch (reader.LocalName) { case GroupNode: result.Group = reader.ReadElementContentAsString (); return true; case VersionNode: result.Version = reader.ReadElementContentAsString (); return true; case MimeNode: result.MimeType = reader.ReadElementContentAsString (); return true; case ContextNode: result.CodeTemplateContext = (CodeTemplateContext)Enum.Parse (typeof (CodeTemplateContext), reader.ReadElementContentAsString ()); return true; case ShortcutNode: result.Shortcut = reader.ReadElementContentAsString (); return true; case DescriptionNode: result.Description = reader.ReadElementContentAsString (); return true; case TemplateTypeNode: result.CodeTemplateType = (CodeTemplateType)Enum.Parse (typeof (CodeTemplateType), reader.ReadElementContentAsString ()); return true; } return false; }); return true; case VariablesNode: XmlReadHelper.ReadList (reader, VariablesNode, delegate () { //Console.WriteLine ("var:" + reader.LocalName); switch (reader.LocalName) { case CodeTemplateVariable.Node: CodeTemplateVariable var = CodeTemplateVariable.Read (reader); result.variableDecarations [var.Name] = var; return true; } return false; }); return true; case CodeNode: result.Code = reader.ReadElementContentAsString (); return true; } return false; }); //Console.WriteLine ("result:" + result); return result; }
public CodeTemplateCompletionData (Document doc, CodeTemplate template) { this.doc = doc; this.template = template; this.CompletionText = "test"; this.Icon = template.Icon; this.DisplayText = template.Shortcut; this.Description = template.Shortcut + Environment.NewLine + GettextCatalog.GetString (template.Description); }
public CodeTemplateCompletionData(TextEditorExtension doc, CodeTemplate template) { this.doc = doc; this.template = template; this.CompletionText = template.Shortcut; this.Icon = template.Icon; this.DisplayText = template.Shortcut; this.Description = template.Shortcut + Environment.NewLine + GettextCatalog.GetString(template.Description); }
void ButtonAddClicked(object sender, EventArgs e) { var newTemplate = new CodeTemplate(); var editDialog = new EditTemplateDialog(newTemplate, true); if (MessageService.ShowCustomDialog(editDialog, this.Toplevel as Gtk.Window) == (int)ResponseType.Ok) { InsertTemplate(newTemplate); templates.Add(newTemplate); templatesToSave.Add(newTemplate); } }
public static void DeleteTemplate(CodeTemplate template) { try { var fileName = Path.Combine(TemplatePath, template.Shortcut + ".template.xml"); if (File.Exists(fileName)) { File.Delete(fileName); } } catch (Exception e) { LoggingService.LogError("Error while removing template file", e); } }
void RenderIcon(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { CodeTemplate template = (CodeTemplate)templateStore.GetValue(iter, 0); if (template == null) { pixbufCellRenderer.Pixbuf = ImageService.GetPixbuf(treeviewCodeTemplates.GetRowExpanded(templateStore.GetPath(iter)) ? MonoDevelop.Ide.Gui.Stock.OpenFolder : MonoDevelop.Ide.Gui.Stock.ClosedFolder, IconSize.Menu); } else { pixbufCellRenderer.Pixbuf = ImageService.GetPixbuf("md-template", IconSize.Menu); } }
static void RenderIcon(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { CodeTemplate template = (CodeTemplate)model.GetValue(iter, 0); var cri = (CellRendererImage)cell; if (template == null) { cri.Image = ImageService.GetIcon(((TreeView)column.TreeView).GetRowExpanded(model.GetPath(iter)) ? MonoDevelop.Ide.Gui.Stock.OpenFolder : MonoDevelop.Ide.Gui.Stock.ClosedFolder, IconSize.Menu); } else { cri.Image = ImageService.GetIcon(template.Icon, IconSize.Menu); } }
static void SaveTemplate(CodeTemplate template, string fileName) { XmlTextWriter writer = new XmlTextWriter(fileName, System.Text.Encoding.UTF8); writer.Formatting = Formatting.Indented; try { writer.WriteStartDocument(); writer.WriteStartElement(Node); writer.WriteAttributeString(VersionAttribute, Version); template.Write(writer); writer.WriteEndElement(); // Node } finally { writer.Close(); } }
static List <CodeTemplate> LoadTemplates() { const string ManifestResourceName = "MonoDevelop-templates.xml"; List <CodeTemplate> builtinTemplates = LoadTemplates(XmlTextReader.Create(typeof(CodeTemplateService).Assembly.GetManifestResourceStream(ManifestResourceName))); if (Directory.Exists(TemplatePath)) { List <CodeTemplate> result = new List <CodeTemplate> (); foreach (string templateFile in Directory.GetFiles(TemplatePath, "*.xml")) { result.AddRange(LoadTemplates(XmlTextReader.Create(templateFile))); } // merge user templates with built in templates for (int i = 0; i < builtinTemplates.Count; i++) { CodeTemplate curTemplate = builtinTemplates[i]; bool found = false; for (int j = 0; j < result.Count; j++) { CodeTemplate curResultTemplate = result[j]; if (curTemplate.Shortcut == curResultTemplate.Shortcut) { found = true; if (curResultTemplate.Version != curTemplate.Version) { result[j] = curTemplate; } } } // template is new, insert it. if (!found) { result.Add(curTemplate); } } return(result); } LoggingService.LogInfo("CodeTemplateService: No user templates, reading default templates."); return(builtinTemplates); }
void HandleChanged(object sender, EventArgs e) { TreeIter iter; if (treeviewCodeTemplates.Selection.GetSelected(out iter)) { CodeTemplate template = templateStore.GetValue(iter, 0) as CodeTemplate; if (template != null) { textEditor.ClearSelection(); textEditor.Document.MimeType = template.MimeType; textEditor.Document.Text = template.Code; } else { textEditor.Document.Text = ""; } } }
void RenderTemplateName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { CodeTemplate template = (CodeTemplate)templateStore.GetValue(iter, 0); if (template == null) { templateCellRenderer.Markup = (string)templateStore.GetValue(iter, 2); return; } if (treeviewCodeTemplates.Selection.IterIsSelected(iter)) { templateCellRenderer.Markup = GLib.Markup.EscapeText(template.Shortcut) + " (" + GLib.Markup.EscapeText(GettextCatalog.GetString(template.Description)) + ")"; } else { templateCellRenderer.Markup = GLib.Markup.EscapeText(template.Shortcut) + " <span foreground=\"" + GetColorString(Style.Text(StateType.Insensitive)) + "\">(" + GLib.Markup.EscapeText(GettextCatalog.GetString(template.Description)) + ")</span>"; } }
void RenderTemplateName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { CodeTemplate template = (CodeTemplate)model.GetValue(iter, 0); var crt = (CellRendererText)cell; if (template == null) { crt.Markup = (string)model.GetValue(iter, 2); return; } if (((TreeView)column.TreeView).Selection.IterIsSelected(iter)) { crt.Markup = GLib.Markup.EscapeText(template.Shortcut) + " (" + GLib.Markup.EscapeText(GettextCatalog.GetString(template.Description)) + ")"; } else { crt.Markup = GLib.Markup.EscapeText(template.Shortcut) + " <span foreground=\"" + Styles.SecondaryTextColorHexString + "\">(" + GLib.Markup.EscapeText(GettextCatalog.GetString(template.Description)) + ")</span>"; } }
public static ExpansionObject GetExpansionObject (CodeTemplate template) { // TODO: Add more expansion objects. return new ExpansionObject (); }
public static CodeTemplate Read (XmlReader reader) { Debug.Assert (reader.LocalName == Node); var result = new CodeTemplate (); XmlReadHelper.ReadList (reader, Node, delegate () { //Console.WriteLine (reader.LocalName); switch (reader.LocalName) { case HeaderNode: XmlReadHelper.ReadList (reader, HeaderNode, delegate () { switch (reader.LocalName) { case GroupNode: result.Group = reader.ReadElementContentAsString (); return true; case VersionNode: result.Version = reader.ReadElementContentAsString (); return true; case MimeNode: result.MimeType = reader.ReadElementContentAsString (); return true; case ContextNode: result.CodeTemplateContext = (CodeTemplateContext)Enum.Parse (typeof (CodeTemplateContext), reader.ReadElementContentAsString ()); return true; case ShortcutNode: result.Shortcut = reader.ReadElementContentAsString (); return true; case DescriptionNode: result.Description = reader.ReadElementContentAsString (); return true; case TemplateTypeNode: result.CodeTemplateType = (CodeTemplateType)Enum.Parse (typeof (CodeTemplateType), reader.ReadElementContentAsString ()); return true; } return false; }); return true; case VariablesNode: XmlReadHelper.ReadList (reader, VariablesNode, delegate () { //Console.WriteLine ("var:" + reader.LocalName); switch (reader.LocalName) { case CodeTemplateVariable.Node: var var = CodeTemplateVariable.Read (reader); result.variableDecarations [var.Name] = var; return true; } return false; }); return true; case CodeNode: result.Code = reader.ReadElementContentAsString (); return true; } return false; }); //Console.WriteLine ("result:" + result); return result; }
public void InsertTemplate (CodeTemplate template, MonoDevelop.Ide.Editor.TextEditor editor, DocumentContext context) { TextEditor.InsertTemplate (template, editor, context); }
internal void InsertTemplate (CodeTemplate template, MonoDevelop.Ide.Editor.TextEditor editor, MonoDevelop.Ide.Editor.DocumentContext context) { using (var undo = editor.OpenUndoGroup ()) { var result = template.InsertTemplateContents (editor, context); var links = result.TextLinks.Select (l => new Mono.TextEditor.TextLink (l.Name) { Links = l.Links.Select (s => new TextSegment (s.Offset, s.Length)).ToList (), IsEditable = l.IsEditable, IsIdentifier = l.IsIdentifier }).ToList (); var tle = new TextLinkEditMode (this, result.InsertPosition, links); tle.TextLinkMode = TextLinkMode.General; if (tle.ShouldStartTextLinkMode) { tle.OldMode = CurrentMode; tle.StartMode (); CurrentMode = tle; } } }
public EditTemplateDialog(CodeTemplate template, bool isNew) { this.Build(); this.Title = isNew ? GettextCatalog.GetString("New template") : GettextCatalog.GetString("Edit template"); this.template = template; this.entryShortcut1.Text = template.Shortcut ?? ""; this.comboboxentryGroups.Entry.Text = template.Group ?? ""; this.comboboxentryMime.Entry.Text = template.MimeType ?? ""; this.entryDescription.Text = template.Description ?? ""; this.textEditor.Document.MimeType = template.MimeType; this.textEditor.Document.Text = template.Code; checkbuttonExpansion.Active = (template.CodeTemplateType & CodeTemplateType.Expansion) == CodeTemplateType.Expansion; checkbuttonSurroundWith.Active = (template.CodeTemplateType & CodeTemplateType.SurroundsWith) == CodeTemplateType.SurroundsWith; scrolledwindow1.Child = textEditor; textEditor.ShowAll(); textEditor.Caret.PositionChanged += CaretPositionChanged; options = new Mono.TextEditor.TextEditorOptions(); options.ShowLineNumberMargin = false; options.ShowFoldMargin = false; options.ShowIconMargin = false; options.ShowInvalidLines = false; options.ShowSpaces = options.ShowTabs = options.ShowEolMarkers = false; options.ColorScheme = PropertyService.Get("ColorScheme", "Default"); textEditor.Options = options; HashSet <string> mimeTypes = new HashSet <string> (); HashSet <string> groups = new HashSet <string> (); foreach (CodeTemplate ct in CodeTemplateService.Templates) { mimeTypes.Add(ct.MimeType); groups.Add(ct.Group); } comboboxentryMime.AppendText(""); foreach (string mime in mimeTypes) { comboboxentryMime.AppendText(mime); } comboboxentryGroups.AppendText(""); foreach (string group in groups) { comboboxentryGroups.AppendText(group); } textEditor.Document.TextReplaced += DocumentTextReplaced; this.buttonOk.Clicked += ButtonOkClicked; checkbuttonWhiteSpaces.Toggled += CheckbuttonWhiteSpacesToggled; variablesListStore = new ListStore(typeof(string), typeof(CodeTemplateVariable)); comboboxVariables.Model = variablesListStore; comboboxVariables.Changed += ComboboxVariablesChanged; variableStore = new TreeStore(typeof(string), typeof(CodeTemplateVariable), typeof(string), typeof(int)); treeviewVariable.Model = variableStore; treeviewVariable.HeadersVisible = false; treeviewVariable.AppendColumn("", new Gtk.CellRendererText(), "text", 0); CellRendererText nameRenderer = new CellRendererText(); treeviewVariable.AppendColumn("", nameRenderer, delegate(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { nameRenderer.Markup = ((string)model.GetValue(iter, 2)); }); grid = new MonoDevelop.Components.PropertyGrid.PropertyGrid(); grid.PropertySort = MonoDevelop.Components.PropertyGrid.PropertySort.Alphabetical; grid.ShowHelp = true; grid.ShowAll(); grid.ShowToolbar = false; vbox4.Remove(scrolledwindow2); vbox4.PackEnd(grid, true, true, 0); UpdateVariables(); }
internal void InsertTemplate (CodeTemplate template, MonoDevelop.Ide.Gui.Document document) { Document.BeginAtomicUndo (); var result = template.InsertTemplateContents (document); var tle = new TextLinkEditMode (this, result.InsertPosition, result.TextLinks); if (PropertyService.Get ("OnTheFlyFormatting", false)) { var prettyPrinter = CodeFormatterService.GetFormatter (Document.MimeType); if (prettyPrinter != null) { int endOffset = result.InsertPosition + result.Code.Length; string oldText = Document.GetTextAt (result.InsertPosition, result.Code.Length); var policies = document.Project != null ? document.Project.Policies : null; string text = prettyPrinter.FormatText (policies, Document.Text, result.InsertPosition, endOffset); if (text != null) Replace (result.InsertPosition, result.Code.Length, text); else //if formatting failed, just use the unformatted text text = oldText; Caret.Offset = result.InsertPosition + TranslateOffset (oldText, text, Caret.Offset - result.InsertPosition); foreach (TextLink textLink in tle.Links) { foreach (ISegment segment in textLink.Links) { segment.Offset = TranslateOffset (oldText, text, segment.Offset); } } } } if (tle.ShouldStartTextLinkMode) { tle.OldMode = CurrentMode; tle.StartMode (); CurrentMode = tle; } Document.EndAtomicUndo (); }
public void InsertTemplate (CodeTemplate template, MonoDevelop.Ide.Gui.Document doc) { TextEditor.InsertTemplate (template, doc); }
void ButtonAddClicked (object sender, EventArgs e) { var newTemplate = new CodeTemplate (); using (var editDialog = new EditTemplateDialog (newTemplate, true)) { if (MessageService.ShowCustomDialog (editDialog, this.Toplevel as Gtk.Window) == (int)ResponseType.Ok) { InsertTemplate (newTemplate); templates.Add (newTemplate); templatesToSave.Add (newTemplate); } } }
TreeIter InsertTemplate (CodeTemplate template) { TreeIter iter = GetGroup (template.Group); return templateStore.AppendValues (iter, template, template.Shortcut, null); }
static CodeTemplate ConvertToTemplate(TmSnippet setting) { var result = new CodeTemplate(); result.Shortcut = setting.TabTrigger; var sb = new StringBuilder(); var nameBuilder = new StringBuilder(); bool readDollar = false; bool inBracketExpression = false; bool inExpressionContent = false; bool inVariable = false; int number = 0; foreach (var ch in setting.Content) { if (inVariable) { if (char.IsLetter(ch)) { nameBuilder.Append(ch); } else { sb.Append(ConvertVariable(nameBuilder.ToString())); nameBuilder.Length = 0; inVariable = false; } } if (ch == '$') { readDollar = true; continue; } if (readDollar) { if (ch == '{') { number = 0; inBracketExpression = true; readDollar = false; continue; } else if (char.IsLetter(ch)) { inVariable = true; } else { sb.Append("$$"); readDollar = false; } } if (inBracketExpression) { if (ch == ':') { inBracketExpression = false; inExpressionContent = true; continue; } number = number * 10 + (ch - '0'); continue; } if (inExpressionContent) { if (ch == '}') { if (number == 0) { sb.Append("$end$"); sb.Append(nameBuilder); } else { sb.Append("$" + nameBuilder + "$"); result.AddVariable(new CodeTemplateVariable(nameBuilder.ToString()) { Default = nameBuilder.ToString(), IsEditable = true }); } nameBuilder.Length = 0; number = 0; inExpressionContent = false; continue; } nameBuilder.Append(ch); continue; } sb.Append(ch); } if (inVariable) { sb.Append(ConvertVariable(nameBuilder.ToString())); nameBuilder.Length = 0; inVariable = false; } result.Code = sb.ToString(); result.CodeTemplateContext = CodeTemplateContext.Standard; result.CodeTemplateType = CodeTemplateType.Expansion; result.Description = setting.Name; return(result); }
TreeIter InsertTemplate(CodeTemplate template) { TreeIter iter = GetGroup(template.Group); return(templateStore.AppendValues(iter, template, template.Shortcut, null)); }
public TemplateToolboxNode (CodeTemplate template) { this.Template = template; ItemFilters.Add (new ToolboxItemFilterAttribute ("text/plain", ToolboxItemFilterType.Allow)); }
public static void DeleteTemplate (CodeTemplate template) { try { var fileName = Path.Combine (TemplatePath, template.Shortcut + ".template.xml"); if (File.Exists (fileName)) File.Delete (fileName); } catch (Exception e) { LoggingService.LogError ("Error while removing template file", e); } }
internal void InsertTemplate (CodeTemplate template, MonoDevelop.Ide.Gui.Document document) { using (var undo = Document.OpenUndoGroup ()) { var result = template.InsertTemplateContents (document); var links = result.TextLinks; if (PropertyService.Get ("OnTheFlyFormatting", true)) { var prettyPrinter = CodeFormatterService.GetFormatter (Document.MimeType); if (prettyPrinter != null) { int endOffset = result.InsertPosition + result.Code.Length; // string oldText = Document.GetTextAt (result.InsertPosition, result.Code.Length); // var policies = document.Project != null ? document.Project.Policies : null; var oldVersion = Document.Version; prettyPrinter.OnTheFlyFormat (document, result.InsertPosition, endOffset); foreach (var textLink in links) { for (int i = 0; i < textLink.Links.Count; i++) { var segment = textLink.Links [i]; var translatedOffset = oldVersion.MoveOffsetTo (Document.Version, result.InsertPosition + segment.Offset) - result.InsertPosition; textLink.Links [i] = new TextSegment (translatedOffset, segment.Length); } } } } var tle = new TextLinkEditMode (this, result.InsertPosition, links); if (tle.ShouldStartTextLinkMode) { tle.OldMode = CurrentMode; tle.StartMode (); CurrentMode = tle; } } }
static void SaveTemplate (CodeTemplate template, string fileName) { XmlTextWriter writer = new XmlTextWriter (fileName, System.Text.Encoding.UTF8); writer.Formatting = Formatting.Indented; try { writer.WriteStartDocument (); writer.WriteStartElement (Node); writer.WriteAttributeString (VersionAttribute, Version); template.Write (writer); writer.WriteEndElement (); // Node } finally { writer.Close (); } }
public void InsertTemplate (CodeTemplate template) { TextIter iter = buf.GetIterAtMark (buf.InsertMark); int newCaretOffset = iter.Offset; string word = GetWordBeforeCaret ().Trim (); int beginLine = iter.Line; int endLine = beginLine; if (word.Length > 0) newCaretOffset = DeleteWordBeforeCaret (); string leadingWhiteSpace = GetLeadingWhiteSpace (beginLine); int finalCaretOffset = newCaretOffset; for (int i =0; i < template.Text.Length; ++i) { switch (template.Text[i]) { case '|': finalCaretOffset = newCaretOffset; break; case '\r': break; case '\t': buf.InsertAtCursor ("\t"); newCaretOffset++; break; case '\n': buf.InsertAtCursor ("\n"); newCaretOffset++; endLine++; break; default: buf.InsertAtCursor (template.Text[i].ToString ()); newCaretOffset++; break; } } if (endLine > beginLine) { IndentLines (beginLine+1, endLine, leadingWhiteSpace); } buf.PlaceCursor (buf.GetIterAtOffset (finalCaretOffset)); }
public static void SaveTemplate (CodeTemplate template) { if (!Directory.Exists (TemplatePath)) Directory.CreateDirectory (TemplatePath); SaveTemplate (template, Path.Combine (TemplatePath, template.Shortcut + ".template.xml")); }
public EditTemplateDialog (CodeTemplate template, bool isNew) { this.Build(); this.Title = isNew ? GettextCatalog.GetString ("New template") : GettextCatalog.GetString ("Edit template"); this.template = template; this.entryShortcut1.Text = template.Shortcut ?? ""; this.comboboxentryGroups.Entry.Text = template.Group ?? ""; this.comboboxentryMime.Entry.Text = template.MimeType ?? ""; this.entryDescription.Text = template.Description ?? ""; this.textEditor.MimeType = template.MimeType; this.textEditor.Text = template.Code ?? ""; checkbuttonExpansion.Active = (template.CodeTemplateType & CodeTemplateType.Expansion) == CodeTemplateType.Expansion; checkbuttonSurroundWith.Active = (template.CodeTemplateType & CodeTemplateType.SurroundsWith) == CodeTemplateType.SurroundsWith; Gtk.Widget control = textEditor; scrolledwindow1.Child = control; control.ShowAll (); textEditor.CaretPositionChanged += CaretPositionChanged; textEditor.Options = DefaultSourceEditorOptions.PlainEditor; var mimeTypes = new HashSet<string> (); var groups = new HashSet<string> (); foreach (CodeTemplate ct in CodeTemplateService.Templates) { mimeTypes.Add (ct.MimeType); groups.Add (ct.Group); } comboboxentryMime.AppendText (""); foreach (string mime in mimeTypes) { comboboxentryMime.AppendText (mime); } comboboxentryGroups.AppendText (""); foreach (string group in groups) { comboboxentryGroups.AppendText (group); } textEditor.TextChanged += DocumentTextReplaced; this.buttonOk.Clicked += ButtonOkClicked; checkbuttonWhiteSpaces.Hide (); variablesListStore = new ListStore (typeof (string), typeof (CodeTemplateVariable)); comboboxVariables.Model = variablesListStore; comboboxVariables.Changed += ComboboxVariablesChanged; variableStore = new TreeStore (typeof (string), typeof (CodeTemplateVariable), typeof (string), typeof (int)); treeviewVariable.Model = variableStore; treeviewVariable.HeadersVisible = false; treeviewVariable.AppendColumn ("", new Gtk.CellRendererText (), "text", 0); CellRendererText nameRenderer = new CellRendererText (); treeviewVariable.AppendColumn ("", nameRenderer, delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { nameRenderer.Markup = ((string)model.GetValue (iter, 2)); }); grid = new MonoDevelop.Components.PropertyGrid.PropertyGrid (); grid.PropertySort = MonoDevelop.Components.PropertyGrid.PropertySort.Alphabetical; grid.ShowHelp = true; grid.ShowAll (); grid.ShowToolbar = false; vbox4.Remove (scrolledwindow2); vbox4.PackEnd (grid, true, true, 0); UpdateVariables (); }
internal void InsertTemplate (CodeTemplate template, MonoDevelop.Ide.Gui.Document document) { using (var undo = Document.OpenUndoGroup ()) { var result = template.InsertTemplateContents (document); var links = result.TextLinks; var tle = new TextLinkEditMode (this, result.InsertPosition, links); tle.TextLinkMode = TextLinkMode.General; if (tle.ShouldStartTextLinkMode) { tle.OldMode = CurrentMode; tle.StartMode (); CurrentMode = tle; } } }
internal void InsertTemplate (CodeTemplate template, MonoDevelop.Ide.Editor.TextEditor editor, MonoDevelop.Ide.Editor.DocumentContext context) { using (var undo = editor.OpenUndoGroup ()) { var result = template.InsertTemplateContents (editor, context); var links = result.TextLinks.Select (l => new Mono.TextEditor.TextLink (l.Name) { Links = l.Links.Select (s => new TextSegment (s.Offset, s.Length)).ToList (), IsEditable = l.IsEditable, IsIdentifier = l.IsIdentifier, GetStringFunc = l.GetStringFunc != null ? (Func<Func<string, string>, Mono.TextEditor.PopupWindow.IListDataProvider<string>>)(arg => new ListDataProviderWrapper (l.GetStringFunc (arg))) : null }).ToList (); var tle = new TextLinkEditMode (this, result.InsertPosition, links); tle.TextLinkMode = TextLinkMode.General; if (tle.ShouldStartTextLinkMode) { tle.OldMode = CurrentMode; tle.StartMode (); CurrentMode = tle; GLib.Timeout.Add (10, delegate { tle.UpdateTextLinks (); return false; }); } } }
internal void InsertTemplate (CodeTemplate template, MonoDevelop.Ide.Gui.Document document) { Document.BeginAtomicUndo (); var result = template.InsertTemplateContents (document); TextLinkEditMode tle = new TextLinkEditMode (this, result.InsertPosition, result.TextLinks); if (PropertyService.Get ("OnTheFlyFormatting", false)) { Formatter prettyPrinter = TextFileService.GetFormatter (Document.MimeType); if (prettyPrinter != null && prettyPrinter.SupportsOnTheFlyFormatting) { int endOffset = result.InsertPosition + result.Code.Length; string text = prettyPrinter.FormatText (document.Project.Policies, Document.MimeType, Document.Text, result.InsertPosition, endOffset); string oldText = Document.GetTextAt (result.InsertPosition, result.Code.Length); // Console.WriteLine (result.InsertPosition); // Console.WriteLine ("old:" + oldText); // Console.WriteLine ("new:" + text); Replace (result.InsertPosition, result.Code.Length, text); Caret.Offset = result.InsertPosition + TranslateOffset (oldText, text, Caret.Offset - result.InsertPosition); foreach (TextLink textLink in tle.Links) { foreach (ISegment segment in textLink.Links) { segment.Offset = TranslateOffset (oldText, text, segment.Offset); } } } } if (tle.ShouldStartTextLinkMode) { tle.OldMode = CurrentMode; tle.StartMode (); CurrentMode = tle; } Document.EndAtomicUndo (); }
public static ExpansionObject GetExpansionObject(CodeTemplate template) { // TODO: Add more expansion objects. return(new ExpansionObject()); }