有两件事我想弄清楚:
例如,突出显示以下内容:
String sql =
"SELECT S.STOCK_ID, S.NAME, C.COLOR, S.PROD_DESCRIP, S.PRICE, S.PROD_FAM_ID " +
"FROM STOCK S " +
"INNER JOIN FAMILY F " +
"ON S.STOCK_ID = ? AND F.PART_NUM = 'FINISH' AND F.FAMILY_ID = S.PROD_FAM_ID AND S.IS_ACTIVE = 1 " +
"LEFT OUTER JOIN COLOR C ON C.COLOR_ID = S.COLOR " +
"ORDER BY S.PRODNO,S.NAME";
然后CTRL+SHIFT+一些东西来得到:
String sql = """
SELECT S.STOCK_ID, S.NAME, C.COLOR, S.PROD_DESCRIP, S.PRICE, S.PROD_FAM_ID
FROM STOCK S
INNER JOIN FAMILY F
ON S.STOCK_ID = ? AND F.PART_NUM = 'FINISH' AND F.FAMILY_ID = S.PROD_FAM_ID AND S.IS_ACTIVE = 1
LEFT OUTER JOIN COLOR C ON C.COLOR_ID = S.COLOR
ORDER BY S.PRODNO,S.NAME
""";
似乎还没有直接的捷径可以做到这一点。 可以分两步完成:
选择不包含结尾分号的文本。点击
Ctrl + Shift + '
Source > Add text block
"""
"SELECT S.STOCK_ID, S.NAME, C.COLOR, S.PROD_DESCRIP, S.PRICE, S.PROD_FAM_ID " +
"FROM STOCK S " +
"INNER JOIN FAMILY F " +
"ON S.STOCK_ID = ? AND F.PART_NUM = 'FINISH' AND F.FAMILY_ID = S.PROD_FAM_ID AND S.IS_ACTIVE = 1 " +
"LEFT OUTER JOIN COLOR C ON C.COLOR_ID = S.COLOR " +
"ORDER BY S.PRODNO,S.NAME"
""";```
再次选择不包含三引号的文本。 点击
Ctrl + F
,选中 Regular Expressions
并使用 ^(\s*)"([^"]+)"(\s*[;+]?)
作为查找表达式并且$1$2
作为替换表达式。点击Replace all
结果
private static final String sql =
"""
SELECT S.STOCK_ID, S.NAME, C.COLOR, S.PROD_DESCRIP, S.PRICE, S.PROD_FAM_ID
FROM STOCK S
INNER JOIN FAMILY F
ON S.STOCK_ID = ? AND F.PART_NUM = 'FINISH' AND F.FAMILY_ID = S.PROD_FAM_ID AND S.IS_ACTIVE = 1
LEFT OUTER JOIN COLOR C ON C.COLOR_ID = S.COLOR
ORDER BY S.PRODNO,S.NAME""";