VueJS Eclipse plugin override PHP editor

This topic contains 12 replies, has 4 voices, and was last updated by  Brian Fernandes 2 months, 3 weeks ago.

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #591180 Reply

    zulusx
    Participant

    After install VueJS plugin it overrides my default PHP editor. Why???

    #591183 Reply

    Brian Fernandes
    Moderator

    zulusx,

    Sorry about that, we’re working on improving the behavior of CodeMix in environments with other tooling installed, these fixes will actually land in our release next week. I’m assuming you do have the Eclipse PHP tools (PDT) installed?

    To fix this, go to Preferences > CodeMix > Languages > Preferred Editors and uncheck the PHP item from the tree.

    Note: CodeMix probably took over the PHP editor when installed and not only after the installation of the Vue pack (assuming this is what you meant by the VueJS plugin).

    #591186 Reply

    zulusx
    Participant

    Yeah PDT is installed (I’m Project Leader :P). For now I manually unchecked preferred PHP language and validator and force default PHP editor in eclipse settings, but afraid lot of our users may have problem with that.

    I installed VueJS codemix plugin from marketplace. I see two features installed: Vue Pack::CodeMix 1.0.0 and Code Mix 0.9.0

    #591517 Reply

    Brian Fernandes
    Moderator

    Thanks for the note – clear on what you installed.

    We have release due in the next couple of days which should address exactly this problem, allowing you to more intuitively choose which editor and validator you wish to use. Will update this thread when that’s available, would love to hear your feedback.

    #592616 Reply

    Brian Fernandes
    Moderator

    Dawid,

    The update I was talking about was released yesterday – do pick it up, it should be a far improved experience.

    Yeah PDT is installed (I’m Project Leader :P).

    Sorry, I missed this in your last post – awesome! Your feedback will be invaluable.

    #592648 Reply

    zulusx
    Participant

    Looks better, but after reinstall my PHP editor was again replaced.

    1. After startup I always have to wait for “Verifying Projects” process. It blocks both DLTK and JSDT process
    2. If CodeMix editor is opened during startup (Vue file in my case) everything go even worse because also wait for another process “Linking viewer selection with current editor”. I’m using “refresh workspace on startup”.
    3. CodeMix should check dir permissions before register watchers I see java.nio.file.AccessDeniedException in Eclipse logs
    4. I don’t understand high CPU usage on OSX, constantly takes 30% – 80% even if I do nothing. Yourkit report that most cpu cycles are consumed by sun.nio.fs.PoolingWatchService. Why not IResource events + Eclipse Workspace auto-refresh? I have really large code base and a lot of projects opened.
    5. Eclipse reports deadlocks ui/freeze after startup with any editor opened:

    To avoid deadlock while executing Display.syncExec() with argument: com.genuitec.eclipse.code.ui.EarlyStartup$$Lambda$557/250188560@390e6d84, thread Worker-15: Workbench early startup will interrupt UI thread.

    java.lang.IllegalStateException: Call stack for thread Worker-15: Workbench early startup
    at java.management@9.0.4/sun.management.ThreadImpl.dumpThreads0(Native Method)
    at java.management@9.0.4/sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:472)
    at org.eclipse.ui.internal.UILockListener.reportInterruption(UILockListener.java:206)
    at org.eclipse.ui.internal.UILockListener.interruptUI(UILockListener.java:176)
    at org.eclipse.ui.internal.PendingSyncExec.waitUntilExecuted(PendingSyncExec.java:82)
    at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:153)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4860)
    at com.genuitec.eclipse.code.ui.EarlyStartup.earlyStartup(EarlyStartup.java:33)
    at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:77)
    at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.Workbench$40.run(Workbench.java:2758)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

    java.lang.IllegalStateException: Call stack for thread main
    at java.desktop@9.0.4/sun.font.CFont.createNativeFont(Native Method)
    at java.desktop@9.0.4/sun.font.CFont.getNativeFontPtr(CFont.java:196)
    at java.desktop@9.0.4/sun.font.CFont.getWidth(CFont.java:115)
    at java.desktop@9.0.4/sun.font.FontFamily.preferredWidth(FontFamily.java:169)
    at java.desktop@9.0.4/sun.font.FontFamily.setFont(FontFamily.java:264)
    at java.desktop@9.0.4/sun.font.CFontManager.registerGenericFont(CFontManager.java:105)
    at java.desktop@9.0.4/sun.font.CFontManager.registerGenericFont(CFontManager.java:80)
    at java.desktop@9.0.4/sun.font.CFontManager.registerFont(CFontManager.java:167)
    at java.desktop@9.0.4/sun.font.CFontManager.loadNativeFonts(Native Method)
    at java.desktop@9.0.4/sun.font.CFontManager.access$100(CFontManager.java:46)
    at java.desktop@9.0.4/sun.font.CFontManager$1.run(CFontManager.java:213)
    at java.base@9.0.4/java.security.AccessController.doPrivileged(Native Method)
    at java.desktop@9.0.4/sun.font.CFontManager.loadFonts(CFontManager.java:209)
    at java.desktop@9.0.4/sun.font.SunFontManager.findFont2D(SunFontManager.java:2334)
    at java.desktop@9.0.4/java.awt.Font.getFont2D(Font.java:505)
    at java.desktop@9.0.4/java.awt.Font.access$000(Font.java:232)
    at java.desktop@9.0.4/java.awt.Font$FontAccessImpl.getFont2D(Font.java:236)
    at java.desktop@9.0.4/sun.font.FontUtilities.getFont2D(FontUtilities.java:145)
    at java.desktop@9.0.4/sun.java2d.SunGraphics2D.checkFontInfo(SunGraphics2D.java:670)
    at java.desktop@9.0.4/sun.java2d.SunGraphics2D.getFontInfo(SunGraphics2D.java:831)
    at java.desktop@9.0.4/sun.java2d.SurfaceData.getTextPipe(SurfaceData.java:754)
    at java.desktop@9.0.4/sun.java2d.SurfaceData.validatePipe(SurfaceData.java:652)
    at java.desktop@9.0.4/sun.java2d.SunGraphics2D.validatePipe(SunGraphics2D.java:447)
    at java.desktop@9.0.4/sun.java2d.pipe.ValidatePipe.validate(ValidatePipe.java:55)
    at java.desktop@9.0.4/sun.java2d.pipe.ValidatePipe.fillRect(ValidatePipe.java:75)
    at java.desktop@9.0.4/sun.java2d.SunGraphics2D.fillRect(SunGraphics2D.java:2424)
    at com.genuitec.eclipse.code.ui.languages.IconDataImageDescriptor$IconDataImageDataProvider.prepareGrahics(IconDataImageDescriptor.java:143)
    at com.genuitec.eclipse.code.ui.languages.IconDataImageDescriptor$IconDataImageDataProvider.getImageData(IconDataImageDescriptor.java:64)
    at org.eclipse.swt.graphics.Image.<init>(Image.java:816)
    at com.genuitec.eclipse.code.ui.languages.IconDataImageDescriptor.createImage(IconDataImageDescriptor.java:228)
    at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:240)
    at com.genuitec.eclipse.code.ui.statusbar.OpticonsRenderingLabel.paintControl(OpticonsRenderingLabel.java:90)
    at com.genuitec.eclipse.code.ui.statusbar.OpticonsRenderingLabel$1.paintControl(OpticonsRenderingLabel.java:39)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:231)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4247)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1508)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1531)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1516)
    at org.eclipse.swt.widgets.Control.drawWidget(Control.java:1277)
    at org.eclipse.swt.widgets.Canvas.drawWidget(Canvas.java:172)
    at org.eclipse.swt.widgets.Widget.drawRect(Widget.java:772)
    at org.eclipse.swt.widgets.Canvas.drawRect(Canvas.java:166)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5884)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
    […]

    Note I have also DBeaver installed.
    6. After install “welcome screen” destroy Dark Theme on OSX, I had to restart eclipse.

    #592664 Reply

    aaronlonin
    Moderator

    @zulusx Thanks for your awesome feedback! And sorry to hear we aren’t quite 100% there yet.. Our team is actively looking at the issues you described. We will likely pick up a at least a few incremental fixes in an update release coming shortly.

    Here some initial thoughts on each of them

    0. Regarding editors being taken over, in our last update we cleaned up some preference locations, and it’s likely we missed one during migration. It should not affect you anymore in further updates though. In addition, we now present a tuning panel to easily switch the preferred editor to let all your users who use CodeMix quickly switch back.

    1&2. We will take a look at our startup processes to not be that disruptive, so it can let other processes run as well. If you had a simple flow/example project that exemplified this problem, it would be a huge help.

    3&4. Regarding our Watcher, this is really important to be responsive as Eclipse’s automatic refresh doesn’t work well when generating/manipulating files from external tools. Anyway, our next improvement in this area would be to be less aggressive about starting ours and give you a way to turn it off if it is automatically turned on. And yes, we will also check for directory permissions, thanks for noticing this as well!

    5. Deadlocks, we will check our startup processes don’t lock display. We haven’t noticed this behaviour before.

    6. Regarding Welcome Screen destroying Dark Theme in OSX, could you expand on this issue? Do you have any error in log about this? I assume you are talking about regular eclipse Dark theme. It would also help knowing the eclipse version you are testing with so we can replicate.

    Thanks!
    Aaron Lara

    #592701 Reply

    zulusx
    Participant

    Deadlock / startup process probably is provoked by DBEaver when plugin change toolbar items (in UI thread off course) E4 trying to access CodeMix that is during startup.

    About Dark theme yes, I’m using standard Eclipse EPP PHP package with built-in Dark theme (osx). After CodeMix install most frames become light on OSX until I restart eclipse.

    #593742 Reply

    support-swapna
    Moderator

    Dawid,

    We just released an update to CodeMix (CI 2018.7.18) which has the fix for the deadlock and the startup problems reported by you.

    Please update and let us know how it works for you.

    –Swapna
    Genuitec Support

    #593824 Reply

    zulusx
    Participant

    Thank You for info, unfortunately due deadlocks CodeMix was completely useless for me and I had to uninstall it completely.

    I tried install and recheck but my license has expired.

    #593825 Reply

    Brian Fernandes
    Moderator

    Dawid,

    If you PM me your email address, I’ll get your license issues sorted out.

    Your feedback was invaluable, would love to hear your thoughts on the experience with the new release.

    #593840 Reply

    zulusx
    Participant

    First look:

    1. Dark Mode problem, still persist (attached screenshot).
    2. java.nio.file.AccessDeniedException during startup still here
    3. I’m experiencing slow boot, and still have to wait until I’ll be able to write something, looks like CodeMix calculate too much in UI

    Stack Trace
    at com.genuitec.eclipse.code.ui.tasks.TasksService.getBuildTaskParticipantFor(TasksService.java:30)
    at com.genuitec.eclipse.code.ui.command.CodeBuildHandler.isEnabled(CodeBuildHandler.java:44)
    at org.eclipse.ui.internal.handlers.HandlerProxy.isEnabled(HandlerProxy.java:319)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.canExecute(E4HandlerProxy.java:73)
    at jdk.internal.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
    at java.base@9.0.4/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base@9.0.4/java.lang.reflect.Method.invoke(Method.java:564)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:318)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:252)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:161)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.isEnabled(HandlerServiceHandler.java:58)
    at org.eclipse.core.commands.Command.isEnabled(Command.java:838)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.canExecute(HandlerServiceImpl.java:177)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.canExecute(HandlerServiceImpl.java:163)
    at org.eclipse.ui.internal.menus.MenuHelper$1.evaluate(MenuHelper.java:240)
    at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isCoreExpressionVisible(ContributionsAnalyzer.java:286)
    at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isVisible(ContributionsAnalyzer.java:260)
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.computeVisibility(ContributionRecord.java:167)
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:98)
    at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:191)
    at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:202)
    at org.eclipse.ui.internal.WorkbenchWindow$8.run(WorkbenchWindow.java:710)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4043)
    at org.eclipse.swt.widgets.Display.observerProc(Display.java:3628)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
    at org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:5138)
    at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5562)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
    at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:232)
    at org.eclipse.swt.widgets.Widget.mouseDownSuper(Widget.java:1142)
    at org.eclipse.swt.widgets.Tree.mouseDownSuper(Tree.java:2144)
    at org.eclipse.swt.widgets.Widget.mouseDown(Widget.java:1134)
    at org.eclipse.swt.widgets.Control.mouseDown(Control.java:2639)
    at org.eclipse.swt.widgets.Tree.mouseDown(Tree.java:2111)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5917)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
    at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:232)
    at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2115)
    at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2411)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:6041)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
    at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:5280)
    at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5432)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
    at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3710)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1170)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1059)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:667)
    at org.eclipse.ui.internal.Workbench$$Lambda$91/1204383532.run(Unknown Source)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:597)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
    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:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at java.base@9.0.4/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base@9.0.4/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base@9.0.4/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base@9.0.4/java.lang.reflect.Method.invoke(Method.java:564)
    at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:656)
    at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:592)
    at app//org.eclipse.equinox.launcher.Main.run(Main.java:1498)
    4. Another stacktrace was published to genuitec AERI: https://aer.ctrlflow.com/genuitec/reporters/#!/submissions/0hs8U0BJradn40hgBUghuZVjZCBWbVtR3zHFNWRxgkI2Z4I5LkjcYa96T5Kon83T Again Deaver somehow invoked some part of CodeMix stuck, this time during icon generation.
    5. After restart, looking for CSS classes in workspace stuck on 99.41% for a long time, I don’t know how to check what is going on
    6. I’m experiencing lag during writing even on small vue file (300 lines), heap status growing even if I do nothing. I haven’t such lags with PDT text editor

    Attachments:
    You must be logged in to view attached files.
    #593927 Reply

    Brian Fernandes
    Moderator

    Dawid,

    I will say that we’ve been working with, and testing, development with CodeMix in such cases, Vue.js included, and can’t reproduce these issues in our tests. Clearly this isn’t the case for your environment, and it is disappointing that the fixes we made did not address these primary problems.

    Our team will keep looking at the problem, and we’ll contact you if we need further information, or have a fix. Thank you for providing such immediate feedback on the update, very valuable and much appreciated.

Viewing 13 posts - 1 through 13 (of 13 total)
Reply To: VueJS Eclipse plugin override PHP editor