From the moment you can see the class, function or method, in the index you can abreviate the writing of the name.
For example,
instead of writing the cross-reference with the fully qualified name:
:func:`~package.subpackage.module.method`
:meth:`~package.subpackage.module.method`
you can simply write:
:func:`.method`
:meth:`.method`
Notice the use of the dot . is necessary if you are cross-referencing something outside of your local scope. If, for example, you are referencing an attribute or method within the class where you write the cross-reference, then the following does work:
:meth:`method`
:attr:`method`
Notice also, that within the scope :meth: and :func: both work interchangeably. However, outside the scope you have to use the precise role, depending if you are referencing a method, or a function.
Be reminded you can have name collisions, since the same name can be used in different modules for different objects. In that case, you should use the fully qualified name to distinguish exactly which object you are referencing.
It's important to check the index to verify the object has already been inserted there (which is done automatically by the autodoc or domain directives in your .rst files). The normal index will display "object name (fully qualified name)", if it's in the index then it can be cross-referenced.
Edit: below's a workaround to show .method as class.method; info above applies.
`ClassName.`:meth:`.method`
