public CodeRefactoring GetRefactoring(IDocument document, TextSpan textSpan, CancellationToken cancellationToken) { var tree = (SyntaxTree)document.GetSyntaxTree(cancellationToken); var root = tree.GetRoot(cancellationToken); var token = tree.GetRoot().FindToken(textSpan.Start); var m = token.Parent as MethodDeclarationSyntax; if (m == null) return null; var model = document.TryGetSemanticModel(); if (model == null) return null; return new CodeRefactoring(new[] { new ReadyCodeAction( "Remove method and calls to method (including any side-effects in arguments)", document, root, () => document.NewRootForNukeMethodAndAnySideEffectsInArguments(m))}); }