2016-05-15 3 views
1

У меня возникла ситуация, когда Checkstyle создает ложные срабатывания на проверке правил ParenPad. Я также видел эту статью СО Checkstyle: Usage of ParenPad Check, и этот вопрос не связан.Checkstyle ParenPad Check

Рассмотрим следующий фрагмент кода:

public class Foo 

    public static final void main(  String... args) { ... } 

} 

Когда ParenPad настроен так:

<module name="ParenPad"> 
    <property name="option" value="space" /> 
</module> 

Этот результат показывает, как действует, так как есть пространство перед открытием ( в main способ.

Я ходил в класс проверки ParenPad, и я не видел никаких других правил/конфигураций, которые можно было бы использовать для обеспечения безопасности одного места до и/или после скобки. Есть ли что-то встроенное, что позволяет мне выполнять это требование или мне нужно создать пользовательскую проверку? Из того, что я могу сказать, текущая реализация проверяет существование для любого количества пробелов, если табуляция ограничена или иным образом.

ответ

0

Глядя на код checkstyle, единственный способ, который я вижу сейчас, - добавить еще одну проверку. Сначала вы определите ParenPad, а затем добавить две RegexpSingleline s

<module name="RegexpSingleline"> 
    <property name="format" value="(\s{2,}$"/> 
    <property name="message" value="Too many spaces after ("/> 
</module> 
<module name="RegexpSingleline"> 
    <property name="format" value="\s{2,})$"/> 
    <property name="message" value="Too many spaces before)"/> 
</module> 

Правда, это может привести к поломке в других случаях (например, строка, которая имеет ( или )), но вы можете расширить его, чтобы охватить большую часть вашего случаев.

Смежные вопросы