def class_execute(a_project, a_name, a_routine, a_class_name=None):
    if a_class_name:
        l_class = a_class_name
        if l_class == "%":
            l_class = get_class_from_buffer(a_project)
    else:
        l_class = environment.word_under_the_cursor()
        if not l_class:
            l_class = get_class_from_buffer(a_project)
    if l_class:
        eiffel_ide.launch_process(a_project,
                                  lambda window: a_routine(l_class, window),
                                  "Getting " + a_name.lower() + " of class " +
                                  l_class, a_name + " of class " + l_class,
                                  False, True,
                                  lambda: set_class_and_info(a_name, l_class))
        environment.execute("setlocal filetype=eiffel")
Tool routine for all class information functionnalities
dataset/ETHPy150Open tioui/Vim_Eiffel_IDE/pyplugin/eiffel_class.py/class_execute