Вот моя попытка, см. Пример Codepen
. Я создал метод, который переключает добавление и удаление цвета в массиве. Затем я добавил функцию щелчка для самой строки с помощью @click.capture.stop="toggleColor(color)"
.
Часть .capture.stop
проверяет, нажал ли пользователь сначала на поле выбора, и если это так, останавливает повторный запуск метода. Иначе, когда вы щелкаете по полю выбора, поле выбора и строка переключают значение, тем самым удаляя друг друга
methods: {
toggleColor (color) {
if (this.selected.includes(color)) {
// Removing the color
this.selected.splice(this.selected.indexOf(color), 1);
} else {
// Adding the color
this.selected.push(color);
}
}
}
Этот шаблон работы:
[^(final)] static [^(final)][^(\})]*$
Вот тест:
$ cat test.txt
private int x = "3";
private static x = "3";
private final static String x = "3";
private static final String x = "3";
private static String x = "3";
public static void main(String args[]) {
blah;
}
$ grep "[^(final)] static [^(final)][^(\})]*$" test.txt
private static x = "3";
private static String x = "3";
(Я понимаю это private static x = "3";
не допустимый синтаксис, но шаблон все еще содержит хорошо.)
Шаблон составляет факт это final
может появиться прежде или после static
с [^(final)] static [^(final)]
. Остальная часть шаблона, [^(\})]*$
, предназначен для предотвращения любого {
символы от появления в остатке от строки.
Этот шаблон не будет работать однако, если кому-либо нравится писать их проекты производства работ как это:
private static void blah()
{
//hi!
}
Вместо того, чтобы проверить на отсутствие фигурной скобки, я искал бы точку с запятой в конце:
^(?![ \t]*import\b)(?!.*\bfinal\b).*\bstatic\b.*;[ \t]*$
Eclipse должен иметь своего рода поиск Java, встроенный, где Вы могли указать это... Еще, вместо того, чтобы писать одному крупному монстру regexp, попытайтесь объединить в цепочку вместе набор властей:
grep -r static . | grep -v final
в 1-м операторе-r заставляет grep рекурсивно вызывать по дереву каталогов, запускающемуся в локальном каталоге, результаты передаются по каналу к 2-му grep, который удаляет весь final
. Продолжайте добавлять, что-v до всего лишнего удален из результатов. Это обычно легче - хотя менее изящный - чем выяснение сложного regexp для заботы обо всем.
FindBugs найдет статические непоследние переменные для Вас. (Наряду со многими другими интересными вещами.) у меня были хорошие результаты с использованием автономной версии. Существует также плагин Eclipse, но я не использовал это.
Одна из инспекций кода IntelliJ уже делает это. Можно на самом деле выполнить инспектор кода, одинокий, если Вы хотите и имеете его, генерируют отчет (полезный для ночной сборки).
Как предыдущий сказанный плакат, Найдите, что Ошибки сделают это, и я предполагаю, что другие инструменты инспекции кода сделают это также. Вы - вероятно, более обеспеченная интеграция одного из того большего количества полных инструментов инспекции кода, а не одноразового сценария только для этой вещи.
Это не regex, но здесь является плагином, названным checkstyle, который сделает это для Вас, а также многих других исходных проверок. Это даже решает много проблем, которые это находит автоматически.