void FixIndentationForceNewLine(AstNode node) { var directive = node as PreProcessorDirective; if (node.GetPrevNode () is NewLineNode) { if (directive != null && !policy.IndentPreprocessorDirectives) { var startNode = node.GetPrevNode (); var startOffset = document.GetOffset(startNode.EndLocation); int endOffset = document.GetOffset(node.StartLocation); AddChange(startOffset, endOffset - startOffset, ""); return; } else { FixIndentation(node); } } else { // if no new line preceeds an #endif directive it's excluded if (directive != null) { if (directive.Type == PreProcessorDirectiveType.Endif) return; } var startNode = node.GetPrevSibling(n => !(n is WhitespaceNode)) ?? node; var startOffset = document.GetOffset(startNode.EndLocation); int endOffset = document.GetOffset(node.StartLocation); if (startOffset >= endOffset) return; if (directive != null && !policy.IndentPreprocessorDirectives) { AddChange(startOffset, endOffset - startOffset, ""); return; } AddChange(startOffset, endOffset - startOffset, curIndent.IndentString); } }