== Eclipse for Chimera Development == These notes used the Ubuntu 10.04 package for eclipse, which provided: Eclipse SDK 3.5.2 (Build id: M20100211-1343). See the [http://www.eclipse.org/platform eclipse site] for other downloads. === Eclipse Plugins === The [http://pydev.org/ PyDev] plugin was installed, using the Eclipse: Help > Install New Software utility, by adding the {{{http://pydev.org/updates}}} site. For a tour of using !PyDev with Eclipse, see Ron Smith (2004), [http://www.ibm.com/developerworks/opensource/library/os-ecant/ Python development with Eclipse and Ant]. For a useful vi emulation in eclipse, see [http://www.viplugin.com/viplugin/ viplugin]. An alternative is [http://eclim.org/ eclim]. Install the [http://www.eclipse.org/mylyn/ Mylyn] plugin for task-focused programming, which can integrate with Trac. For an overview of why you can benefit from Mylyn, see the [http://tasktop.com/videos/mylyn/webcast-mylyn-3.0.html Mylyn 3.0 webcast] (about 45 mins). Add the Mylyn plugin to eclipse, including all the 'connectors' (especially the Trac connector). Then add a 'new task repository' with the following settings: * Server: https://plato.cgl.ucsf.edu/trac/chimera * Label: Chimera Trac * User ID: * Password: For anonymous access, change the server protocol to http rather than https. Add the [http://subclipse.tigris.org Subclipse] plugin for subversion access. See the [http://subclipse.tigris.org/wiki/PluginFAQ FAQ] for details on how to configure it for an svn+ssh access to the Chimera svn server (i.e., change preferences to use SVNKit instead of the javaHL client). To install the javaHL library for eclipse and subclipse on Ubuntu, try: {{{ $ sudo apt-get install libsvn-java }}} === Configure !PyDev Preferences === Create a new workspace (e.g., Eclipse - File > Switch Workspace > Other) for the new Chimera workspace settings. Then use Window > Preferences to locate the !PyDev panels to setup the "Interpreter - Python" to use the Chimera [http://plato.cgl.ucsf.edu/trac/chimera/attachment/wiki/ChimeraEclipse/Chimera-Eclispe-PyDev-Preferences.png python2.7 interpreter] (be sure to manually add {{{$CHIMERA/share}}} and {{{$CHIMERA/lib}}} to the "system PYTHONPATH" configuration). Then set some [http://plato.cgl.ucsf.edu/trac/chimera/attachment/wiki/ChimeraEclipse/Chimera-Eclispe-PyDev-Preferences-Env.png Chimera environment variables] (the $PATH and $CHIMERA syntax did not work, so these environment settings use full paths; the paths must point to hard-links in the file system, Chimera doesn't work with symbolic-links). Finally, an optional addition is to create a VirtualEnv for Chimera and add the pylint package, then configure the [http://plato.cgl.ucsf.edu/trac/chimera/attachment/wiki/ChimeraEclipse/Chimera-Eclispe-PyDev-Preferences-PyLint.png pylint preferences]. It should be configured now to enable importing Chimera modules and [http://plato.cgl.ucsf.edu/trac/chimera/attachment/wiki/ChimeraEclipse/Chimera-Eclispe-PyDev-Run.png running Chimera]. Also see this neat [http://www.rose-hulman.edu/class/csse/resources/Eclipse/eclipse-python-configuration.htm step-by-step configuration]. Note especially the section on creating a new project and selecting the language version (Chimera is using python 2.7, as of Sep 2010) and the interpreter (don't use the default, use the Chimera python install). Click on these thumbnails for the larger views: * [[Image(Chimera-Eclispe-PyDev-Preferences.png, 10%)]] : python2.7 configuration * [[Image(Chimera-Eclispe-PyDev-Preferences-Env.png, 10%)]] : environment configuration * [[Image(Chimera-Eclispe-PyDev-Preferences-PyLint.png, 10%)]] : pylint configuration * [[Image(Chimera-Eclispe-PyDev-Run.png, 10%)]] : run configuration === Runtime debugging === Note: this does not address problems with debugging a Tkinter mainloop. The !PyDev plugin for eclipse has facilities for [http://pydev.org/manual_adv_remote_debugger.html remote debugging] of an active process. To use this facility, startup Chimera as usual and launch the IDLE shell. Startup eclipse and activate the !PyDev debug perspective. Activate the !PyDev [[http://pydev.org/manual_adv_remote_debugger.html remote debugging server]. Using a terminal or file browser, locate the {{{pydevd.py}}} file in your eclipse installation (somewhere in the eclipse plugins; e.g. in a linux terminal try: {{{locate pydevd.py}}}). Then, within IDLE, enter the following to enable remote debugging within the eclipse debug perspective: {{{ #pydevd_path="" import sys sys.path.append(pydevd_path) import pydevd pydevd.settrace() }}} In the eclipse console, try {{{print "Hello there!"}}} and see if it appears in the IDLE shell. If it does, your hooked into Chimera from eclipse and you have access to the object inspection features of the !PyDev debugger.