code: def plugin(cls):
      
      cls._nvim_plugin = True
      # the _nvim_bind attribute is set to True by default, meaning that
      # decorated functions have a bound Nvim instance as first argument.
      # For methods in a plugin-decorated class this is not required, because
      # the class initializer will already receive the nvim object.
      predicate = lambda fn: hasattr(fn, '_nvim_bind')
      for _, fn in inspect.getmembers(cls, predicate):
          if IS_PYTHON3:
              fn._nvim_bind = False
          else:
              fn.im_func._nvim_bind = False
      return cls
docs: Tag a class as a plugin.
  
      This decorator is required to make the class methods discoverable by the
      plugin_load method of the host.