List<ZenCodingFilter> (ZenCodingNode node, PsiElement context) { List<ZenCodingFilter> result = new ArrayList<>(); while (node instanceof FilterNode filterNode) { String filterSuffix = filterNode.getFilter(); for (ZenCodingFilter filter : ZenCodingFilter.getInstances()) { if (filter.isMyContext(context) && filter.getSuffix().equals(filterSuffix)) { result.add(filter); } } node = filterNode.getNode(); } for (ZenCodingFilter filter : ZenCodingFilter.getInstances()) { if (filter.isMyContext(context) && filter.isAppliedByDefault(context)) { result.add(filter); } } Collections.reverse(result); return result; }