public DelegatingCompleter(ClassFinder classFinder) throws IOException, ClassNotFoundException {
ClojureCompletionWrapper wrapper = new ClojureCompletionWrapper();
DefaultCompleter DEFAULT_COMPLETER = new DefaultCompleter(wrapper);
JavaInvocationCompleter JAVA_COMPLETER = new JavaInvocationCompleter();
Completer FQN_CLASS_FINDER = new FqnClassCompleter(classFinder);
// java interop
completers.put(pattern("\\(\\. "), JAVA_COMPLETER);
// import
Completer PACKAGE_NAME_COMPLETER = new PackageNameCompleter(classFinder);
completers.put(pattern("\\(import \\["), PACKAGE_NAME_COMPLETER);
completers.put(pattern("\\(import '\\("), PACKAGE_NAME_COMPLETER);
completers.put(pattern("\\(import '"), FQN_CLASS_FINDER);
completers.put(pattern("\\(import "), FQN_CLASS_FINDER);