def display_hook(prompt, session, context, matches, longest_match_len):
        # type: (str, ShellSession, BundleContext, List[str], int) -> None
        """
        Displays the available services matches and the service details

        :param prompt: Shell prompt string
        :param session: Current shell session (for display)
        :param context: BundleContext of the shell
        :param matches: List of words matching the substitution
        :param longest_match_len: Length of the largest match
        """
        # Prepare a line pattern for each match (-1 for the trailing space)
        match_pattern = "{{0: <{}}} from {{1}}".format(longest_match_len - 1)

        # Sort matching names
        matches = sorted(match for match in matches)

        # Print the match and the associated name
        session.write_line()
        with use_ipopo(context) as ipopo:
            for factory_name in matches:
                # Remove the spaces added for the completion
                factory_name = factory_name.strip()
                bnd = ipopo.get_factory_bundle(factory_name)
                session.write_line(
                    match_pattern, factory_name, bnd.get_symbolic_name()
                )

        # Print the prompt, then current line
        session.write(prompt)
        session.write_line_no_feed(readline.get_line_buffer())
        readline.redisplay()
def display_hook ( prompt , session , context , matches , longest_match_len ) : match_pattern = "{{0: <{}}} from {{1}}" . format ( longest_match_len - 1 ) matches = sorted ( match for match in matches ) session . write_line ( ) with use_ipopo ( context ) as ipopo : for factory_name in matches : factory_name = factory_name . strip ( ) bnd = ipopo . get_factory_bundle ( factory_name ) session . write_line ( match_pattern , factory_name , bnd . get_symbolic_name ( ) ) session . write ( prompt ) session . write_line_no_feed ( readline . get_line_buffer ( ) ) readline . redisplay ( )
Displays the available services matches and the service details

        :param prompt: Shell prompt string
        :param session: Current shell session (for display)
        :param context: BundleContext of the shell
        :param matches: List of words matching the substitution
        :param longest_match_len: Length of the largest match