satyagraha / gfm_viewer Goto Github PK
View Code? Open in Web Editor NEWAn Eclipse plugin providing an accurate view of GitHub Flavored Markdown (.md) files
An Eclipse plugin providing an accurate view of GitHub Flavored Markdown (.md) files
Via menu Window -> New, Eclipse supports multiple workbench windows, and in each workbench one should be able to have a GFM view with each separate view monitoring different markdown files. However, although the view creation does work, only a single update appears to be tracked and its updates are applied to every GFM view.
change from
Tue Nov 26 17:26:52 CST 2013
to something like
2013-11-26 17:26:52.00
that is more compact
related to #33
Steps to reproduce
0. Install Node.js http://www.nodejs.org/download/
eclipse.buildId=4.3.0.I20130605-2000
java.version=1.7.0_25
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32
Framework arguments: -product org.eclipse.epp.package.dsl.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.dsl.product
Error
Tue Oct 01 13:39:41 CST 2013
Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
java.lang.NullPointerException
at code.satyagraha.gfm.viewer.views.GfmView$2.isTrackableFile(GfmView.java:88)
at code.satyagraha.gfm.viewer.views.EditorTracker.checkIfTrackable(EditorTracker.java:111)
at code.satyagraha.gfm.viewer.views.EditorTracker.partActivated(EditorTracker.java:62)
at org.eclipse.ui.internal.PartService$6.run(PartService.java:131)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.PartService.partActivated(PartService.java:129)
at org.eclipse.ui.internal.WorkbenchPage$15.run(WorkbenchPage.java:4798)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:4796)
at org.eclipse.ui.internal.WorkbenchPage.access$16(WorkbenchPage.java:4776)
at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:195)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$2.run(PartServiceImpl.java:183)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivated(PartServiceImpl.java:181)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:595)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:539)
at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:104)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer$1.handleEvent(ContributedPartRenderer.java:59)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1081)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1453)
at org.eclipse.swt.widgets.Shell.WM_MOUSEACTIVATE(Shell.java:2334)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4655)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1627)
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2075)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3141)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
Finnally found a way to get it installed on slow/unstable Internet connection #38 .
Nodeclipse CLI Installer is launched from command line and uses Eclipse built-in p2 director:
nodeclipse i gfm
This take version from Nodeclipse Updates.
(You can make special script for GFMV see https://github.com/Nodeclipse/nodeclipse-1/blob/master/org.nodeclipse.ui/templates/nodeclipse-install.js )
I want to add to README this option. Do you mind?
I have install the extension via Update URL, but it is not possible to use the view.
I get the message Unhandled event loop exception No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
Thanks for your time.
As of 1.7.0
when GFM View is minimized and "Always generate HTML" is on,
I see html files appear while I check my md files in Editor.
Currently temp html files get . in the beginning. That is good, because Eclipse by default don't show such files.
Those files should never be committed into git repository, so I added /.* to .gitignore
. However .gitignore
also starts with . (dot), so how to commit .gitignore
now?
I maybe just don't know some EGit or git way to do that.
Please email me at paul.verest%live.com
I will email to marketplace support to make you owner of
http://marketplace.eclipse.org/content/github-flavored-markdown-viewer-plugin-update-site
Leave me co-maintainer if you want me changing their.
One thing I want to change is that GFMV is not only viewer, but must-have tool for eclipse developer who uses GitHub or wants to author Help in markdown (see #22 )
Currently hard coded, it would be nice if I could configure these through the UI
Was mentioned in #7 , but is better to be separate issue.
When View is minimized, there should be no unnecessary calculations or new network traffic.
As of 1.7.0 a Dialog is displayed.
This is great for 1 time, but when network is known to be unstable and and dialog appears every other time, it is a bit annoying.
What if Eclipse Console is used, there is option not to show those dialogs.
Not so critical. I just explored PhoneGap with npm install phonegap
and it has a lot of README.md inside
com.sun.jersey.api.client.ClientHandlerException: java.net.SocketTimeoutException: Read timed out
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:151)
at com.sun.jersey.api.client.filter.LoggingFilter.handle(LoggingFilter.java:183)
at com.sun.jersey.api.client.Client.handle(Client.java:648)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:680)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:558)
at code.satyagraha.gfm.support.impl.WebServiceClientDefault.transform(WebServiceClientDefault.java:71)
at code.satyagraha.gfm.support.impl.TransformerDefault.transformMarkdownText(TransformerDefault.java:90)
at code.satyagraha.gfm.support.impl.TransformerDefault.transformMarkdownFile(TransformerDefault.java:75)
at code.satyagraha.gfm.ui.impl.SchedulerDefault$2.run(SchedulerDefault.java:62)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
at sun.security.ssl.InputRecord.read(InputRecord.java:480)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1323)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:249)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
... 10 more
This is very similar to #20
NPE happens in 1.5.0 when switching into Debugging perspective
java.lang.NullPointerException
at code.satyagraha.gfm.viewer.views.impl.MarkdownView$2.isTrackableFile(MarkdownView.java:85)
at code.satyagraha.gfm.viewer.views.impl.MarkdownEditorTracker.editorShown(MarkdownEditorTracker.java:68)
at code.satyagraha.gfm.ui.impl.PageEditorTrackerDefault.checkShown(PageEditorTrackerDefault.java:106)
at code.satyagraha.gfm.ui.impl.PageEditorTrackerDefault.partActivated(PageEditorTrackerDefault.java:59)
at org.eclipse.ui.internal.WorkbenchPage$15.run(WorkbenchPage.java:4798)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:4796)
at org.eclipse.ui.internal.WorkbenchPage.access$16(WorkbenchPage.java:4776)
at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:195)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$2.run(PartServiceImpl.java:183)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivated(PartServiceImpl.java:181)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:595)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:539)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:528)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:316)
at org.eclipse.ui.internal.WorkbenchPage.bringToTop(WorkbenchPage.java:964)
at org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.doSelectionChanged(JavaEditor.java:2022)
at org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor$OutlineSelectionChangedListener.selectionChanged(JavaEditor.java:273)
at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:888)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:886)
at org.eclipse.jface.viewers.StructuredViewer.handleInvalidSelection(StructuredViewer.java:1177)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1456)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1525)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
at org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaOutlinePage.setInput(JavaOutlinePage.java:1203)
at org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.setOutlinePageInput(JavaEditor.java:1564)
at org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.internalDoSetInput(JavaEditor.java:2186)
at org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.doSetInput(JavaEditor.java:2160)
at org.eclipse.wst.jsdt.internal.ui.javaeditor.CompilationUnitEditor.doSetInput(CompilationUnitEditor.java:1306)
at org.eclipse.ui.texteditor.AbstractTextEditor.setInputWithNotify(AbstractTextEditor.java:4289)
at org.eclipse.ui.texteditor.AbstractTextEditor.setInput(AbstractTextEditor.java:4311)
at org.eclipse.ui.internal.WorkbenchPage.reuseEditor(WorkbenchPage.java:2958)
at org.eclipse.debug.internal.ui.sourcelookup.SourceLookupFacility.openEditor(SourceLookupFacility.java:280)
at org.eclipse.debug.internal.ui.sourcelookup.SourceLookupFacility.display(SourceLookupFacility.java:219)
at org.eclipse.debug.ui.DebugUITools.displaySource(DebugUITools.java:998)
at org.eclipse.debug.internal.ui.elements.adapters.StackFrameSourceDisplayAdapter$SourceDisplayJob.runInUIThread(StackFrameSourceDisplayAdapter.java:157)
at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Some changes to preferences are not actioned immediately, i.e. they require a restart of Eclipse: e.g. the Console output facility. Rectify where necessary.
In #18
When Markdown Editor opens (or GFM View is activated),
if .md.html already exists, show it in the View, whatever current mode is (Linked or not)
I have README.md and .README.md.html,
README is from library (that is not edited),
I just want to see it, so I select Show in GFM VIew
Then I just see error Dialog (due to network problem or because I am offline)
A thought came when I was about to answer #35 ...
I think the GFMV is very close to perfect.
Personally I believe a lot of project became worse because of too much code. In other words sometimes it is about writing less code and scrub old code or just stop for a while.
Daniel Winderstein has given me access write to repository https://github.com/winterstein/Eclipse-Markdown-Editor-Plugin that I don't have immediate plans to use
(maybe just small refresh release as 1.0 because ,in fact, it has been stable for long time). But the reason is that Daniel is not putting some time aside for the project.
Nodeclipse https://github.com/nodeclipse/nodeclipse-1/ added simple (Run As) support for Nashorn jjs, PhantomJS, MongoDB Shell JavaScript. I just was blown away, now the scope became all server-side JavaScript.
The feature set for 0.7 is ready but keep it as 0.6 was released just on Oct 6th.
For long I wanted to talk about what are the motives we do all those projects.
This is maybe network related problem, but
for several days can't install 1.5.0 in Beijing China (made more than dozen attempts)
The install starts, goes for 10% - 30% then timeout.
While this is maybe only in China, I noticed that for Nodeclipse, download speed went down from ~30KBs to ~5KBs
and it is likely that there is problem with big files (6MB).
Though contrary to #37 , here is new idea that worth 2.0 as it would have distinctive difference.
In my use case with Node.js, where almost all documentation is README.md coming from GitHub. I usually double-click to open editor. And then if Markdown markup is used a lot I want to switch to GFMV. That is actually not so quick, as by default the View will appear on area below, that is small. The better place is Editor area, or half of Editor area, for example in #29
But I think most users even don't know that they can drag-an-drop the View around.
(TODO GFMV should suggest that)
But I think, the most convenient would be [detachable] tab inside Markdown Editor, like Preview in HTML Editor.
I am not sure if it is possible in Eclipse 4
to have Part that can be inside tab and as View/Editor.
When Markdown Editor opens (or GFM View is activated),
if .md.html already exists, show it in the View, whatever current mode is (Linked or not)
In Linked mode,
if .md.html file date is newer that .md file, no need to call transformation
Installed GFM 1.8.0 into Eclipse Kepler 4.3 SR1.
Steps:
Trace:
org.picocontainer.PicoCompositionException: Duplicate Keys not allowed. Duplicate for 'class code.satyagraha.gfm.viewer.views.MarkdownBrowserDefault'
at org.picocontainer.DefaultPicoContainer.addAdapterInternal(DefaultPicoContainer.java:437)
at org.picocontainer.DefaultPicoContainer.addAdapter(DefaultPicoContainer.java:458)
at org.picocontainer.DefaultPicoContainer.addComponent(DefaultPicoContainer.java:555)
at org.picocontainer.DefaultPicoContainer.addComponent(DefaultPicoContainer.java:500)
at org.picocontainer.DefaultPicoContainer.addComponent(DefaultPicoContainer.java:487)
at code.satyagraha.gfm.di.InjectorImpl.addInstance(InjectorImpl.java:54)
at code.satyagraha.gfm.viewer.views.MarkdownViewDefault.createPartControl(MarkdownViewDefault.java:32)
With composite p2 repository it is possible to have the same update p2 repository URL for all releases to Bintray
Once a file has been shown in the GFM Viewer, further edits aren’t shown. The Reload button and the option Always generate HTML have no effect. Changing the temp. dir option, making an edit and saving sometimes refresh the view (I haven’t looked very thoroughly to see when this happens).
This bug affects Eclipse Kepler (Service Release 1 Build id: 20130919-0819). Is this an unsupported version at the moment?
First back, then forward, as in most browsers.
Use local override as per http://stackoverflow.com/questions/3203228/git-ignore-exception
I started using Markdown for Eclipse Help plugin https://github.com/Nodeclipse/org.nodeclipse.help/tree/master/contents (Welcome to extend https://github.com/Nodeclipse/org.nodeclipse.help/blob/master/contents/github-flavored-markdown.md)
In this scenario, it would be nice to select one command to update all .md rendering for a folder or project. ( Is there optimizing to compare .md & .html dates to skip not needed requests.)
As I couldn't install #10 , I download latest code and run build.
After restart, there's no icons mentioned in README
Thanks very much for sharing your fine work.
This message concerns a possible issue, but may instead reflect my ignorance of Eclipse: should the viewer render the md when I use Eclipse's File > Open File
to open the md file?
Immediately after installing the Winterstein Eclipse-Markdown-Editor-Plugin and your viewer, I opened a tiny md file via Eclipse's File > Open File
menu. The Winterstein viewer rendered the Markdown as if it were standard Markdown, but the GFM viewer pane was empty. No html files were created.
I eventually tried creating a project that contains the md file, and the GFM viewer immediately rendered the Markdown as expected. I should add that I don't understand the distinction that Eclipse makes in some other areas between files that are -- versus are not -- part of a project.
I wouldn't have bothered you by opening an issue for this, but it does give me an opportunity to convey my thanks.
when i try to install this plugin from the eclipse marketplace i get this error.
Same goes for the drag and drop icon with this url.
http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=900708
An error occurred while collecting items to be installed session context was (profile=DefaultProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=). No artifact repository available. noArtifactRepositoriesAvailable
I am on eclipse 3.8.2
satyagraha wrote in #7
Certainly pop-ups should be avoided, I think exceptions should be caught in the background job and simply posted to the error log.
FYI, if PDE is not installed, then there is no Error Log View.
Currently GFMV may be too silent, when network related error happens.
The paragraph at https://github.com/satyagraha/gfm_viewer#development is no longer accurate as a result of Maven/Tycho refactorings. Check process on clean clone of repo.
An alternative solution to the offline issue #7 and #8 would be to provide a manual update mode. The idea is that instead of the plugin trying to update the view automatically, there would be a "refresh" button which the user would press when they wanted the view updated by running the background job. So they would only get network traffic when it suited them. There also would be a checkbox button on the view to switch between manual and automatic mode, and the default setting would be defined in plugin preferences.
I think this would be easier to get right than view visible/hidden state tracking.
Related to #13
GitHub lets define links to other page as [page2](page2)
, where page2.md will be page2.html
However as current mask is .*.md.html
, those links between pages will not work.
I think .*.md.html
should stay default, as it has benefits discuss before. However for some cases or for some users *.html
could be better.
e.g. http://marketplace.eclipse.org/content/eclipse-moonrise-ui-theme
If the theme is black GFMV View should be black by default.
guari/eclipse-ui-theme#28 How to determine programmatically that current theme is clack?
Eclipse 4.2.1 and 4.3.0.RC2 are freezing for 5-15 seconds if .md document has several (big) pictures.
General experience with plugin that it makes Eclipse very slow, when saving .md file with opened GMF View.
Has anyone observed that their input cursor located at the edit point in their .md
file sometimes disappears after saving and previewing the file? And that you then need to click somewhere else in the windows to get it to reappear?
The current code aims to show a "busy" mouse cursor over the web browser window while the background formatting job is executing, and restore a normal pointer cursor on completion. I have a suspicion that something isn't quite right in this area...
The above may result in
Hi @satyagraha
I invite you to join Nodeclipse team.
I have already cloned gfm_viewer into https://github.com/Nodeclipse/gfm_viewer and configured write access for you. So you can join any time.
Our web site is http://www.nodeclipse.org/
Check also http://www.nodeclipse.org/2013/06/07/GFM-Viewer.html ;-)
As Always Generate in #47 has some other meaning, could there be Always save .html that would save all viewed HTML.
This will eliminate need to generate them.
I have noticed that the plugin works only online. While most of developers have broadband, some have unstable or slow Internet connection.
Is the option to work offline?
https://github.com/mranney/node_redis#usage
The code snippet below is transformed into 1 line in IE or Chrome
This will display:
mjr:~/work/node_redis (master)$ node example.js
Reply: OK
Reply: 0
Reply: 0
2 replies:
0: hashtest 1
1: hashtest 2
mjr:~/work/node_redis (master)$
->
However when copy-paste from browser into here I saw it is OK:
This will display:
mjr:/work/node_redis (master)$ node example.js/work/node_redis (master)$
Reply: OK
Reply: 0
Reply: 0
2 replies:
0: hashtest 1
1: hashtest 2
mjr:
Looking into generated HTML with Hex Viewer, I see that the problem is line endings in <pre>
elements. GitHub gives only one char CR x0A
00000019B4: 70 3E 54 68 69 73 20 77 │ 69 6C 6C 20 64 69 73 70 p>This will disp
00000019C4: 6C 61 79 3A 3C 2F 70 3E │ 20 0A 3C 70 72 65 3E 3C lay:</p>
<pre><
00000019D4: 63 6F 64 65 3E 6D 6A 72 │ 3A 7E 2F 77 6F 72 6B 2F code>mjr:~/work/
00000019E4: 6E 6F 64 65 5F 72 65 64 │ 69 73 20 28 6D 61 73 74 node_redis (mast
00000019F4: 65 72 29 24 20 6E 6F 64 │ 65 20 65 78 61 6D 70 6C er)$ node exampl
0000001A04: 65 2E 6A 73 0A 52 65 70 │ 6C 79 3A 20 4F 4B 0A 52 e.js
Reply: OK
R
0000001A14: 65 70 6C 79 3A 20 30 0A │ 52 65 70 6C 79 3A 20 30 eply: 0
Reply: 0
0000001A24: 0A 32 20 72 65 70 6C 69 │ 65 73 3A 0A 20 20 20 20
2 replies:
0000001A34: 30 3A 20 68 61 73 68 74 │ 65 73 74 20 31 0A 20 20 0: hashtest 1
0000001A44: 20 20 31 3A 20 68 61 73 │ 68 74 65 73 74 20 32 0A 1: hashtest 2
0000001A54: 6D 6A 72 3A 7E 2F 77 6F │ 72 6B 2F 6E 6F 64 65 5F mjr:~/work/node_
0000001A64: 72 65 64 69 73 20 28 6D │ 61 73 74 65 72 29 24 0A redis (master)$
0000001A74: 3C 2F 63 6F 64 65 3E 3C │ 2F 70 72 65 3E 20 0A 3C </code></pre>
<
Question: what to do? Is it bug for GitHub service? Where should it be raised?
E.g. Build info, JVM, platform, browser type, etc. Will be useful for bug reports.
The plugin typically writes .filename.md.html
files alongside the original filename.md
files. However since it does not use the Eclipse Workspace API to write the HTML files, these files not appear in the Navigator folder view immediately after creation. The user needs to press F5 (or context menu Refresh) on the parent folder to see them. See also: http://wiki.eclipse.org/FAQ_When_should_I_use_refreshLocal%3F
Therefore, there are several possible approaches to this issue;
IFile.create()
API to write the fileIFile.refreshLocal()
API to refresh the parent folderThere are two major complications to a solution:
refreshLocal
API was that calling it seemed to force a complete rebuild of the whole parent project: with a large Java or Scala project this can take a long time and would be very intrusive to the user. So creation and updating of these files should not force a rebuild if possible.(Maybe only me will be using this)
expose API for .html file generation from other plugins like
Promise renderMarkdown(IFile file)
or
Promise renderMarkdown(IFolder folder, boolean recursive)
Feature request: Drag&Drop from Project Explorer into View to see file
(without need to open Editor)
It is very useful (and should be quicker) when just exploring docs, for example Node.js node_modules
folder.
When getting newer html fails due to network proble, GFMV show error dialog, and not show existing .*.md.html.
Should be: error dialog with message that "there was network problem, older version
is found and shown".
Related to #47
Batch mode processes files without extension, e.g. LICENSE, Makefile.
Continue subtopic in #19 as separate issue
I wrote a program to investigate the line ending issues, and it appears there are a mixture of Linux- and Windows- style endings in the project. Things start to go wrong when merges are attempted AFAICS. This issue is a can of worms and I'm not sure really the right way forward, and I don't see any concensus on the net, .e.g. http://stackoverflow.com/questions/2825428/why-should-i-use-core-autocrlf-true-in-git
I don't remember about the value for core.autocrlf
, I just remmeber that
edited README is opened,
GFM View is active, Linked mode off
Pressing Refresh doesn't change anything:
no progress indicator, no indication of download starting in Console
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.