- Tutorial for mod_python - Add shortcut for running unit-test - Context insensitive completions: - Organize imports should pass all the not defined vars and show the imports available for them - Organize imports should merge imports with the same 'xxx' in from xxx import yyy, bbb, etc - Change all calls to Runtime.exec(String) to Runtime.exec(String[]) - hierarchy view: show with f4 / close / open view / f4 (will not work) - DEBUGGER BUG: if a class is defined within a method, things later in that method are not able to get the correct name for the breakpoint scope (cannot reproduce?) - Debugger: enable users to configure the mappings for remote debugging in a 'nice' way. - The filter for the name of tests to ignore when running pyunit should be asked at run-time (with user-option to not show it). - When opening a python file, it should try to 'adapt' to the current indent style used (and give warnings about wrong stuff). - Ctrl+2+ XXX should be case-independent. - Ctrl+* should enable/disable mark occurrences - Variable highlight doesn't respect local scope (all docstrings are gotten in the file when renaming a local variable) - Add breakpoint if file is zip - Mark new project as python 2.5 - Enable users to work with zip files and integrate better with java (jars and ast structure). - Simple support (code-completion / modules): OK - Go to definition: OK, but needs changing to NameLookup in findDefinition (better API reference -- internal, but we'll be using it in another place, so, it'll have to be supported anyway) - Context insensitive import: OK - Debugger - .pyd inside zip file (handled but not tested): - ModulesManager: else if(PythonPathHelper.isValidDll(emptyModuleForZip.pathInZip)){ - CNF: Go into / up in pydev package explorer: http://richclientplatform.blogspot.com/2007/07/adding-go-into-and-go-up-to-cnf.html - Option to add line at end of file - Generate log for reporting errors - Rename refactoring: check for overriden methods - Remote debugging: use module name is possible? (not filesystem dependent) - better warning when user does not have psyco (while debugging) - PyGlobalsBrowser.getFromWorkspace() should work with jython and python if both are available - static analysis case: import os os.Bar().Foo() <-- error in wrong places! console: - getpass: echo mode - persistent history - undo/redo for current line - make use in debugger docs: http://www.fabioz.com/pydev/manual_adv_remote_debugger.html (need to be in debug perspective) - Try to reproduce: problems: !MESSAGE Error in occurrences while analyzing modName:petro20.writers.kase._kase_writer initialName:compression line (start at 0):10 !STACK 0 java.lang.RuntimeException: Error in occurrences while analyzing modName:petro20.writers.kase._kase_writer initialName:compression line (start at 0):10 at com.python.pydev.refactoring.markoccurrences.MarkOccurrencesJob.checkAnnotations(MarkOccurrencesJob.java:229) at com.python.pydev.refactoring.markoccurrences.MarkOccurrencesJob.run(MarkOccurrencesJob.java:125) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: java.lang.ClassCastException: org.python.pydev.parser.jython.ast.Module at com.python.pydev.refactoring.wizards.rename.PyRenameParameterProcess.init(PyRenameParameterProcess.java:109) at com.python.pydev.refactoring.wizards.rename.PyRenameParameterProcess.(PyRenameParameterProcess.java:70) at com.python.pydev.refactoring.wizards.RefactorProcessFactory.getProcess(RefactorProcessFactory.java:64) at com.python.pydev.refactoring.wizards.rename.PyRenameEntryPoint.checkInitialConditions(PyRenameEntryPoint.java:193) at com.python.pydev.refactoring.markoccurrences.MarkOccurrencesJob.checkAnnotations(MarkOccurrencesJob.java:216) ... 2 more problem after removing project; Unable to find the path /kraken20 2.0.13/kraken20/source/python in the project were it's added as a source folder for pydev (project: kraken20 2.0.13) Unable to find the path /kraken20 2.0.13/kraken20/source/python in the project were it's added as a source folder for pydev (project: kraken20 2.0.13) org.eclipse.core.runtime.CoreException: Unable to find the path /kraken20 2.0.13/kraken20/source/python in the project were it's added as a source folder for pydev (project: kraken20 2.0.13) at org.python.pydev.plugin.PydevPlugin.log(PydevPlugin.java:372) at org.python.pydev.plugin.nature.PythonPathNature.getOnlyProjectPythonPathStr(PythonPathNature.java:149) at org.python.pydev.plugin.nature.PythonNature.rebuildPath(PythonNature.java:464) at org.python.pydev.plugin.nature.PythonNature.rebuildPath(PythonNature.java:457) at org.python.pydev.plugin.nature.PythonPathNature.getProjectSourcePath(PythonPathNature.java:237) at org.python.pydev.plugin.nature.PythonPathNature.getProjectSourcePathSet(PythonPathNature.java:189) at org.python.pydev.navigator.PythonModelProvider.doWrapPossibleSourceFolder(PythonModelProvider.java:432) at org.python.pydev.navigator.PythonModelProvider.doWrap(PythonModelProvider.java:380) at org.python.pydev.navigator.PythonModelProvider.wrapChildren(PythonModelProvider.java:337) at org.python.pydev.navigator.PythonModelProvider.convertToPythonElementsAddOrRemove(PythonModelProvider.java:250) at org.python.pydev.navigator.PythonModelProvider.interceptAdd(PythonModelProvider.java:106) at org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider.interceptAdd(SafeDelegateTreeContentProvider.java:224) at org.eclipse.ui.internal.navigator.NavigatorPipelineService.pipelineInterceptAdd(NavigatorPipelineService.java:124) at org.eclipse.ui.internal.navigator.NavigatorPipelineService.interceptAdd(NavigatorPipelineService.java:81) at org.eclipse.ui.navigator.CommonViewer.add(CommonViewer.java:242) at org.python.pydev.navigator.PythonBaseModelProvider$2.run(PythonBaseModelProvider.java:844) at org.python.pydev.navigator.PythonBaseModelProvider.runUpdates(PythonBaseModelProvider.java:698) at org.python.pydev.navigator.PythonBaseModelProvider.access$0(PythonBaseModelProvider.java:694) at org.python.pydev.navigator.PythonBaseModelProvider$1.run(PythonBaseModelProvider.java:683) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:158) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:326) at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:934) at org.eclipse.ui.internal.wizards.datatransfer.WizardProjectsImportPage.createProjects(WizardProjectsImportPage.java:1091) at org.eclipse.ui.wizards.datatransfer.ExternalProjectImportWizard.performFinish(ExternalProjectImportWizard.java:97) at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:742) at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:373) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:616) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) at org.eclipse.jface.window.Window.runEventLoop(Window.java:820) at org.eclipse.jface.window.Window.open(Window.java:796) at org.eclipse.ui.actions.ImportResourcesAction.run(ImportResourcesAction.java:159) at org.eclipse.ui.actions.BaseSelectionListenerAction.runWithEvent(BaseSelectionListenerAction.java:168) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:546) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219) at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447) at org.eclipse.equinox.launcher.Main.run(Main.java:1173) at org.eclipse.equinox.launcher.Main.main(Main.java:1148) org.eclipse.core.runtime.CoreException[4]: java.lang.RuntimeException: Unable to find the path /kraken20 2.0.13/kraken20/source/python in the project were it 's