GithubHelp home page GithubHelp logo

eclipse.platform.text's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eclipse.platform.text's Issues

NPE IndentFoldingStrategy.projectionEnabled

with today OOmphed eclipse doubleclick on /org.eclipse.core.net.win32.x86_64/pom.xml
image

java.lang.NullPointerException: Cannot invoke "org.eclipse.jface.text.source.projection.ProjectionAnnotationModel.addAnnotationModelListener(org.eclipse.jface.text.source.IAnnotationModelListener)" because "this.projectionAnnotationModel" is null
	at org.eclipse.ui.internal.genericeditor.folding.IndentFoldingStrategy.projectionEnabled(IndentFoldingStrategy.java:159)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.fireProjectionEnabled(ProjectionViewer.java:475)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.enableProjection(ProjectionViewer.java:523)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1375)
	at org.eclipse.ui.internal.genericeditor.ExtensionBasedTextEditor$1.doOperation(ExtensionBasedTextEditor.java:118)
	at org.eclipse.ui.internal.genericeditor.ExtensionBasedTextEditor.createPartControl(ExtensionBasedTextEditor.java:179)
	at org.eclipse.ui.part.MultiPageEditorPart.addPage(MultiPageEditorPart.java:227)
	at org.eclipse.ui.forms.editor.FormEditor.addPage(FormEditor.java:331)
	at org.eclipse.ui.part.MultiPageEditorPart.addPage(MultiPageEditorPart.java:203)
	at org.eclipse.ui.forms.editor.FormEditor.addPage(FormEditor.java:313)
	at org.eclipse.m2e.editor.pom.MavenPomEditor.addFallbackEditors(MavenPomEditor.java:349)
	at org.eclipse.m2e.editor.pom.MavenPomEditor.addPages(MavenPomEditor.java:337)
	at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:143)
	at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:333)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:158)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:96)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:365)
	at jdk.internal.reflect.GeneratedMethodAccessor160.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:995)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:960)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:140)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:403)
	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:330)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.lambda$0(PartServiceImpl.java:105)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:4785)
	at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
	at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
	at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
	at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
	at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
	at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
	at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
	at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
	at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:660)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:624)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:790)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:401)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1264)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3210)
	at org.eclipse.ui.internal.WorkbenchPage.lambda$9(WorkbenchPage.java:3100)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3098)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3068)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3059)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:548)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:508)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:367)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:172)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:288)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:254)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:274)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:252)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:366)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$3.open(PackageExplorerPart.java:545)
	at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:800)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:797)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1116)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:296)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:331)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4256)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4054)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3642)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

probably follow up exception:

java.lang.NullPointerException: Cannot invoke "org.eclipse.ui.texteditor.ITextEditor.dispose()" because "this.sourcePage" is null
	at org.eclipse.m2e.editor.pom.MavenPomEditor.dispose(MavenPomEditor.java:730)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:165)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:96)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:365)
	at jdk.internal.reflect.GeneratedMethodAccessor160.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:995)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:960)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:140)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:403)
	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:330)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.lambda$0(PartServiceImpl.java:105)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:4785)
	at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
	at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
	at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
	at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
	at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
	at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
	at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
	at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
	at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:660)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:624)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:790)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:401)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1264)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3210)
	at org.eclipse.ui.internal.WorkbenchPage.lambda$9(WorkbenchPage.java:3100)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3098)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3068)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3059)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:548)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:508)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:367)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:172)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:288)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:254)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:274)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:252)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:366)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$3.open(PackageExplorerPart.java:545)
	at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:800)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:797)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1116)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:296)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:331)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4256)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4054)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3642)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

AsyncContentAssistTest : testSyncFailureNPE fails in I-build both on Windows and Mac

org.eclipse.jface.text.tests.contentassist.AsyncContentAssistTest.testSyncFailureNPE failed in the build I20220519-0130 with the below error

Widget is disposed

org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:4918)
at org.eclipse.swt.SWT.error(SWT.java:4833)
at org.eclipse.swt.SWT.error(SWT.java:4804)
at org.eclipse.swt.widgets.Widget.error(Widget.java:811)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:597)
at org.eclipse.swt.widgets.Control.forceFocus(Control.java:1443)
at org.eclipse.jface.text.tests.contentassist.AsyncContentAssistTest$2.run(AsyncContentAssistTest.java:159)
at org.eclipse.swt.widgets.Display.runTimers(Display.java:4578)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3957)
at org.eclipse.jface.text.tests.util.DisplayHelper.driveEventQueue(DisplayHelper.java:126)
at org.eclipse.jface.text.tests.util.DisplayHelper.waitForCondition(DisplayHelper.java:78)
at org.eclipse.jface.text.tests.util.DisplayHelper.sleep(DisplayHelper.java:105)
at org.eclipse.jface.text.tests.contentassist.AsyncContentAssistTest.testSyncFailureNPE(AsyncContentAssistTest.java:100)

Link to test results

NPEs with InlinedAnnotation if used in multiple viewers with different collapsed ranges

This comes from redhat-developer/eclipseide-jdtls#59 , with steps to reproduce using eclipseide-jdtls

When a file opened in an editor has some inlined annotations added, then they may become available to other editors/viewers because the annotation model can be shared. In case in the other viewer, the range differs because of different collapsed/expanded area and some part of the code mining rendering will then fail as they assume the annotation is still used in the same viewer and code is missing some guards.
Eg

java.lang.NullPointerException: Cannot invoke "org.eclipse.jface.text.IRegion.getOffset()" because "widgetRange" is null
	at org.eclipse.jface.text.source.inlined.AbstractInlinedAnnotation.isFirstVisibleOffset(AbstractInlinedAnnotation.java:209)
	at org.eclipse.jface.text.source.inlined.InlinedAnnotationDrawingStrategy.draw(InlinedAnnotationDrawingStrategy.java:40)
	at org.eclipse.jface.text.source.AnnotationPainter.drawDecoration(AnnotationPainter.java:1421)
	at org.eclipse.jface.text.source.AnnotationPainter.handleDrawRequest(AnnotationPainter.java:1387)
	at org.eclipse.jface.text.source.AnnotationPainter.enablePainting(AnnotationPainter.java:484)
	at org.eclipse.jface.text.source.AnnotationPainter.updatePainting(AnnotationPainter.java:954)
	at org.eclipse.jface.text.source.AnnotationPainter.paint(AnnotationPainter.java:1639)
	at org.eclipse.ui.texteditor.SourceViewerDecorationSupport.updateAnnotationPainter(SourceViewerDecorationSupport.java:877)
	at org.eclipse.ui.texteditor.SourceViewerDecorationSupport.updateTextDecorations(SourceViewerDecorationSupport.java:306)
	at org.eclipse.ui.texteditor.SourceViewerDecorationSupport.install(SourceViewerDecorationSupport.java:269)
	at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.createPartControl(AbstractDecoratedTextEditor.java:447)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:158)
        ....

Cannot Request Reviewers on PRs

I've opened a PR, but I can't request anyone as a reviewer. Even if I'm not a committer on the project, I'd still like to request a review.

Configure line height for editors

It seems like I am unable to configure a line height for the source code editors.

I know it is a personal preference of me, but I actually do like the option that IntelliJ gives me, to use a line height of 1.2.

[GenericEditor] An NPE occurs in IndentFoldingStrategy.updateAnnotations

Caught an NPE exception on JEE EPP (2023-06-R, linux, gtk-x86_64) start (after I had to kill it due to a deadlock):

Exception in thread "org.eclipse.ui.internal.genericeditor.folding.DefaultFoldingReconciler" java.lang.NullPointerException: Cannot invoke "org.eclipse.jface.text.Position.setOffset(int)" because "oldPos" is null
	at org.eclipse.ui.internal.genericeditor.folding.IndentFoldingStrategy.updateAnnotations(IndentFoldingStrategy.java:446)
	at org.eclipse.ui.internal.genericeditor.folding.IndentFoldingStrategy.updateAnnotation(IndentFoldingStrategy.java:418)
	at org.eclipse.ui.internal.genericeditor.folding.IndentFoldingStrategy.reconcile(IndentFoldingStrategy.java:285)
	at org.eclipse.ui.internal.genericeditor.folding.IndentFoldingStrategy.initialReconcile(IndentFoldingStrategy.java:515)
	at org.eclipse.ui.internal.genericeditor.folding.DefaultFoldingReconciler.initialProcess(DefaultFoldingReconciler.java:66)
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:177)

No way to configure ITextDoubleClickStrategy from extension point.

There does not appear to be an extension point for configuring the ExtensionBasedTextViewerConfiguration with a custom ITextDoubleClickStrategy (the strategy is hard coded to the default in the base class). Can a new extension point be added for this? Or is there a different way to customize double click behavior in the Generic Editor?

[GenericEditor] An NPE occurs in `IndentFoldingStrategy.reconcile`

When running WWD JUnit tests on MacOS Github Actions runner a NullPointerException gets logged:

##[error]Exception in thread "org.eclipse.ui.internal.genericeditor.folding.DefaultFoldingReconciler" java.lang.NullPointerException: Cannot invoke "org.eclipse.jface.text.IDocument.getNumberOfLines()" because "this.document" is null
	at org.eclipse.ui.internal.genericeditor.folding.IndentFoldingStrategy.reconcile(IndentFoldingStrategy.java:234)
	at org.eclipse.ui.internal.genericeditor.folding.DefaultFoldingReconciler.process(DefaultFoldingReconciler.java:48)
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:207)

This probably happens because IndentFoldingStrategy.uninstall is invoked during the reconcile run.

The issue happens only on GitHub Actions MacOS runner (at least I never spot it when running tests locally nor while browsing the logs from GitHub Actions Windows runner nor the Jenkins (Linux) one).

[TEST] JUnit tests in org.eclipse.jface.text.tests.contentassist are failing on Windows

The JFace text tests in org.eclipse.jface.text.tests.contentassist failed in the IBuild I20220407-0240 as below

  1. AsyncContentAssistTest.testCompleteActivationChar
  2. ContextInformationPresenterTest.testContextInfo_withStyledTextPresentation
  3. ContextInformationTest.testContextInfo
  4. ContextInformationTest.testContextInfo_hide_Bug512251
  5. ContextInformationTest.testContextInfo_hide_focusOut
  6. ContextInformationTest.testContextInfo_hide_keyEsc
  7. ContextInformationTest.testContextInfo_hide_validRange

This is a followup of Bug 571316

The link to the test failures report is org.eclipse.jface.text.tests_ep424I-unit-win32-java11_win32.win32.x86_64_11

Add filter to File Search to remove nested project duplicate files

When nested projects are searched, multiple matches will occur for each project that is above the matched file. The file should be opened in the context of the innermost project and this is already done, but some users might want to pare down the list of matches to exclude the duplicates that don't occur in the innermost project. This is an enhancement request to add a filter to do this in the Search result view.

Copy-Paste doesn't trigger Linked Editing `IExitPolicy.doExit(...)`

When using a linked editing to simultaneously modify the linked editing session is to be stopped when typing characters that are not allowed in the context, for example when a Space character is typed while editing a method name.
To stop linked editing we can use the IExitPolicy interface:

org.eclipse.jface.text.link.LinkedModeUI.IExitPolicy.doExit(LinkedModeModel, VerifyEvent, int, int)

this interface allow us to process the characters typed in by a user. And adopters can implement their own schemas to exit a linked editing session,

However a document cab be modified not only by typing characters, for example, users may use Copy-Paste operation to change a text, including during the linked editing session is on. A Copy-Paste operation doesn't generate any VerifyEvent events and, as result, when the text is that is to be pasted contains any "not allowed" characters, all those characters will be "copied" into the linked edited text regions.

Steps to reproduce:

  • Open or create a java file that has a method defined and/or some occurrences of use of that method.
  • Select some text containing the characters not allowed to be treated as method name characters (for example, containing spaces, braces, comas etc).
  • Start Refactor-Rename on the selected method
  • Paste the copied text.
  • FAIL: The method name occurrences will be changed by adding the copied text to every method name occurrence within the text, The syntax will be broken as the result.

The current Linked Editing API doesn't prevent this issue, neither adopters can prevent it while using the existing API

Nested projects: Search and Quick search matches appear twice

Open one multi-module maven project, press Ctrl+Shift+Alt+L to invoke Quick Search, and search something. Every matching item will appear two times.
Or press Ctrl + H to invoke Search, in File Search tab and search something. Every match appears twice.

image

Search test PositionTrackerTest.testInsertInsideMatch fails on Mac in the I-build

The test org.eclipse.search.tests.filesearch.PositionTrackerTest.testInsertInsideMatch failed in the build I20220824-1800 on Mac64 and MacM1 with the below error

at org.junit.Assert.fail(Assert.java:87)
at org.junit.Assert.assertTrue(Assert.java:42)
at org.junit.Assert.assertNotNull(Assert.java:713)
at org.junit.Assert.assertNotNull(Assert.java:723)
at org.eclipse.search.tests.filesearch.PositionTrackerTest.checkInsertInsideMatch(PositionTrackerTest.java:99)
at org.eclipse.search.tests.filesearch.PositionTrackerTest.testInsertInsideMatch(PositionTrackerTest.java:82ts/html/org.eclipse.search.tests_ep425I-unit-mac64-java17_macosx.cocoa.x86_64_17.html)and [MacM1 ](https://download.eclipse.org/eclipse/downloads/drops4/I20220824-1800/testresults/html/org.eclipse.search.tests_ep425I-unit-macM1-java17_macosx.cocoa.aarch64_17.html) with the below error

No code mining updated when using Ctrl+End (was: CodeMiningTest are failing on Windows and Mac)

This is a duplicate of Bug 571317 - No code mining updated when using Ctrl+End (was: CodeMiningTest are failing on Windows and Mac).

I will close the bug in bugzilla and this bug will be tracked here.

The below JFace text tests in org.eclipse.jface.text.tests.codemining.CodeMiningTest fail in the nightly build on windows

  1. testCodeMiningDoesntAlterFocus
  2. testCodeMiningCtrlEnd
  3. testCodeMiningCtrlHome
  4. testCodeMiningFirstLine

The Java code editor does not save HTML to Clipboard

Tested with the 2022-10-13 nightly build (eclipse-SDK-I20221013-1800-win32-x86_64.zip)
Created a small "Hello world" Java app.
Selected the code and copied it to the clipboard.
It does not matter if I do it from the main menu (Edit -- Copy), the context menu (right-click, Copy) or hotkey (Ctrl+C), the result is the same.
The clipboard contains RTF, but not HTML.


My hope was that all editors (based on StyledText) will "just work"
Apparently that is not the case, some still do some custom processing and need fixing.

I will continue to test the most common editors in the next few days (C/C++, Python, .properties, XML, pom.xml, html?)

Do you happen to know what would be a good source of information on what formats are most popular?
Based on real data, not my gut feeling? :-)


Please assign this to me.

Thanks,
Mihai

org.eclipse.ui.tests.concurrency.TestBug269121.testBug is failing on Windows

In the Build I20230525-0350, the below tests in org.eclipse.ui.tests.concurrency.TestBug269121.testBug failed
on win32

java.lang.AssertionError: Deadlock occurred
at org.junit.Assert.fail(Assert.java:89)
at org.junit.Assert.assertTrue(Assert.java:42)
at org.eclipse.ui.tests.concurrency.TestBug269121.testBug(TestBug269121.java:106)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)

Add syntax coloring in quick search

I'm not sure this is the right project.

What do you think about adding syntax coloring to quick search dialog ? When I select one result to see if it's the code I'm lookin for, it will help me to figure out.

First I though that tm4e can provide the syntax coloring then I realised this will create a circular dependencies between platform and tm4e. I found issue eclipse-platform/eclipse.platform.ui#877 about the same kind of problem.

Minimap can cause NPE

Summary:

Minimap assumes that the viewer is the Eclipse provided implementation and so can fail for other implementations, causing a NullPointerException. Need to validate the ITextViewer.getStyledText on usage incase it can dynamically exist or doesn't exist for that ITextViewer implementation instance at the time of the call, either find have an alternate supplier for the needed information from the ITextViewer object as other interfaces via other methods, or fail the activity for those cases ( or disallow minimap for those cases)

Issue:

java.lang.NullPointerException
at org.eclipse.ui.internal.views.minimap.MinimapWidget$EditorTracker.install(MinimapWidget.java:273)
at org.eclipse.ui.internal.views.minimap.MinimapWidget.install(MinimapWidget.java:508)
at org.eclipse.ui.internal.views.minimap.MinimapPage.createControl(MinimapPage.java:67)
at org.eclipse.ui.internal.views.minimap.MinimapView.doCreatePage(MinimapView.java:57)
at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:369)
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:696)
at org.eclipse.ui.part.PageBookView$1.partActivated(PageBookView.java:1006)
at org.eclipse.ui.internal.WorkbenchPage$3.run(WorkbenchPage.java:4880)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:4877)
at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:213)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$2.run(PartServiceImpl.java:250)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivated(PartServiceImpl.java:247)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:771)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:680)
at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:97)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.lambda$0(ContributedPartRenderer.java:63)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4579)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1637)
at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1600)
at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:3447)
at org.eclipse.swt.widgets.Display.checkFocus(Display.java:703)
at org.eclipse.swt.widgets.Shell.makeFirstResponder(Shell.java:1319)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:6458)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
at org.eclipse.swt.internal.cocoa.NSView.setHidden(NSView.java:264)
at org.eclipse.swt.widgets.Control.setVisible(Control.java:4437)

...

Investigation:

org.eclipse.jface.text.ITextViewer in the Eclipse API documentation for getTextWidget() that it may return null instead of a StyledWidget object

in minimap, variable fEditorViewer holds the ITextViewer reference and there are then references such as
StyledText editorTextWidget = fEditorViewer.getTextWidget();
where editorTextWidget assumes non-null in the MinimapWidget so then the next call happens without validation

which can cause if there is an ITextViewer loaded that returns a null for the getTextWidget() call.

Resolution plan: :

Step 1 is just to add checks to avoid NPE.
Step 2 is to test alternate means of getting the information where possible, which needs confirmation for all different findable cases via debugging to a 1-to-1 directly (via object storage) equivalent result.
Step 3 is to disengage Minimap for that viewer when a map is not possible.

Note: I am planning to submit a pull request for this correction unless someone beats me to it, but I am putting the issue out first so there is awareness as I want to thoroughly test my changes first and operating on a limited schedule.

CodeMining may cause NPE

Got this stack when playing with eclipseide-jdtls:

java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "String.compareTo(String)" because the return value of "org.eclipse.jface.text.source.Annotation.getText()" is null
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1841)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Caused by: java.lang.NullPointerException: Cannot invoke "String.compareTo(String)" because the return value of "org.eclipse.jface.text.source.Annotation.getText()" is null
	at org.eclipse.ui.internal.editors.text.codemining.annotation.AnnotationCodeMiningFilter.lambda$6(AnnotationCodeMiningFilter.java:152)
	at java.base/java.util.TimSort.binarySort(TimSort.java:296)
	at java.base/java.util.TimSort.sort(TimSort.java:221)
	at java.base/java.util.Arrays.sort(Arrays.java:1307)
	at java.base/java.util.ArrayList.sort(ArrayList.java:1721)
	at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:392)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:528)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
	at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
	at org.eclipse.ui.internal.editors.text.codemining.annotation.AnnotationCodeMiningProvider.createCodeMinings(AnnotationCodeMiningProvider.java:270)
	at org.eclipse.ui.internal.editors.text.codemining.annotation.AnnotationCodeMiningProvider.lambda$0(AnnotationCodeMiningProvider.java:219)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
	... 6 more

New bug...

Log:

An error occurred while collecting items to be installed
session context was:(profile=epp.package.php, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,com.google.gson,2.9.1
No repository found containing: osgi.bundle,org.apache.felix.gogo.runtime,1.1.6
No repository found containing: osgi.bundle,org.apache.felix.scr,2.2.2
No repository found containing: osgi.bundle,org.apache.xml.resolver,1.2.0.v20220715-1206
No repository found containing: osgi.bundle,org.bouncycastle.bcpg,1.71.0.v20220723-1943
No repository found containing: osgi.bundle,org.bouncycastle.bcprov,1.71.0.v20220723-1943
No repository found containing: osgi.bundle,org.eclipse.ant.core,3.6.500.v20220718-1722
No repository found containing: osgi.bundle,org.eclipse.cdt.core.win32.x86_64,6.0.700.202208222120
No repository found containing: osgi.bundle,org.eclipse.compare,3.8.500.v20220812-1406
No repository found containing: osgi.bundle,org.eclipse.compare.core,3.7.100.v20220812-1406
No repository found containing: osgi.bundle,org.eclipse.compare.win32,1.2.900.v20220812-1406
No repository found containing: osgi.bundle,org.eclipse.core.contenttype,3.8.200.v20220817-1539
No repository found containing: osgi.bundle,org.eclipse.core.databinding,1.11.100.v20220817-1444
No repository found containing: osgi.bundle,org.eclipse.core.expressions,3.8.200.v20220613-1047
No repository found containing: osgi.bundle,org.eclipse.core.externaltools,1.2.300.v20220618-1805
No repository found containing: osgi.bundle,org.eclipse.core.filesystem,1.9.500.v20220817-1539
No repository found containing: osgi.bundle,org.eclipse.core.filesystem.win32.x86_64,1.4.300.v20220812-1420
No repository found containing: osgi.bundle,org.eclipse.core.jobs,3.13.100.v20220817-1539
No repository found containing: osgi.bundle,org.eclipse.core.net,1.4.0.v20220813-1037
No repository found containing: osgi.bundle,org.eclipse.core.net.win32,1.0.100.v20220812-1406
No repository found containing: osgi.bundle,org.eclipse.core.net.win32.x86_64,1.1.700.v20220812-1406
No repository found containing: osgi.bundle,org.eclipse.core.resources,3.18.0.v20220828-0546
No repository found containing: osgi.bundle,org.eclipse.core.resources.win32.x86_64,3.5.500.v20220812-1420
No repository found containing: osgi.bundle,org.eclipse.core.runtime,3.26.0.v20220813-0916
No repository found containing: osgi.bundle,org.eclipse.debug.core,3.20.0.v20220811-0741
No repository found containing: osgi.bundle,org.eclipse.debug.ui,3.17.0.v20220817-1312
No repository found containing: osgi.bundle,org.eclipse.debug.ui.launchview,1.0.300.v20220811-0741
No repository found containing: osgi.bundle,org.eclipse.draw2d,3.11.100.202206170857
No repository found containing: osgi.bundle,org.eclipse.e4.core.commands,1.0.200.v20220629-1225
No repository found containing: osgi.bundle,org.eclipse.e4.core.contexts,1.11.0.v20220716-0839
No repository found containing: osgi.bundle,org.eclipse.e4.core.di,1.8.300.v20220817-1539
No repository found containing: osgi.bundle,org.eclipse.e4.core.di.annotations,1.7.200.v20220613-1008
No repository found containing: osgi.bundle,org.eclipse.e4.core.di.extensions,0.17.200.v20220613-1008
No repository found containing: osgi.bundle,org.eclipse.e4.core.di.extensions.supplier,0.16.400.v20220613-1047
No repository found containing: osgi.bundle,org.eclipse.e4.core.services,2.3.300.v20220613-1047
No repository found containing: osgi.bundle,org.eclipse.e4.ui.css.core,0.13.300.v20220809-1237
No repository found containing: osgi.bundle,org.eclipse.e4.ui.css.swt,0.14.600.v20220621-1327
No repository found containing: osgi.bundle,org.eclipse.e4.ui.dialogs,1.3.300.v20220815-1831
No repository found containing: osgi.bundle,org.eclipse.e4.ui.model.workbench,2.2.200.v20220817-1444
No repository found containing: osgi.bundle,org.eclipse.e4.ui.workbench,1.13.200.v20220808-2019
No repository found containing: osgi.bundle,org.eclipse.e4.ui.workbench.renderers.swt,0.15.600.v20220715-1400
No repository found containing: osgi.bundle,org.eclipse.e4.ui.workbench.swt,0.16.600.v20220607-1204
No repository found containing: osgi.bundle,org.eclipse.emf.common,2.26.0.v20220817-1401
No repository found containing: osgi.bundle,org.eclipse.emf.ecore,2.28.0.v20220817-1401
No repository found containing: osgi.bundle,org.eclipse.emf.ecore.xmi,2.17.0.v20220817-1334
No repository found containing: osgi.bundle,org.eclipse.emf.edit.ui,2.22.0.v20220619-0533
No repository found containing: osgi.bundle,org.eclipse.epp.package.common,4.25.0.20220908-1200
No repository found containing: osgi.bundle,org.eclipse.epp.package.php,4.25.0.20220908-1200
No repository found containing: osgi.bundle,org.eclipse.equinox.app,1.6.200.v20220720-2012
No repository found containing: osgi.bundle,org.eclipse.equinox.bidi,1.4.200.v20220710-1223
No repository found containing: osgi.bundle,org.eclipse.equinox.common,3.16.200.v20220817-1601
No repository found containing: osgi.bundle,org.eclipse.equinox.frameworkadmin,2.2.100.v20220817-1208
No repository found containing: osgi.bundle,org.eclipse.equinox.http.registry,1.3.200.v20220720-2012
No repository found containing: osgi.bundle,org.eclipse.equinox.http.servlet,1.7.300.v20220726-1300
No repository found containing: osgi.bundle,org.eclipse.equinox.jsp.jasper,1.1.700.v20220801-1124
No repository found containing: osgi.bundle,org.eclipse.equinox.launcher.win32.win32.x86_64,1.2.600.v20220720-1916
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.core,2.9.200.v20220817-1208
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.director,2.5.400.v20220817-1208
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.director.app,1.2.200.v20220802-0626
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.engine,2.7.500.v20220817-1208
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.metadata,2.6.300.v20220817-1208
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.operations,2.6.100.v20220817-1208
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.publisher,1.7.200.v20220805-0804
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.repository,2.6.200.v20220819-1949
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.touchpoint.eclipse,2.3.300.v20220817-1208
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.ui,2.7.600.v20220817-1208
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.ui.sdk,1.2.100.v20220814-1551
No repository found containing: osgi.bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.5.400.v20220805-0804
No repository found containing: osgi.bundle,org.eclipse.equinox.preferences,3.10.100.v20220710-1223
No repository found containing: osgi.bundle,org.eclipse.equinox.registry,3.11.200.v20220817-1601
No repository found containing: osgi.bundle,org.eclipse.equinox.security,1.3.1000.v20220801-1135
No repository found containing: osgi.bundle,org.eclipse.equinox.security.ui,1.3.300.v20220710-1223
No repository found containing: osgi.bundle,org.eclipse.equinox.simpleconfigurator,1.4.100.v20220620-1617
No repository found containing: osgi.bundle,org.eclipse.gef,3.12.100.202206170857
No repository found containing: osgi.bundle,org.eclipse.help.base,4.3.800.v20220831-1800
No repository found containing: osgi.bundle,org.eclipse.help.ui,4.4.100.v20220619-1918
No repository found containing: osgi.bundle,org.eclipse.help.webapp,3.10.800.v20220714-2106
No repository found containing: osgi.bundle,org.eclipse.jetty.http,10.0.11
No repository found containing: osgi.bundle,org.eclipse.jetty.io,10.0.11
No repository found containing: osgi.bundle,org.eclipse.jetty.security,10.0.11
No repository found containing: osgi.bundle,org.eclipse.jetty.server,10.0.11
No repository found containing: osgi.bundle,org.eclipse.jetty.servlet,10.0.11
No repository found containing: osgi.bundle,org.eclipse.jetty.util,10.0.11
No repository found containing: osgi.bundle,org.eclipse.jetty.util.ajax,10.0.11
No repository found containing: osgi.bundle,org.eclipse.jface,3.27.0.v20220817-1444
No repository found containing: osgi.bundle,org.eclipse.jface.text,3.21.0.v20220817-1340
No repository found containing: osgi.bundle,org.eclipse.jsch.core,1.4.0.v20220813-1037
No repository found containing: osgi.bundle,org.eclipse.jsch.ui,1.4.200.v20220812-1406
No repository found containing: osgi.bundle,org.eclipse.lsp4e,0.14.0.202208241334
No repository found containing: osgi.bundle,org.eclipse.lsp4e.debug,0.14.0.202208051450
No repository found containing: osgi.bundle,org.eclipse.lsp4j,0.15.0.v20220805-0131
No repository found containing: osgi.bundle,org.eclipse.lsp4j.debug,0.15.0.v20220805-0131
No repository found containing: osgi.bundle,org.eclipse.lsp4j.jsonrpc,0.15.0.v20220805-0131
No repository found containing: osgi.bundle,org.eclipse.lsp4j.jsonrpc.debug,0.15.0.v20220805-0131
No repository found containing: osgi.bundle,org.eclipse.ltk.core.refactoring,3.13.0.v20220822-0502
No repository found containing: osgi.bundle,org.eclipse.ltk.ui.refactoring,3.12.200.v20220808-2221
No repository found containing: osgi.bundle,org.eclipse.osgi,3.18.100.v20220817-1601
No repository found containing: osgi.bundle,org.eclipse.osgi.compatibility.state,1.2.700.v20220722-0431
No repository found containing: osgi.bundle,org.eclipse.osgi.services,3.11.0.v20220618-0838
No repository found containing: osgi.bundle,org.eclipse.osgi.util,3.7.100.v20220615-1601
No repository found containing: osgi.bundle,org.eclipse.platform,4.25.0.v20220831-1800
No repository found containing: osgi.bundle,org.eclipse.platform.doc.user,4.25.0.v20220830-0901
No repository found containing: osgi.bundle,org.eclipse.rcp,4.25.0.v20220831-1800
No repository found containing: osgi.bundle,org.eclipse.search,3.14.200.v20220817-1340
No repository found containing: osgi.bundle,org.eclipse.swt,3.121.0.v20220829-1402
No repository found containing: osgi.bundle,org.eclipse.swt.win32.win32.x86_64,3.121.0.v20220829-1402
No repository found containing: osgi.bundle,org.eclipse.team.core,3.9.500.v20220817-1539
No repository found containing: osgi.bundle,org.eclipse.team.genericeditor.diff.extension,1.1.100.v20220812-1406
No repository found containing: osgi.bundle,org.eclipse.team.ui,3.9.400.v20220817-1539
No repository found containing: osgi.bundle,org.eclipse.text,3.12.200.v20220817-1340
No repository found containing: osgi.bundle,org.eclipse.tm4e.core,0.5.0.202206232130
No repository found containing: osgi.bundle,org.eclipse.tm4e.languageconfiguration,0.5.0.202206241118
No repository found containing: osgi.bundle,org.eclipse.tm4e.registry,0.6.0.202206241118
No repository found containing: osgi.bundle,org.eclipse.tm4e.ui,0.6.0.202206241118
No repository found containing: osgi.bundle,org.eclipse.ui,3.201.100.v20220826-1037
No repository found containing: osgi.bundle,org.eclipse.ui.browser,3.7.200.v20220826-1037
No repository found containing: osgi.bundle,org.eclipse.ui.cheatsheets,3.7.400.v20220715-1705
No repository found containing: osgi.bundle,org.eclipse.ui.console,3.11.300.v20220811-1921
No repository found containing: osgi.bundle,org.eclipse.ui.editors,3.14.400.v20220730-1844
No repository found containing: osgi.bundle,org.eclipse.ui.externaltools,3.5.200.v20220618-1805
No repository found containing: osgi.bundle,org.eclipse.ui.forms,3.11.400.v20220817-1444
No repository found containing: osgi.bundle,org.eclipse.ui.ide,3.19.100.v20220820-0412
No repository found containing: osgi.bundle,org.eclipse.ui.ide.application,1.4.500.v20220623-0641
No repository found containing: osgi.bundle,org.eclipse.ui.intro,3.6.600.v20220619-1918
No repository found containing: osgi.bundle,org.eclipse.ui.intro.quicklinks,1.1.200.v20220619-1918
No repository found containing: osgi.bundle,org.eclipse.ui.intro.universal,3.4.300.v20220619-1918
No repository found containing: osgi.bundle,org.eclipse.ui.navigator,3.10.300.v20220817-1444
No repository found containing: osgi.bundle,org.eclipse.ui.net,1.4.100.v20220812-1406
No repository found containing: osgi.bundle,org.eclipse.ui.themes,1.2.2000.v20220614-2134
No repository found containing: osgi.bundle,org.eclipse.ui.views,3.11.200.v20220817-1444
No repository found containing: osgi.bundle,org.eclipse.ui.views.log,1.3.300.v20220717-1456
No repository found containing: osgi.bundle,org.eclipse.ui.views.properties.tabbed,3.9.200.v20220717-1456
No repository found containing: osgi.bundle,org.eclipse.ui.workbench,3.126.0.v20220823-0718
No repository found containing: osgi.bundle,org.eclipse.ui.workbench.texteditor,3.16.600.v20220809-1658
No repository found containing: osgi.bundle,org.eclipse.update.configurator,3.4.900.v20220718-1722
No repository found containing: osgi.bundle,org.eclipse.wildwebdeveloper,0.6.0.202206151321
No repository found containing: osgi.bundle,org.eclipse.wildwebdeveloper.embedder.node,0.3.0.202206231201
No repository found containing: osgi.bundle,org.eclipse.wildwebdeveloper.xml,0.15.0.202207081036
No repository found containing: osgi.bundle,org.eclipse.wst.common.snippets,1.2.600.v202207121617
No repository found containing: osgi.bundle,org.eclipse.wst.common.ui,1.2.200.v202207121617
No repository found containing: osgi.bundle,org.eclipse.wst.dtd.core,1.2.300.v202207121749
No repository found containing: osgi.bundle,org.eclipse.wst.dtd.ui,1.1.400.v202207121749
No repository found containing: osgi.bundle,org.eclipse.wst.sse.core,1.2.800.v202207121749
No repository found containing: osgi.bundle,org.eclipse.wst.sse.ui,1.7.500.v202207121749
No repository found containing: osgi.bundle,org.eclipse.wst.xml.core,1.2.600.v202207121749
No repository found containing: osgi.bundle,org.eclipse.wst.xml.ui,1.2.700.v202208280234
No repository found containing: osgi.bundle,org.eclipse.wst.xsd.ui,1.3.500.v202207121749
No repository found containing: osgi.bundle,org.eclipse.xsd,2.18.0.v20220616-0915
No repository found containing: osgi.bundle,org.eclipse.xtext.xbase.lib,2.28.0.v20220829-0436
No repository found containing: osgi.bundle,com.ibm.icu,67.1.0
No repository found containing: osgi.bundle,com.sun.jna,5.8.0
No repository found containing: osgi.bundle,com.sun.jna.platform,5.8.0
No repository found containing: binary,epp.package.php.executable.win32.win32.x86_64,4.25.0.20220908-1200
No repository found containing: osgi.bundle,javax.servlet.jsp-api,2.3.3
No repository found containing: osgi.bundle,org.apache.felix.gogo.command,1.1.2
No repository found containing: osgi.bundle,org.apache.felix.gogo.shell,1.1.4
No repository found containing: org.eclipse.update.feature,org.eclipse.e4.rcp,4.25.0.v20220829-1402
No repository found containing: osgi.bundle,org.eclipse.e4.ui.progress,0.3.500.v20220717-1456
No repository found containing: org.eclipse.update.feature,org.eclipse.emf.common,2.27.0.v20220817-1401
No repository found containing: org.eclipse.update.feature,org.eclipse.emf.ecore,2.29.0.v20220817-1401
No repository found containing: org.eclipse.update.feature,org.eclipse.epp.package.common.feature,4.25.0.20220908-1200
No repository found containing: org.eclipse.update.feature,org.eclipse.epp.package.php.feature,4.25.0.20220908-1200
No repository found containing: org.eclipse.update.feature,org.eclipse.equinox.p2.core.feature,1.6.1500.v20220819-1949
No repository found containing: org.eclipse.update.feature,org.eclipse.equinox.p2.extras.feature,1.4.1700.v20220819-1949
No repository found containing: org.eclipse.update.feature,org.eclipse.equinox.p2.rcp.feature,1.4.1700.v20220819-1949
No repository found containing: org.eclipse.update.feature,org.eclipse.equinox.p2.user.ui,2.4.1700.v20220819-1949
No repository found containing: org.eclipse.update.feature,org.eclipse.help,2.3.1100.v20220831-1800
No repository found containing: org.eclipse.update.feature,org.eclipse.platform,4.25.0.v20220831-1800
No repository found containing: binary,org.eclipse.platform.ide.executable.win32.win32.x86_64,4.25.0.I20220831-1800
No repository found containing: binary,org.eclipse.platform_root,4.25.0.v20220831-1800
No repository found containing: org.eclipse.update.feature,org.eclipse.rcp,4.25.0.v20220831-1800
No repository found containing: binary,org.eclipse.rcp_root,4.25.0.v20220831-1800
No repository found containing: org.eclipse.update.feature,org.eclipse.tm.terminal.connector.local.feature,10.7.1.202208160035
No repository found containing: org.eclipse.update.feature,org.eclipse.tm.terminal.connector.ssh.feature,10.7.1.202208160035
No repository found containing: org.eclipse.update.feature,org.eclipse.tm.terminal.connector.telnet.feature,10.7.1.202208160035
No repository found containing: org.eclipse.update.feature,org.eclipse.tm.terminal.control.feature,10.7.1.202208160035
No repository found containing: org.eclipse.update.feature,org.eclipse.tm.terminal.feature,10.7.1.202208160035
No repository found containing: org.eclipse.update.feature,org.eclipse.tm.terminal.view.feature,10.7.1.202208160035
No repository found containing: org.eclipse.update.feature,org.eclipse.wildwebdeveloper.embedder.node.feature,0.3.0.202206231201
No repository found containing: org.eclipse.update.feature,org.eclipse.wildwebdeveloper.feature,0.11.0.202206231201
No repository found containing: org.eclipse.update.feature,org.eclipse.wildwebdeveloper.xml.feature,0.15.0.202207081036
No repository found containing: org.eclipse.update.feature,org.eclipse.wst.common_ui.feature,3.23.0.v202207121617
No repository found containing: org.eclipse.update.feature,org.eclipse.wst.xml_core.feature,3.27.0.v202207150226
No repository found containing: org.eclipse.update.feature,org.eclipse.wst.xml_ui.feature,3.27.0.v202208280234
No repository found containing: osgi.bundle,org.osgi.service.cm,1.6.1.202109301733
No repository found containing: osgi.bundle,org.osgi.service.component,1.5.0.202109301733
No repository found containing: osgi.bundle,org.osgi.service.device,1.1.1.202109301733
No repository found containing: osgi.bundle,org.osgi.service.event,1.4.1.202109301733
No repository found containing: osgi.bundle,org.osgi.service.metatype,1.4.1.202109301733
No repository found containing: osgi.bundle,org.osgi.service.provisioning,1.2.0.201505202024
No repository found containing: osgi.bundle,org.osgi.service.upnp,1.2.1.202109301733
No repository found containing: osgi.bundle,org.osgi.service.useradmin,1.1.1.202109301733
No repository found containing: osgi.bundle,org.osgi.service.wireadmin,1.0.2.202109301733
No repository found containing: osgi.bundle,org.tukaani.xz,1.9.0

1

2

Register IReconcilingStrategy with GenericEditor extension point.

Todau GenericEditor provides the capability to register IReconciler with org.eclipse.ui.genericeditor.reconcilers

<extension
         point="org.eclipse.ui.genericeditor.reconcilers">
      <reconciler
            class="org.eclipse.lsp4e.operations.folding.LSPFoldingReconciler"
            contentType="org.eclipse.core.runtime.text">.

org.eclipse.lsp4e.operations.folding.LSPFoldingReconciler extends MonoReconciler to benefit with call of reconcile methods with delay to update foldings. The main problem with this strategy that LSPFoldingReconciler create a brackgournd Thread which compute region and dirty region. Another recocniler registered will do that too.

In other words if there are 5 recocniler registered for a given content type, when one file is opened, it will create 5 background Thread and will will do the same process to compute the region and dirty region.

To fix this problem, GenericEditor should manag einternally a Reconciler to provide the capability to register IReconcilingStrategy with extension point:

<extension
         point="org.eclipse.ui.genericeditor.reconcilers">
      <reconcilingStrategy
            class="org.eclipse.lsp4e.operations.folding.LSPFoldingReconcilingStrategy "
            contentType="org.eclipse.core.runtime.text">.

The LSPFoldingReconcilingStrategy requires to get:

  • the IDocument (IReconcilingStrategy#setDocument will give the capability to get the IDocument)
  • the viewer.

To intercept the viewer, we could provide a new interface

public interface ITextViewerLifecycle {

   void install(ITextViewer viewer)

   void uninstall();
}

In other words, the LSPFoldingReconcilingStrategy could looks liks this:

import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.reconciler.DirtyRegion;
import org.eclipse.jface.text.reconciler.IReconciler;
import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
public class LSPFoldingReconcilingStrategy  implements ITextViewerLifecycle, IReconcilingStrategy {

	private IDocument document;
	private ITextViewer viewer;

	@Override
	public void reconcile(IRegion arg0) {
		// use viewer and document to do some process with delay
	}

	@Override
	public void reconcile(DirtyRegion arg0, IRegion arg1) {
		
	}
	@Override
	public void setDocument(IDocument document) {
		this.document = document;
	}
	@Override
	public void install(ITextViewer viewer) {
		this.viewer = viewer;
	}
	@Override
	public void uninstall() {
		this.viewer = null;
	}
}

The ITextViewerLifecycle should be hosted in JFace because there are a lot of API which could extend it :

Hover on hit Breakpoint relayouts wrong on entering

When I hit a breakpoint, there are two markers in the annotation bar: the breakpoint and the current instruction pointer. When I hover over the breakpoint, I get a popup displaying some information. The information being displayed is

<html><body text="#000000" bgcolor="#ffffe1"><p>Multiple markers at this line<ul><li>Debug Current Instruction Pointer</li><li>Line breakpoint:Float [line: 458]</li></ul></body></html>

rendering as

Multiple markers at this line
  * Debug Current ....

When you hover over the popup, the popup is being displaced with an window that has focus and can be resized. However, the first line is not displayed as before, instead it shows as

Multiple markers at this 
line
...

This hides a good portion of the popup text.

The trouble seems to be this: if we take the size of the control, then reapply that as in DefaultInformationControl.setSizeConstraints(), the text is layouted differently.
My suspicion is that the INNER_BORDER is not taken into account when computing the necessary size for the original control. When there is only a single line in the popup, the replacement works without breaking the first line.

[TEST] Intermittent test failures in FileBufferFunctions.test6 on Windows/ Linux

org.eclipse.core.filebuffers.tests.FileBufferFunctions.test6 failed in the IBuild I20220407-0240 on windows with the below error

expected:<content[]> but was:<content[appendix]>

org.junit.ComparisonFailure: expected:<content[]> but was:<content[appendix]>
at org.junit.Assert.assertEquals(Assert.java:117)
at org.junit.Assert.assertEquals(Assert.java:146)
at org.eclipse.core.filebuffers.tests.FileBufferFunctions.test6(FileBufferFunctions.java:253)

This is a followup to Bug 571317

The link to the test results is org.eclipse.core.filebuffers.tests_ep424I-unit-win32-java11_win32.win32.x86_64_11

NPE in AbstractLineTracker.set(AbstractLineTracker.java:183)

Found this (random) issue in our test logs.
I don't have reproducer.

org.eclipse.core.internal.filebuffers.ResourceFileBuffer.FileSynchronizer works directly on resource notification thread and tries to update some jface document (opened editor?). That goes wrong because the document seem to be already flushed or closed.

If I see it right, org.eclipse.core.internal.filebuffers.ResourceFileBuffer.FileSynchronizer should update documents on UI thread.

!ENTRY org.eclipse.core.filebuffers 4 0 2022-09-20 06:02:19.279
!MESSAGE Exception when synchronizing
!STACK 0
java.lang.NullPointerException
	at org.eclipse.jface.text.AbstractLineTracker.set(AbstractLineTracker.java:183)
	at org.eclipse.jface.text.AbstractDocument.set(AbstractDocument.java:1134)
	at org.eclipse.core.internal.filebuffers.SynchronizableDocument.set(SynchronizableDocument.java:196)
	at org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer.handleFileContentChanged(ResourceTextFileBuffer.java:458)
	at org.eclipse.core.internal.filebuffers.ResourceFileBuffer$FileSynchronizer$2.execute(ResourceFileBuffer.java:151)
	at org.eclipse.core.internal.filebuffers.ResourceFileBuffer$SafeFileChange.run(ResourceFileBuffer.java:86)
	at org.eclipse.core.internal.filebuffers.ResourceFileBuffer$FileSynchronizer.resourceChanged(ResourceFileBuffer.java:186)
	at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:305)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:295)
	at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:158)
	at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:381)
	at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1503)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2327)
	at org.eclipse.core.internal.events.NotificationManager$NotifyJob.run(NotificationManager.java:44)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

NPE in ProjectionViewer.processDeletions()

Found in my log, no idea how to reproduce, fix seem to be trivial.

java.lang.NullPointerException
	at org.eclipse.jface.text.source.projection.ProjectionViewer.processDeletions(ProjectionViewer.java:1056)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.catchupWithProjectionAnnotationModel(ProjectionViewer.java:963)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.lambda$0(ProjectionViewer.java:891)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5000)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4480)

Editor hover spawns a WebKit process per open tab on Linux

To reproduce, open many Java editors and hover on code from each editor. Observe many WebKit processes are spawned (open per editor tab) and running (one per browser tab). E.g.:

sandreev   25004   23553 52 13:36 pts/2    00:00:55 /usr/lib/jvm/java-17-openjdk/bin/java -XX:+ShowCodeDetailsInExceptionMessages -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:41765 -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Declipse.pde.launch=true --add-modules=ALL-SYSTEM -Djava.security.manager=allow -Dfile.encoding=UTF-8 -classpath /data/eclipses/eclipseSDK_428_m20230404/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar org.eclipse.equinox.launcher.Main -launcher /data/eclipses/eclipseSDK_428_m20230404/eclipse -name Eclipse -showsplash 600 -product org.eclipse.platform.ide -data /data/workspaces/contributor_workspace/../runtime-Eclipse -configuration file:/data/workspaces/contributor_workspace/.metadata/.plugins/org.eclipse.pde.core/Eclipse/ -dev file:/data/workspaces/contributor_workspace/.metadata/.plugins/org.eclipse.pde.core/Eclipse/dev.properties -os linux -ws gtk -arch x86_64 -nl en_US -consoleLog
sandreev   25303   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitNetworkProcess 8 129
sandreev   25309   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 12 129
sandreev   25342   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 20 145
sandreev   25374   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 27 154
sandreev   25407   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 34 157
sandreev   25435   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 41 160
sandreev   25466   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 48 163
sandreev   25490   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 55 47
sandreev   25521   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 62 169
sandreev   25550   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 69 172
sandreev   25577   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 76 175
sandreev   25605   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 83 178
sandreev   25632   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 90 181
sandreev   25657   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 97 184
sandreev   25687   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 104 187
sandreev   25712   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 111 190
sandreev   25736   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 118 193
sandreev   25760   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 125 196
sandreev   25786   25004  0 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 132 199
sandreev   25834   25004  1 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 139 202
sandreev   25883   25004  1 13:37 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 146 205
sandreev   25908   25004  1 13:38 pts/2    00:00:00 /usr/lib/webkit2gtk-4.0/WebKitWebProcess 153 208

This doesn't scale well if the user continuously opens tabs, browses code, opens more tabs, and so on.

AnnotationModel uses both fAnnotations and getAnnotationMap()

AnnotationModel.fAnnotations is deprecated and getAnnotationMap() should be used instead.
However I still see the code that uses AnnotationModel.fAnnotations inside AnnotationModel, even together with the getAnnotationMap(). This should be fixed as precondition to fix of inefficient map iterations inside same class.

Should code-mining be in italic?

In big pieces of code with many codeminings (parameter names, markers message, some actions...) visible, it's hard to differentiate codeminings from actual code. I suggest we make them italic by default, similarly to theater stage instructions.

Security Best Practices

Hi,

As a member of the Security Team from the Eclipse Foundation, we used a tools Scorecard and StepSecurity to analyze this repo in order to push a pull request that cover some or all the following best practices below:

As a result, You will see a PR coming from StepSecurity to help to implement those fixes above which will cover a list of points below identified detected:

Please don’t hesitate and reach out if there is something unclear above.

Kind Regards,


Allow BrowserInformationControl to be disposed when closed for a longer period of time

See eclipse-jdt/eclipse.jdt.ui#528, on Linux we have a problem with opening many Java editor tabs and opening hovers in them. Since each editor keeps an BrowserInformationControl object, an SWT Browser object is kept alive for each editor tab. This in turn means 1 WebKit process per opened Java editor (in which a JavaDoc hover was shown).

We would like to add internal "API" which which BrowserInformationControl can be told to dispose itself, if closed for a longer period of time. Client code that creates a BrowserInformationControl can then invoke this API, to ensure browser based hovers do not live for too long. Our intention is to add a workbench UI preference, that client code can check, to specify after what period a closed browser hover should dispose itself.

NPE on search

Saw in https://download.eclipse.org/eclipse/downloads/drops4/I20220726-1800/testresults/ep425I-unit-mac64-java17_macosx.cocoa.x86_64_17/org.eclipse.jdt.ui.tests.AutomatedSuite.txt

Regression from 40480fd after refactoring HashMap to ConcurrentHashMap, null keys aren't allowed anymore.

!ENTRY org.eclipse.core.filebuffers 4 2 2022-07-27 01:01:01.509
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.filebuffers".
!STACK 0
java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
	at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
	at org.eclipse.search.ui.text.AbstractTextSearchResult.getMatches(AbstractTextSearchResult.java:76)
	at org.eclipse.jdt.internal.ui.refactoring.nls.search.NLSSearchResult.collectMatches(NLSSearchResult.java:126)
	at org.eclipse.jdt.internal.ui.refactoring.nls.search.NLSSearchResult.computeContainedMatches(NLSSearchResult.java:120)
	at org.eclipse.search2.internal.ui.text.PositionTracker.bufferCreated(PositionTracker.java:259)
	at org.eclipse.core.internal.filebuffers.TextFileBufferManager$11.run(TextFileBufferManager.java:774)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.filebuffers.TextFileBufferManager.fireBufferCreated(TextFileBufferManager.java:771)
	at org.eclipse.core.internal.filebuffers.TextFileBufferManager.connect(TextFileBufferManager.java:130)
	at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getIFileContent(JavadocContentAccess2.java:2355)
	at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:2147)
	at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:510)

Code Minings - Blank line when no occurences are found in Eclipse 2022-12

The following is taken from: eclipse-jdt/eclipse.jdt.ui#369

Description

Hello there,

Since Eclipse 2022-12, whenever Code Minings is active and we check "Only if there is at least one result", the editor will still show a blank line when there is no occurence of a method reference. The same is true for reference of other kinds, like fields or types.

This worked fine on 2022-09.
Expected Outcome

I expect that if no reference is found for a given method, field or type, then no blank line is shown when "Only if there is at least one result" is checked.
Current Outcome

Currently, when "Only if there is at least one result" is not checked then a "virtual" line will be inserted in the Editor, above the method, type or field with the text "0 references". If however, that option is checked, it will insert a blank line above the method, type or field which is not referenced anywhere in the code.
Steps to reproduce

This can probably be seen very easily in just about any application, but if not I have this one:
I have prepared a sample application that has a very simple Payara Micro application
It can be found here

This app does nothing special. It has a Jakarta REST endpoint but that is just for show.

Fresh install Eclipse for Eclipse IDE for Enterprise Java and Web Developers 2022-12
Checkout the project from my repository
Activate Code Minings for every possible reference and check "Only if there is at least one result", like this:

image

Then just check any class with methods tha have no reference, like NumericUtils.java, this will show up:

image

Final note

sorry for all the Issue ceremony. I used a template from Payara issues as I think it is pleasant to work with.

Environment

Distribution: Eclipse IDE for Enterprise Java and Web Developers 2022-12 2022-12 for Windows x64
JDK Version: Corretto JDK 11
Operating System: Windows 10

Text search freezes UI

Follow up on eclipse-platform/eclipse.platform.ui#872

This seem to be a regression after 4.25.

I can't reproduce on 4.25 but I can reproduce on master / SDK-I20230426-1800-linux-gtk-x86_64.

In my workspace that contains most of SDK bundles as sources case-insensitive searching for "a" in all files freezes UI after roughly 1.000.000 matches and at 2%, staying in that state with 100% CPU load for minutes.
I have to kill IDE because it become not responsible.

In my (other and bigger) workspace on 4.25 search takes few seconds to find 26.000.000 matches without any freeze.

In the jstacks I see AbstractTextSearchResult.getMatchCount() that is almost always on top

"main" eclipse-platform/eclipse.platform.text#1 prio=6 os_prio=0 cpu=538026.91ms elapsed=20829.88s tid=0x00007ffff0028f70 nid=0x9676 runnable  [0x00007ffff7fb6000]
   java.lang.Thread.State: RUNNABLE
	at java.util.concurrent.ConcurrentHashMap$Traverser.advance([email protected]/ConcurrentHashMap.java:3383)
	at java.util.concurrent.ConcurrentHashMap$ValueIterator.next([email protected]/ConcurrentHashMap.java:3483)
	at org.eclipse.search.ui.text.AbstractTextSearchResult.getMatchCount(AbstractTextSearchResult.java:305)
	at org.eclipse.search.internal.ui.text.FileTreeContentProvider.getMatchCount(FileTreeContentProvider.java:189)
	at org.eclipse.search.internal.ui.text.FileTreeContentProvider.elementsChanged(FileTreeContentProvider.java:239)
	- locked <0x0000000456e67178> (a org.eclipse.search.internal.ui.text.FileTreeContentProvider)
	at org.eclipse.search.internal.ui.text.FileSearchPage.elementsChanged(FileSearchPage.java:343)
	at org.eclipse.search.ui.text.AbstractTextSearchViewPage.runBatchedUpdates(AbstractTextSearchViewPage.java:1263)
	at org.eclipse.search.ui.text.AbstractTextSearchViewPage$UpdateUIJob.runInUIThread(AbstractTextSearchViewPage.java:154)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:148)
	at org.eclipse.ui.progress.UIJob$$Lambda$725/0x00000008012bee70.run(Unknown Source)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	- locked <0x0000000454260438> (a org.eclipse.swt.widgets.RunnableLock)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5040)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4520)

Possible InvalidThreadAccess

I get this stack from time to time playing with eclipseide-jdtls:

org.eclipse.swt.SWTException: Invalid thread access
	at org.eclipse.swt.SWT.error(SWT.java:4918)
	at org.eclipse.swt.SWT.error(SWT.java:4833)
	at org.eclipse.swt.SWT.error(SWT.java:4804)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:565)
	at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:481)
	at org.eclipse.swt.custom.StyledText.getLineCount(StyledText.java:3665)
	at org.eclipse.jface.text.source.AnnotationRulerColumn$1.textChanged(AnnotationRulerColumn.java:194)
	at org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2789)
	at org.eclipse.jface.text.TextViewer$VisibleDocumentListener.documentChanged(TextViewer.java:396)
	at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:748)
	at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:717)
	at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:701)
	at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:775)
	at org.eclipse.jface.text.projection.ProjectionDocument.fireDocumentChanged(ProjectionDocument.java:772)
	at org.eclipse.jface.text.projection.ProjectionDocument.masterDocumentChanged(ProjectionDocument.java:742)
	at org.eclipse.jface.text.projection.ProjectionDocumentManager.fireDocumentEvent(ProjectionDocumentManager.java:126)
	at org.eclipse.jface.text.projection.ProjectionDocumentManager.documentChanged(ProjectionDocumentManager.java:132)
	at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:748)
	at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:717)
	at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:701)
	at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:775)
	at org.eclipse.jface.text.AbstractDocument.set(AbstractDocument.java:1140)
	at org.eclipse.core.internal.filebuffers.SynchronizableDocument.set(SynchronizableDocument.java:200)
	at org.eclipse.jface.text.AbstractDocument.set(AbstractDocument.java:1123)
	at org.eclipse.core.internal.filebuffers.SynchronizableDocument.set(SynchronizableDocument.java:188)

It looks like at org.eclipse.jface.text.source.AnnotationRulerColumn$1.textChanged(AnnotationRulerColumn.java:194) would need to check whether current thread is UI Thread.

InlinedAnnotationSupport.findExistingAnnotation() performance issues with a lot of inlined annotations and a lot of positions

Currently when using the latest version (3.13) of the InlinedAnnotationSupport class for a text viewer with a lot of positions that have AbstractInlinedAnnotation's, the findExistingAnnotation() method is poorly performing.
In our use case when having more than 100.000 annotations and 100.000 positions to verify it takes more than 15 minutes to do findExistingAnnotation(), and I think you know that it's obvious why, the current complexity is of O(n), as it iterates the whole Set to get to its position.
In the meantime as a workaround I've overriden the InlinedAnnotationSupport behaviour to keep the fInlinedAnnotations field into a map based on the Position, so that the findExistingAnnotation() complexity is O(1) all the time, and the performance problem is solved.
But I don't like it because I've used reflection to do so.

Personally, I see it as a relevant issue and very important to fix it as it would benefit the performance of this class by a lot and overall of the whole plugin.

File search match for Java file in nested project results in wrong editor sometimes

I have a generic project that has two Java projects nested within it.

I do an import that looks for nested projects.

In one of the nested projects (project3), I have a file: A.java:

package project3;

public class A {

	public void foo() {
		int a = 3;
	}
}

If I do a File Search for "a = 3", I get two matches, one from the generic project and one from the Java project.

image

If I click on the first match, I get the Java file A.java opened by the Java editor. If I click on the same match again, the editor switches to a generic Java editor which gives errors if I attempt to do completion (compilation unit is not on build path of Java project). If I instead open the Java project match second, it keeps the Java editor open. If I go back and click the original match, it switches back to the generic editor and there is only the generic editor open for the file in my editor list.

Can't use Ctrl+Shift+Left or Ctrl+Shift+Right for multi-selection

I started to use multi-selection in Eclipse IDE. BTW, thanks for the work. It's really useful.

I am facing a little problem. I hope it will be understandable πŸ˜‰

If I select multiples lines with Multi caret down. Then if I use Shift+End, it's select in each line from my cursor to the end of the line. This is great. But if I use Ctrl+Shift+Right it only select a word on the first line and text editor is not on multi-selection anymore.

I don't know how the selection should work exactly. I think about 2 options.

  • select just one word and select only the first part of a java attribute in case of camel case name
  • select to the next separator (space, semi-colum, ...)

If you have other suggestions, feel free to provide.

StringIndexOutOfBoundsException during File Search

image

!MESSAGE An internal error occurred during: "Searching for pattern 'Hello'...".
!STACK 0
java.lang.StringIndexOutOfBoundsException: String index out of range: 11
	at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
	at java.base/java.lang.String.charAt(String.java:693)
	at java.base/java.lang.Character.codePointAt(Character.java:8264)
	at java.base/java.util.regex.Pattern$CharPropertyGreedy.match(Pattern.java:4296)
	at java.base/java.util.regex.Matcher.match(Matcher.java:1756)
	at java.base/java.util.regex.Matcher.matches(Matcher.java:713)
	at org.eclipse.search.ui.text.FileTextSearchScope.matchesFileName(FileTextSearchScope.java:226)
	at org.eclipse.search.ui.text.FileTextSearchScope.contains(FileTextSearchScope.java:220)
	at org.eclipse.search.internal.core.text.FilesOfScopeCalculator.visit(FilesOfScopeCalculator.java:41)
	at org.eclipse.core.internal.resources.Resource.lambda$0(Resource.java:85)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:127)
	at org.eclipse.core.internal.resources.Resource.accept(Resource.java:94)
	at org.eclipse.core.internal.resources.Resource.accept(Resource.java:55)
	at org.eclipse.search.internal.core.text.FilesOfScopeCalculator.process(FilesOfScopeCalculator.java:56)
	at org.eclipse.search.core.text.TextSearchScope.evaluateFilesInScope(TextSearchScope.java:86)
	at org.eclipse.search.internal.core.text.TextSearchVisitor.search(TextSearchVisitor.java:430)
	at org.eclipse.search.core.text.TextSearchEngine$1.search(TextSearchEngine.java:60)
	at org.eclipse.search.internal.ui.text.FileSearchQuery.run(FileSearchQuery.java:232)
	at org.eclipse.search2.internal.ui.InternalSearchUI$InternalSearchJob.run(InternalSearchUI.java:94)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

"Unhandled event loop exception" on "Cancel user task"

  • Tried to edit a file during the long running build.
  • Blocking progress dialog shows me, that I have to wait.
  • I don't wait so click on "Cancel user operation"
  • "Unhandled event loop exception" error logged to the error log

This is coming from https://bugs.eclipse.org/bugs/show_bug.cgi?id=577511 / 0f409d6 / #4.

If we re-throw this exception in order to fix something, we should not log it as "Unhandled event loop exception" error. A warning, if any, makes sense.

I assume org.eclipse.ui.application.WorkbenchAdvisor.eventLoopException(Throwable) should ignore or log OperationCanceledException instances, but might be there is a better idea.

eclipse.buildId=4.25.0.202207280832
java.version=17.0.3
java.vendor=Eclipse Adoptium
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -data file:/tmp/wsp_rnd_smoke/ -os linux -ws gtk -arch x86_64

org.eclipse.ui
Error
Thu Jul 28 11:41:09 CEST 2022
Unhandled event loop exception

org.eclipse.core.runtime.OperationCanceledException
	at org.eclipse.ui.texteditor.AbstractTextEditor.validateState(AbstractTextEditor.java:4906)
	at org.eclipse.ui.texteditor.AbstractTextEditor.lambda$4(AbstractTextEditor.java:4947)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
	at org.eclipse.ui.texteditor.AbstractTextEditor.validateEditorInputState(AbstractTextEditor.java:4947)
	at org.eclipse.ui.texteditor.StatusTextEditor.validateEditorInputState(StatusTextEditor.java:159)
	at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.validateEditorInputState(AbstractDecoratedTextEditor.java:1055)
	at org.eclipse.ui.texteditor.AbstractTextEditor$ElementStateListener$Validator.verifyText(AbstractTextEditor.java:392)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:277)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5794)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1555)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1538)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1316)
	at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7607)
	at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:8539)
	at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2540)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:6222)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:6253)

[SearchView] Double-click on a view result should open nested file

In the Search View, when double-clicking on some element, instead of showing up the actual resources, the most nested equivalent should be opened.
Eg if I have

  • parentProject
    • childProject (opened as project in workspace
      • file.txt, containing lol

And run a search on parentProject for pattern lol, then the view shows parentProject/childProject/file.txt , which is OK and correct. When double-clicking, particularly when nested project view is on, showing the childProject/file.txt resources is better.

There is no a project description

Without a proper project description, it is difficult to understand what the project does and whether is it interesting to participate in or not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.