Combinando a primeira linha após um colchete no Lint

0

Estou criando uma regra personalizada para a linguagem de programação Lint para:

  • corresponde a 1 ou mais linhas vazias após { e
  • outra regra para corresponder à linha vazia antes de } .

Como exemplo neste código, quero que essas regras correspondam à linha 2 e à linha 5:

class Test {                   /* Line 1 */
                               /* Line 2 */
  func example() {             /* Line 3 */
  }                            /* Line 4 */
                               /* Line 5 */
}

Eu tentei fazer isso com lookahead / lookbehind positivo, mas sem sorte (?<=\{)\n .

Alguém poderia ajudar com isso?

Atualização:

Adicionado whitespeace ao exemplo.

class Test { 

  func example() { 
  }

}
    
por Feras Alnatsheh 16.05.2018 / 16:47

1 resposta

1

Isso corresponde ao que você deseja:

\{\h*\R\K\h*\R|\R\K\h*\R(?=\h*\})
//added__^^^

Explicação:

  \{    : open brace
  \h*   : 0 or more horizontal spaces
  \R    : any kind of line break
  \K    : forget all we have seen until this position
  \h*   : 0 or more horizontal spaces
  \R    : any kind of line break
|       : OR
  \R    : any kind of line break
  \K    : forget all we have seen until this position
  \h*   : 0 or more horizontal spaces
  \R    : any kind of line break
  (?=   : positive lookahead
    \h* : 0 or more horizontal spaces
    \}  : close brace
  )     : end lookahead
    
por 16.05.2018 / 19:10

Tags