protected override void ReplaceFieldDeclaration(ICSharpCode.TextEditor.Document.IDocument document, IField oldField, string newFieldDeclaration) { // In VB, the field region begins at the start of the declaration // and ends on the first column of the line following the declaration. int startOffset = document.PositionToOffset(new TextLocation(0, oldField.Region.BeginLine - 1)); int endOffset = document.PositionToOffset(new TextLocation(0, oldField.Region.EndLine - 1)); document.Replace(startOffset, endOffset - startOffset, tabs + newFieldDeclaration + Environment.NewLine); }
protected override void RemoveFieldDeclaration(ICSharpCode.TextEditor.Document.IDocument document, IField field) { // In VB, the field region begins at the start of the declaration // and ends on the first column of the line following the declaration. int startOffset = document.PositionToOffset(new TextLocation(0, field.Region.BeginLine - 1)); int endOffset = document.PositionToOffset(new TextLocation(0, field.Region.EndLine - 1)); document.Remove(startOffset, endOffset - startOffset); }
static TextLocation FindMethodStart(ICSharpCode.TextEditor.Document.IDocument document, DomRegion bodyRegion) { if (bodyRegion.IsEmpty) return TextLocation.Empty; int offset = document.PositionToOffset(new TextLocation(bodyRegion.BeginColumn - 1, bodyRegion.BeginLine - 1)); while (offset < document.TextLength) { if (document.GetCharAt(offset) == '{') { return document.OffsetToPosition(offset + 1); } offset++; } return TextLocation.Empty; }