如何在两个 if 条件之间插入换行符

how to insert newline between two if conditions

我正在使用 clang-format 来美化一些现有代码。我想在两个 if 条件之间插入一个换行符,如下面的代码:

int main()                                                                      
{                                                                               
  int x;                                                                        
  int   y;                                                                      

  if (x == 1)                                                                   
  {                                                                             
  }                                                                             
  if(y == 2)                                                                    
  {                                                                             
  }                                                                             
  return 0;                                                                     
} 

应该改为

int main()                                                                      
{                                                                               
  int x;                                                                        
  int   y;                                                                      

  if (x == 1)                                                                   
  {                                                                             
  }
  /* inserted a newline */                                                                           
  if(y == 2)                                                                    
  {                                                                             
  }                                                                             
  return 0;                                                                     
} 

可以使用 clang-format 来完成吗?

不,你不能。

clang-format只是format代码,不能修改代码。您的案例是修改源代码的 AST。使用 RecursiveASTVisitor 查找位置 你想要插入,然后重写回代码。

或者您可以只编写一个正则表达式脚本,插入您想要的内容。 :)