Я делаю пользовательское правило для языка программирования Lint, чтобы:

  • соответствует 1 или более пустым строкам после { и
  • другое правило, чтобы соответствовать пустой строке до } .

В качестве примера в этом коде я хочу, чтобы эти правила соответствовали строке 2 и строке 5:

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

Я пытался сделать это с позитивным взглядом, но безуспешно (?<=\{)\n .

Может ли кто-нибудь помочь с этим?

Обновить:

Добавлен пробел к примеру.

class Test { 

  func example() { 
  }

}

1 ответ1

1

Это соответствует тому, что вы хотите:

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

Объяснение:

  \{    : 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .