private void Apply(string displayName, HtmlElement original, HtmlElement newElement, string tabsBefore) { if ((!string.IsNullOrEmpty(displayName) && (original != null)) && (newElement != null)) { int num = original.NameRange.End.Offset - original.StartOffset; SourceRange insertionRange = GetInsertionRange(original); string s = CodeRush.Language.GenerateElement(newElement); s = CodeRush.StrUtil.RemoveLastLineTerminator(s); if (Options.PutCloseTagOnOwnLine) { var terminator = @"/>"; if (!s.EndsWith(terminator)) { terminator = @">"; } s = s.Substring(0, s.Length - terminator.Length); s += string.Format("\r\n{0}{1}", tabsBefore, terminator); } insertionRange.BindToCode(CodeRush.Documents.Active as TextDocument); ICompoundAction action = CodeRush.TextBuffers.NewMultiFileCompoundAction(displayName, true); IMultiLidContainerGroup group = CodeRush.LinkedIdentifiers.OpenMultiLidContainerGroup(); try { FileChangeCollection changes = new FileChangeCollection(); changes.Add(new FileChange(original.FileNode.Name, insertionRange, s)); CodeRush.File.ApplyChanges(changes, false, true); CodeRush.Caret.MoveTo(insertionRange.Start.Line, (int)(insertionRange.Start.Offset + num)); } catch (Exception exception) { LogBase <Log> .SendException(displayName, exception); } finally { if (_breakApartPreview != null) { _breakApartPreview.Clear(); _breakApartPreview = null; } group.Close(); action.Close(); insertionRange.RemoveAllBindings(); } } }
private void GetChanges(FileChangeCollection result, Member member, string newName) { result.Add(new FileChange(member.FileNode.Name, member.NameRange, newName)); CascadeReferenceSearcher cascadeReferenceSearcher = new CascadeReferenceSearcher(); IElementCollection references = cascadeReferenceSearcher.FindCascadeReferences(CodeRush.Source.ActiveSolution, member); foreach (IElement reference in references) { _NumReferencesChanged++; result.Add(new FileChange(reference.FirstFile.Name, reference.FirstNameRange, newName)); } }
private void AddFileChanges(FileChangeCollection fileChangeCollection, Dictionary<string, List<LanguageElement>> references) { foreach (KeyValuePair<string, List<LanguageElement>> referenceList in references) { string expectedNamespace = referenceList.Key; List<LanguageElement> allReferences = referenceList.Value; foreach (LanguageElement reference in allReferences) fileChangeCollection.Add(new FileChange(reference.FileNode.Name, reference.Range, expectedNamespace)); } }
public void RemoveOldNamespaceImports(FileChangeCollection fileChangeCollection) { foreach (NamespaceReference namespaceReference in _NamespacesToRemove) fileChangeCollection.Add(new FileChange(namespaceReference.FileNode.Name, namespaceReference.Range, String.Empty)); }
private void Apply(string displayName, HtmlElement original, HtmlElement newElement, string tabsBefore) { if ((!string.IsNullOrEmpty(displayName) && (original != null)) && (newElement != null)) { int num = original.NameRange.End.Offset - original.StartOffset; SourceRange insertionRange = GetInsertionRange(original); string s = CodeRush.Language.GenerateElement(newElement); s = CodeRush.StrUtil.RemoveLastLineTerminator(s); if (Options.PutCloseTagOnOwnLine) { var terminator = @"/>"; if(!s.EndsWith(terminator)) { terminator = @">"; } s = s.Substring(0, s.Length - terminator.Length); s += string.Format("\r\n{0}{1}", tabsBefore, terminator); } insertionRange.BindToCode(CodeRush.Documents.Active as TextDocument); ICompoundAction action = CodeRush.TextBuffers.NewMultiFileCompoundAction(displayName, true); IMultiLidContainerGroup group = CodeRush.LinkedIdentifiers.OpenMultiLidContainerGroup(); try { FileChangeCollection changes = new FileChangeCollection(); changes.Add(new FileChange(original.FileNode.Name, insertionRange, s)); CodeRush.File.ApplyChanges(changes, false, true); CodeRush.Caret.MoveTo(insertionRange.Start.Line, (int)(insertionRange.Start.Offset + num)); } catch (Exception exception) { LogBase<Log>.SendException(displayName, exception); } finally { if (_breakApartPreview != null) { _breakApartPreview.Clear(); _breakApartPreview = null; } group.Close(); action.Close(); insertionRange.RemoveAllBindings(); } } }