Why do comments always move back to left?

I could reproduce your problem.

I created a test case in Script mode:

import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
def name = "村人"
switch (name) {
	case "犬":
		// dog barks
		println "わんわん"
		break
	case "猿":
		// monkey shouts
		println "きいきい"
		break
	case "雉":
		// rooster crows
		println "けんけん"
		break
	default:
		// the unknown greets 
		println "こんにちは桃太郎さんどこへ行くんですか"
		break
}
WebUI.comment("鬼ヶ島へ鬼退治に行くんです")

I switched the Test Case editor from Script mode to Manual mode. In the Manual mode, I added a line:

I saved it to disk.

I reopened the Test Case in Script mode. It looked as follows:

import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import internal.GlobalVariable as GlobalVariable

def name = '村人'

switch (name) {
    case '犬':
        // dog barks
        println('わんわん')

        break
    case '猿':
        // monkey shouts
        println('きいきい')

        break
    case '雉':
        // rooster crows
        println('けんけん')

        break
    // the unknown greets
    default:
        println('こんにちは桃太郎さんどこへ行くんですか')

        break
}

WebUI.comment('鬼ヶ島へ鬼退治に行くんです')

WebUI.comment('お気をつけていってらっしゃい')


As you see, Test Case Editor in Manual mode saved the code in an entirely new format. Especially the line of

    // the unknown greets

is interesting. It has new width of indent, it is located in a line that is 1 one above the original. Very strange. Probably the Manual mode does not recognise a Groovy comment (such as // the unknown greets) as a first class citizen.

workaround

If you want your Groovy comments preserved as you typed, Don’t switch to the Manual mode. You and all team members should stay in the Script mode.

If somebody in your team demands the Manual mode, then you can write String literals such as this:

    default:
        'the unknown greets' 
        println "こんにちは桃太郎さんどこへ行くんですか"
        break

I checked this and found the Manual mode respects String literals.

1 Like