https://bugzilla.redhat.com/show_bug.cgi?id=1286379
Bug ID: 1286379 Summary: Issues with pydev editor and outline Product: Fedora Version: 23 Component: eclipse-pydev Assignee: akurtako@redhat.com Reporter: rhbz@genodeftest.de QA Contact: extras-qa@fedoraproject.org CC: akurtako@redhat.com, eclipse-sig@lists.fedoraproject.org, jjohnstn@redhat.com, nathaniel@natemccallum.com
Description of problem: The pydev eclipse plugin has many issues. This includes:
Outline does not link with editor after switching perspective: Steps to reproduce: 1. open a python file in pydev perspective 2. check that outline and editor are linked and test. Should work fine 3. Switch to another perspective (e.g. Debug or C/C++) 4. test again. Now editor and outline are not linked any more.
Sometimes outline isn't even populated, although I cannot give exact steps to reproduce.
Editor and Outline use different style than C/C++, Java, etc. Seems like pydev is creating its own components (discouraged) instead of reusing existing ones.
Refactor is not sensitive to content and role in python files. It will always try to search for all elements with same name in all files in current project. Java and C/C++ editors are way better providing some semantic logic around refactoring.
Version-Release number of selected component (if applicable): eclipse-pydev-4.4.0-2.fc23.x86_64
https://bugzilla.redhat.com/show_bug.cgi?id=1286379
--- Comment #1 from Alexander Kurtakov akurtako@redhat.com --- Christian, Would you be so kind to try with eclipse pydev installed from it's update site? I'm interested in the outline issues being reproducible with upstream pydev. Regarding the styles used - yes pydev use it's own components in many places and there is little we can do about it. Please report this upstream, the more people requesting standardizaton, the higher chances for it.
https://bugzilla.redhat.com/show_bug.cgi?id=1286379
--- Comment #2 from Christian Stadelmann rhbz@genodeftest.de --- Sorry, I am unable to find an upstream bug tracker. Both http://www.pydev.org/ and https://github.com/fabioz/Pydev don't provide one. Upstream eclipse-pydev is a complete mess, doesn't even let eclipse start when using -clean once. Any ideas?
https://bugzilla.redhat.com/show_bug.cgi?id=1286379
Mat Booth mat.booth@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mat.booth@redhat.com, | |rhbz@genodeftest.de Flags| |needinfo?(rhbz@genodeftest. | |de)
--- Comment #3 from Mat Booth mat.booth@redhat.com --- I cannot seem reproduce this on Rawhide (PyDev 4.5.5 and Eclipse Neon)
I.e. clicking on items in the outline view always moves the cursor in the editor to the element I clicked on, no matter which perspective I switch to.
Any chance you can test with PyDev 4.5.5 in the Fedora 24 Beta and see if the issue is fixed for you there?
https://bugzilla.redhat.com/show_bug.cgi?id=1286379
Christian Stadelmann rhbz@genodeftest.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(rhbz@genodeftest. | |de) |
--- Comment #4 from Christian Stadelmann rhbz@genodeftest.de --- The fact that outline and editor unlink after some usage of eclipse-pydev is gone with pydev 4.5.5 and eclipse 4.5.2-10.
Still, pydev is barely usable:
When starting a pydev perspective, I get this backtrace:
eclipse.buildId=4.5.2.v20160416-0700 java.version=1.8.0_91 java.vendor=Oracle Corporation BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE Command-line arguments: -os linux -ws gtk -arch x86_64
org.python.pydev.shared_core Fehler Tue May 03 20:28:36 CEST 2016 Expected to find 'from' token as the current temporary token (begin col/line can be wrong)!
java.lang.RuntimeException: Expected to find 'from' token as the current temporary token (begin col/line can be wrong)! at org.python.pydev.core.log.Log.log(Log.java:54) at org.python.pydev.parser.grammarcommon.AbstractTreeBuilder.makeImportFrom25Onwards(AbstractTreeBuilder.java:713) at org.python.pydev.parser.grammar27.TreeBuilder27.onCloseNode(TreeBuilder27.java:418) at org.python.pydev.parser.grammarcommon.AbstractTreeBuilder.closeNode(AbstractTreeBuilder.java:625) at org.python.pydev.parser.grammarcommon.JJTPythonGrammarState.closeNodeScope(JJTPythonGrammarState.java:212) at org.python.pydev.parser.grammar27.PythonGrammar27.ImportFrom(PythonGrammar27.java:2777) at org.python.pydev.parser.grammar27.PythonGrammar27.import_stmt(PythonGrammar27.java:2590) at org.python.pydev.parser.grammar27.PythonGrammar27.small_stmt(PythonGrammar27.java:949) at org.python.pydev.parser.grammar27.PythonGrammar27.simple_stmt(PythonGrammar27.java:868) at org.python.pydev.parser.grammar27.PythonGrammar27.stmt(PythonGrammar27.java:843) at org.python.pydev.parser.grammar27.PythonGrammar27.file_input(PythonGrammar27.java:209) at org.python.pydev.parser.grammar27.PythonGrammar27.file_input(PythonGrammar27.java:1) at org.python.pydev.parser.PyParser.reparseDocument(PyParser.java:542) at org.python.pydev.editor.codecompletion.revisited.modules.AbstractModule.createModuleFromDoc(AbstractModule.java:307) at org.python.pydev.editor.codecompletion.revisited.modules.AbstractModule.createModule(AbstractModule.java:286) at org.python.pydev.editor.codecompletion.revisited.ModulesManager.getModule(ModulesManager.java:942) at org.python.pydev.editor.codecompletion.revisited.ModulesManager.getModule(ModulesManager.java:787) at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getModuleInDirectManager(ProjectModulesManager.java:243) at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getModuleAndRelatedModulesManager(ProjectModulesManager.java:215) at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getModule(ProjectModulesManager.java:180) at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getModule(ProjectModulesManager.java:164) at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getModule(AbstractASTManager.java:476) at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findModuleFromPath(AbstractASTManager.java:2150) at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:2024) at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1919) at com.python.pydev.analysis.visitors.ImportChecker.visitImportToken(ImportChecker.java:186) at com.python.pydev.analysis.visitors.ImportChecker.visitImportToken(ImportChecker.java:167) at com.python.pydev.analysis.visitors.Scope.addImportTokens(Scope.java:173) at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.visitImportFrom(AbstractScopeAnalyzerVisitor.java:581) at org.python.pydev.parser.jython.ast.ImportFrom.accept(ImportFrom.java:105) at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.visitFunctionDef(AbstractScopeAnalyzerVisitor.java:427) at org.python.pydev.parser.jython.ast.FunctionDef.accept(FunctionDef.java:137) at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.visitClassDef(AbstractScopeAnalyzerVisitor.java:262) at org.python.pydev.parser.jython.ast.ClassDef.accept(ClassDef.java:172) at org.python.pydev.parser.jython.ast.Module.traverse(Module.java:93) at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.traverse(AbstractScopeAnalyzerVisitor.java:193) at com.python.pydev.analysis.visitors.OccurrencesVisitor.traverse(OccurrencesVisitor.java:263) at org.python.pydev.parser.jython.ast.VisitorBase.visitModule(VisitorBase.java:11) at org.python.pydev.parser.jython.ast.Module.accept(Module.java:85) at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:56) at com.python.pydev.analysis.builder.AnalysisBuilderRunnable.doAnalysis(AnalysisBuilderRunnable.java:251) at com.python.pydev.analysis.builder.AbstractAnalysisBuilderRunnable.run(AbstractAnalysisBuilderRunnable.java:162) at org.python.pydev.core.concurrency.RunnableAsJobsPoolThread$1.run(RunnableAsJobsPoolThread.java:140) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
When closing many python files using Ctrl+W, I get many error messages. This is the only backtrace reported:
eclipse.buildId=4.5.2.v20160416-0700 java.version=1.8.0_91 java.vendor=Oracle Corporation BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE Command-line arguments: -os linux -ws gtk -arch x86_64
org.python.pydev.shared_core Informationen Tue May 03 20:29:01 CEST 2016 It seems it's already disposed...
java.lang.RuntimeException: It seems it's already disposed... at org.python.pydev.shared_core.log.Log.logInfo(Log.java:52) at org.python.pydev.shared_ui.outline.BaseModel.setRoot(BaseModel.java:189) at org.python.pydev.shared_ui.outline.BaseModel$1$1.run(BaseModel.java:68) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3912) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3551) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:694) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608) at org.eclipse.equinox.launcher.Main.run(Main.java:1515) at org.eclipse.equinox.launcher.Main.main(Main.java:1488)
editor scrolling still is utterly slow with many visual artifacts. Refactoring looks like it was fixed.
https://bugzilla.redhat.com/show_bug.cgi?id=1286379
--- Comment #5 from Christian Stadelmann rhbz@genodeftest.de --- Ok, pydev slownes is probably due to missing graphics acceleration on gnome+wayland thus pydev is not to blame. The other tracebacks are gone with pydev 5.0.0-1.fc24 when running a python3 project. If you want to, you may close this issue now.
https://bugzilla.redhat.com/show_bug.cgi?id=1286379
Alexander Kurtakov akurtako@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |CLOSED Resolution|--- |CURRENTRELEASE Last Closed| |2016-05-25 04:03:25
--- Comment #6 from Alexander Kurtakov akurtako@redhat.com --- Marking as closed as per previous comment.
eclipse-sig@lists.stg.fedoraproject.org