private VirtualTextDocument(ITextDocument textDocument) { _textDocument = textDocument; if (CodeStreamDiffUri.TryParse(_textDocument.FilePath, out CodeStreamDiffUri uri)) { Uri = uri.Uri; Id = uri.Uri.ToLocalPath(); FileName = uri.FileName; SupportsMarkers = SupportsMargins = false; } else { Uri = _textDocument.FilePath.ToUri(); Id = Uri?.ToLocalPath(); FileName = Path.GetFileName(_textDocument.FilePath); SupportsMarkers = SupportsMargins = true; } }
public static bool TryParse(string str, out CodeStreamDiffUri csdu) { if (str.IsNullOrWhiteSpace()) { csdu = null; return(false); } var match = Regex.Match(str); if (!match.Success) { csdu = null; return(false); } csdu = new CodeStreamDiffUri(match.Groups["reviewId"].Value, match.Groups["checkpoint"].Value, match.Groups["repoId"].Value, match.Groups["direction"].Value, match.Groups["filePath"].Value ); return(true); }