derkork/intellij-leiningen-plugin — pull request #14 by 64BitChris (2012-12-09 20:56:19+00:00)
Title: Issue #11 Pull in Dependencies with Leiningen 2.0

## Summary

Completed integration with Leiningen 2.0 core libraries for pulling in dependencies as well as inspecting values based on a project.clj file. This is a more robust way (and supported) of interacting with a project file.

Dependencies were added by creating Project Libraries and then hooking them into the module by adding OrderEntry instances.

## Additional Features

* Support for multiple source, test, or resource paths.
* Support for different scopes on dependencies as defined by the leiningen project file.
* Background processing for leiningen project refreshes (ie. don't hang the ui). We'll need to add better visual feedback for when we're processing but for now this is better than blocking the UI.

## Notes

Extracted the IDEA module instantiation code into its own class whose specific responsibility is to load a module into an IDEA project from a leiningen project file. This was done to decouple module creation from the project manager. As this new utility class is functional (with side effects which can't be avoided because of the IDEA API) it has all its state passed into the functions. In addition to being modular, this approach should make it easier to unit test the functionality in the future.

Removed IntelliJ project files. These files can cause problems if the environment is not setup properly. Also, with leiningen 2.0 there are a lot of dependencies that get pulled in so each user's m2 directory will be different.

Provided instructions on how to create a development environment with no assumptions on an external plugin (ie. this plugin). This should make it a little easier to get started developing on this plugin.

Moved the interop jar to a separate directory so that it wouldn't conflict with the java module when leiningen detects it and connects to the existing module.