Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace FooBarIde
- {
- class InsertDateHandler : CommandHandler
- {
- protected override void Run()
- {
- Document doc = IdeApp.Workbench.ActiveDocument;
- try
- {
- var lineCount = doc.Editor.LineCount;
- var lines = new List<MonoDevelop.Ide.Editor.IDocumentLine>();
- for (var i = 0; i < lineCount; i++)
- {
- var x = doc.Editor.GetLine(i);
- if (x != null)
- lines.Add(x);
- }
- var result =
- lines.Where(x =>
- {
- var line = doc.Editor.GetLineText(x.LineNumber);
- return line.Contains("open");
- });
- if (result.Any())
- {
- var lineNumber = result.OrderByDescending(x => x.LineNumber).First();
- var text = "open Foo";
- doc.Editor.InsertText(lineNumber.EndOffsetIncludingDelimiter, text);
- doc.Editor.InsertText(lineNumber.EndOffsetIncludingDelimiter + text.Length, "\n");
- }
- else
- {
- var openeing =
- lines.Where(x =>
- {
- var line = doc.Editor.GetLineText(x.LineNumber);
- return line.Contains("module") || line.Contains("namesapce");
- });
- if (result.Count() != 0)
- {
- var lineNumber = openeing.OrderByDescending(x => x.LineNumber).First();
- doc.Editor.InsertText(lineNumber.Offset + lineNumber.Length + 1, "open Foo\n");
- }
- else
- {
- var lineNumber = openeing.OrderByDescending(x => x.LineNumber).First();
- doc.Editor.InsertText(0, "open Foo");
- }
- }
- }
- catch (Exception e)
- {
- MessageService.ShowError("Something failed", "Error details", e);
- LoggingService.LogInternalError("Something failed...", e);
- }
- }
- protected override void Update(CommandInfo info)
- {
- Document doc = IdeApp.Workbench.ActiveDocument;
- info.Enabled = doc != null && doc.Editor != null;
- }
- }
- public enum DateInserterCommands
- {
- InsertDate,
- }
- }
Add Comment
Please, Sign In to add comment