public void TestCommentedLines() { string fileContent = "// This case tests the ability to format embedded comments\n" + "// properly. These include both multi-line and single-line\n" + "// comments syntax. \n" + " \n" + "// This line by itself should not be modified. \n" + " \n" + "a=2;// This line should be formatted (not indented). \n" + " \n" + "/* This is the beginning of a multi-line comment block \n" + " \n" + " This is a line within a multi-line comment block. \n" + " It is indented now but should not be indented further.\n" + " \n" + "This marks the end of a multi-line comment block */ \n" + " \n" + " [Imperative] // This should be un-indented. \n" + "{ \n" + " /* This is another multi-line \n" + " comment block, only that it \n" + " is indented for the scope */ \n" + " \n" + " // This should be indented. \n" + " \n" + "b=3;// Formatting should resume on this line. \n" + " c = 4 ; // And this line, too. \n" + "} \n" + " \n" + " // Spaces in comments shouldn't be normalized! \n"; Solution testSolution = Solution.CreateTemporary(); testSolution.AddNewScript(fileContent); testSolution.ActivateScript(0); TextEditorCore textCore = TextEditorCore.Instance; textCore.ChangeScript(0); textCore.ParseScriptImmediate(); SmartFormatter.Instance.AlternateEditorCore = textCore; bool formatted = textCore.FormatDocument(); Assert.AreEqual(true, formatted); SmartFormatter.Instance.AlternateEditorCore = null; Assert.AreEqual("// This case tests the ability to format embedded comments\n", textCore.GetLine(0)); Assert.AreEqual("// properly. These include both multi-line and single-line\n", textCore.GetLine(1)); Assert.AreEqual("// comments syntax. \n", textCore.GetLine(2)); Assert.AreEqual("\n", textCore.GetLine(3)); Assert.AreEqual("// This line by itself should not be modified. \n", textCore.GetLine(4)); Assert.AreEqual("\n", textCore.GetLine(5)); Assert.AreEqual("a = 2; // This line should be formatted (not indented). \n", textCore.GetLine(6)); Assert.AreEqual("\n", textCore.GetLine(7)); Assert.AreEqual("/* This is the beginning of a multi-line comment block \n", textCore.GetLine(8)); Assert.AreEqual("\n", textCore.GetLine(9)); Assert.AreEqual(" This is a line within a multi-line comment block. \n", textCore.GetLine(10)); Assert.AreEqual(" It is indented now but should not be indented further.\n", textCore.GetLine(11)); Assert.AreEqual("\n", textCore.GetLine(12)); Assert.AreEqual("This marks the end of a multi-line comment block */ \n", textCore.GetLine(13)); Assert.AreEqual("\n", textCore.GetLine(14)); Assert.AreEqual("[Imperative] // This should be un-indented. \n", textCore.GetLine(15)); Assert.AreEqual("{\n", textCore.GetLine(16)); Assert.AreEqual(" /* This is another multi-line \n", textCore.GetLine(17)); Assert.AreEqual(" comment block, only that it \n", textCore.GetLine(18)); Assert.AreEqual(" is indented for the scope */ \n", textCore.GetLine(19)); Assert.AreEqual(" \n", textCore.GetLine(20)); Assert.AreEqual(" // This should be indented. \n", textCore.GetLine(21)); Assert.AreEqual(" \n", textCore.GetLine(22)); Assert.AreEqual(" b = 3; // Formatting should resume on this line. \n", textCore.GetLine(23)); Assert.AreEqual(" c = 4; // And this line, too. \n", textCore.GetLine(24)); Assert.AreEqual("}\n", textCore.GetLine(25)); Assert.AreEqual("\n", textCore.GetLine(26)); Assert.AreEqual("// Spaces in comments shouldn't be normalized! \n", textCore.GetLine(27)); }