def is_valid(self, node, lint_context):
        """ Whether the specified node is valid.

        Abbreviation options are invalid.
        """

        node_type = NodeType(node['type'])

        if node_type is NodeType.OPTION:
            # Remove & at head
            option_name = node['value'][1:]
            is_valid = option_name not in Abbreviations

            if not is_valid:
                self._make_description_by_option_name(option_name)

            return is_valid

        excmd_node = node
        is_set_cmd = excmd_node['ea']['cmd'].get('name') in SetCommandFamily

        if not is_set_cmd:
            return True

        option_expr = excmd_node['str'].split()[1]
        # Care `:set ft=vim` and `:set cpo&vim`, ...
        option_name = re.match(r'[a-z]+', option_expr).group(0)

        # After a "set" command, we can add an invert prefix "no" and "inv"
        # to options. For example, "nowrap" is an inverted option "wrap".
        is_valid = AbbreviationsIncludingInvertPrefix not in option_name

        if not is_valid:
            self._make_description_by_option_name(option_name)

        return is_valid
dataset/ETHPy150Open Kuniwak/vint/vint/linting/policy/prohibit_abbreviation_option.py/ProhibitAbbreviationOption.is_valid/swapped operands of `not in`