Clang-Format:重新组合字符串文字

iPh*_*ian 9 c++ automated-refactoring clang-format

有没有办法让 clang-format 来改变这个:

function_name("a very very "                | <-- column limit
              "very very "                  |
              "long string");               |
Run Code Online (Sandbox Code Playgroud)

进入这个:

function_name("a very very very very long"  |
              " string");                   |
Run Code Online (Sandbox Code Playgroud)

它会很高兴地打破超出限制的字符串文字,但我似乎无法让它重新组合。

Hol*_*ann 1

遇到同样的问题,没找到怎么解决clang-format。最后,使用以下 Python 脚本:

filename = "/path/to/file"
content = ""
with open(filename,'r') as infile:
  content = infile.read()
  content = re.sub('"\n\s*"', '', content)
with open(filename, 'w') as outfile:
  outfile.write(content)
Run Code Online (Sandbox Code Playgroud)

第 5 行的正则表达式删除一个双引号,后跟一个换行符、空格和一个新的双引号。对我来说这有效。

稍后,以下clang-format选项可能有助于不再破坏字符串文字:

BreakStringLiterals = false
Run Code Online (Sandbox Code Playgroud)