Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows path causing regex exception #131

Closed
vsch opened this issue Jan 5, 2016 · 2 comments
Closed

Windows path causing regex exception #131

vsch opened this issue Jan 5, 2016 · 2 comments

Comments

@vsch
Copy link
Owner

vsch commented Jan 5, 2016

The Windows path separator is not being escaped, and results in an invalid escape sequence. The below is for the basic auth node module, but this occurs on all .md files regardless of what it is due to the path.

java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 4
^C:\Users[USERNAME][PATH TO PROJECTS][PROJECT NAME]/(?:\Qnode_modules/basic-auth/LICENSE\E)$
^
at java.util.regex.Pattern.error(Pattern.java:1955)
at java.util.regex.Pattern.escape(Pattern.java:2471)
at java.util.regex.Pattern.atom(Pattern.java:2198)
at java.util.regex.Pattern.sequence(Pattern.java:2130)
at java.util.regex.Pattern.expr(Pattern.java:1996)
at java.util.regex.Pattern.compile(Pattern.java:1696)
at java.util.regex.Pattern.(Pattern.java:1351)
at java.util.regex.Pattern.compile(Pattern.java:1028)
at kotlin.text.Regex.(RegexJVM.kt:98)
at kotlin.text.StringsKt__RegexExtensionsKt.toRegex(RegexExtensions.kt:9)
at kotlin.text.StringsKt.toRegex(Unknown Source)
at com.vladsch.idea.multimarkdown.util.GitHubLinkResolver.getMatchedRefs(GitHubLinkResolver.kt:247)
at com.vladsch.idea.multimarkdown.util.GitHubLinkResolver.resolve(GitHubLinkResolver.kt:157)
at com.vladsch.idea.multimarkdown.editor.MultiMarkdownLinkRenderer.getLinkTarget(MultiMarkdownLinkRenderer.java:78)
at com.vladsch.idea.multimarkdown.editor.MultiMarkdownLinkRenderer.renderLink(MultiMarkdownLinkRenderer.java:102)
at com.vladsch.idea.multimarkdown.editor.MultiMarkdownLinkRenderer.render(MultiMarkdownLinkRenderer.java:128)
at org.pegdown.ToHtmlSerializer.visit(ToHtmlSerializer.java:215)
at org.pegdown.ast.ExpLinkNode.accept(ExpLinkNode.java:35)
at org.pegdown.ToHtmlSerializer.visitChildrenSkipFirst(ToHtmlSerializer.java:606)
at org.pegdown.ToHtmlSerializer.visitChildren(ToHtmlSerializer.java:594)
at org.pegdown.ToHtmlSerializer.visit(ToHtmlSerializer.java:579)
at org.pegdown.ast.SuperNode.accept(SuperNode.java:43)
at org.pegdown.ToHtmlSerializer.visitChildrenSkipFirst(ToHtmlSerializer.java:606)
at org.pegdown.ToHtmlSerializer.visitChildren(ToHtmlSerializer.java:594)
at org.pegdown.ToHtmlSerializer.printTag(ToHtmlSerializer.java:620)
at org.pegdown.ToHtmlSerializer.printBreakBeforeTag(ToHtmlSerializer.java:627)
at org.pegdown.ToHtmlSerializer.visit(ToHtmlSerializer.java:315)
at org.pegdown.ast.ParaNode.accept(ParaNode.java:35)
at org.pegdown.ToHtmlSerializer.visitChildrenSkipFirst(ToHtmlSerializer.java:606)
at org.pegdown.ToHtmlSerializer.visitChildren(ToHtmlSerializer.java:594)
at org.pegdown.ToHtmlSerializer.visit(ToHtmlSerializer.java:120)
at org.pegdown.ast.RootNode.accept(RootNode.java:96)
at org.pegdown.ToHtmlSerializer.toHtml(ToHtmlSerializer.java:90)
at com.vladsch.idea.multimarkdown.editor.resources.JavaFxHtmlGenerator.toHtml(JavaFxHtmlGenerator.kt:54)
at com.vladsch.idea.multimarkdown.editor.MarkdownPreviewFileEditor$HtmlUpdater.run(MarkdownPreviewFileEditor.kt:272)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:351)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:332)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:719)
at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:734)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:569)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

reported originally in nicoulaj/idea-markdown/issues/254

@vsch
Copy link
Owner Author

vsch commented Jan 5, 2016

quick fix build 1.4.0.1 available. Fixes exception in regex and also improper URI's were generated for local files due to windows platform idiosyncrasies. Now local images and local only file links resolve in preview.

Download and install plugin from disk: https://github.com/vsch/idea-multimarkdown/raw/master/dist/idea-multimarkdown.1.4.0.1.zip

@vsch vsch modified the milestone: Version 1.5.0 Jan 6, 2016
@vsch vsch reopened this Jan 6, 2016
@vsch
Copy link
Owner Author

vsch commented Jan 6, 2016

Latest fixed build 1.4.0.2 available. It includes fix for this issue along with others. https://github.com/vsch/idea-multimarkdown/raw/master/dist/idea-multimarkdown.1.4.0.2.zip

You need to download the plugin zip and use the install plugin from disk button in preferences > plugins.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant