public static Completable getTabCompleter(Class<?> c) {
        if (c.isAssignableFrom(Completable.class)) {
            if (tabCompleters.containsKey(c))
                return tabCompleters.get(c);

            try {
                return (Completable) c.newInstance();
            }

            catch (IllegalAccessException | InstantiationException ignored) {
                // We return the same tab completer here as we do below.
            }
        }

        return Workbench.defaultTabCompleter;
    }