public GoTo Parse(string argument)
{
var chunks = argument.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
if (chunks.Length == 0)
return null;
var goTo = new GoTo();
if (!File.Exists(chunks[0]))
return null;
goTo.File = chunks[0];
if (chunks.Length == 1)
return goTo;
int line;
if (!int.TryParse(chunks[1], out line))
return goTo;
goTo.Line = line;
if (chunks.Length == 2)
return goTo;
int column;
if (!int.TryParse(chunks[2], out column))
return goTo;
goTo.Column = column;
if (chunks.Length == 3)
return goTo;
goTo.Window = chunks[3];
return goTo;
}