nicoulaj / idea-markdown Goto Github PK
View Code? Open in Web Editor NEWMarkdown language support for IntelliJ IDEA (abandonned).
License: Apache License 2.0
Markdown language support for IntelliJ IDEA (abandonned).
License: Apache License 2.0
It'd be nice to be able to ctrl-click on a link, image or email address and have the corresponding app open...
It would be great if you supported GitHub GFM syntax highlighting.
For example:
val foo = "bar"
<foo>bar</foo>
The default one really looks ugly :s
I've enabled both "Quotes" and "Smarts", but when I enter the following in the editor:
"This is a test. 'Is this a test?' -- Yes, it is. --- Is it? ...maybe."
the preview tab shows:
"This is a test. 'Is this a test?' -- Yes, it is. --- Is it? ...maybe."
where I would expect something like:
“This is a test. ‘Is this a test?’ –Yes, it is. —Is it? …maybe.”
(Note smart quotes, en and em dashes, single-character ellipsis.)
Possibly I'm misunderstanding the purpose of these options?
.. on Mac OS X 10.7.4.
Plugin installs fine, and I can see the 'Markdown' preferences pane (listing 'Activated Markdown extensions' - all unticked). When I open an .md file I appear to get the standard text editor - no highlighting or preview pane or anything. I can't see any relevant errors in the error log and nothing is popping up. Do I need to do something to associate .md files with the plugin? I'm using plugin version 0.8, installed using the 'browse repositories' option in the Settings / Plugins screen.
Thanks.
Waiting on #7.
Ref: http://youtrack.jetbrains.net/issue/PY-3377
See how it looks like with the built-in Twilight color scheme. My suggestion is to halve the intensity of all Markdown backgrounds.
Better solutions are welcome, maybe detection of the intensity so that MD switches to contrast background if the intensity crossed some threshold or use of standard backgrounds are welcome.
For example:
I just upgraded idea-markdown, and I'm currently getting this error and highlighting isn't working at all:
2011-11-08 15:59:36,490 [ 172927] ERROR - pplication.impl.LaterInvocator - class net.nicoulaj.idea.markdown.annotator.MarkdownAnnotator has interface com.intellij.lang.annotation.ExternalAnnotator as super class
java.lang.IncompatibleClassChangeError: class net.nicoulaj.idea.markdown.annotator.MarkdownAnnotator has interface com.intellij.lang.annotation.ExternalAnnotator as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:123)
at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:119)
at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:95)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:94)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:57)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.intellij.openapi.extensions.AbstractExtensionPointBean.findClass(AbstractExtensionPointBean.java:37)
at com.intellij.openapi.extensions.AbstractExtensionPointBean.instantiate(AbstractExtensionPointBean.java:57)
at com.intellij.openapi.extensions.CustomLoadingExtensionPointBean.instantiateExtension(CustomLoadingExtensionPointBean.java:45)
at com.intellij.lang.LanguageExtensionPoint.access$000(LanguageExtensionPoint.java:28)
at com.intellij.lang.LanguageExtensionPoint$1.compute(LanguageExtensionPoint.java:41)
at com.intellij.openapi.util.NotNullLazyValue.getValue(NotNullLazyValue.java:34)
at com.intellij.lang.LanguageExtensionPoint.getInstance(LanguageExtensionPoint.java:50)
at com.intellij.openapi.util.KeyedExtensionCollector.buildExtensions(KeyedExtensionCollector.java:134)
at com.intellij.openapi.util.KeyedExtensionCollector.buildExtensions(KeyedExtensionCollector.java:112)
at com.intellij.openapi.util.KeyedExtensionCollector.forKey(KeyedExtensionCollector.java:106)
at com.intellij.lang.LanguageExtension.allForLanguage(LanguageExtension.java:66)
at com.intellij.lang.ExternalLanguageAnnotators.allForFile(ExternalLanguageAnnotators.java:39)
at com.intellij.codeInsight.daemon.impl.ExternalToolPassFactory.a(ExternalToolPassFactory.java:64)
at com.intellij.codeInsight.daemon.impl.ExternalToolPassFactory.createHighlightingPass(ExternalToolPassFactory.java:56)
at com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarImpl$1.execute(TextEditorHighlightingPassRegistrarImpl.java:125)
at gnu.trove.TIntHash.forEach(TIntHash.java:157)
at gnu.trove.TIntObjectHashMap.forEachKey(TIntObjectHashMap.java:389)
at com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarImpl.instantiatePasses(TextEditorHighlightingPassRegistrarImpl.java:118)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.getPasses(TextEditorBackgroundHighlighter.java:95)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.createPassesForEditor(TextEditorBackgroundHighlighter.java:106)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.createPassesForEditor(TextEditorBackgroundHighlighter.java:35)
at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl$6.run(DaemonCodeAnalyzerImpl.java:694)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:229)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:332)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:677)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:647)
at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:662)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:515)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:411)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:369)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
2011-11-08 15:59:36,491 [ 172928] ERROR - pplication.impl.LaterInvocator - IntelliJ IDEA 10.5.2 Build #IU-107.587
2011-11-08 15:59:36,491 [ 172928] ERROR - pplication.impl.LaterInvocator - JDK: 1.6.0_26
2011-11-08 15:59:36,491 [ 172928] ERROR - pplication.impl.LaterInvocator - VM: Java HotSpot(TM) 64-Bit Server VM
2011-11-08 15:59:36,491 [ 172928] ERROR - pplication.impl.LaterInvocator - Vendor: Apple Inc.
2011-11-08 15:59:36,491 [ 172928] ERROR - pplication.impl.LaterInvocator - OS: Mac OS X
2011-11-08 15:59:36,491 [ 172928] ERROR - pplication.impl.LaterInvocator - Last Action: $Undo
It seems to be similar to the issue related to IDEA 11, but this is definitely IDEA 10.5.2.
Note: The preview works fine...
Side effect of #7: we now use an ExternalAnnotator, which is not triggered in the colors settings page.
Users are allowed to install the plugin on IntelliJ IDEA 9.0.X, but it is only compatible with IDEA X.
(reported by @tdebarochez)
Since trailing spaces are essential part of Markdown syntax this plugin should suppress trimming trailing spaces of Markdown files which is done by TrailingSpacesStripper
class and configured by combobox.strip.trailing.spaces.on.save
.
Frankly speaking I didn't found out how to do that without modifying IDEA source code.
Thanks
The enabled Mardkown should be per file configurable, through a menu in the editor.
(Related to #10).
The following snippet appears to be parsed correctly by the underlying pegdown parser but incorrectly highlights the first character of the second definition term (the 'T' of "Term B") as a list item:
# Problem with Definition List Highlighting
Term A
: Some Text.
- A list item
Term B
: Some other text
Even when I turn on Tables setting the tables are not should correct but are instead just shown as a single line. Example:
| locationID | lft | rgt |
|------------|-------|-------|
| 66007616 | 8 | 85 |
| 66008840 | 86 | 605 |
| 66008831 | 606 | 925 |
| 66011279 | 926 | 1241 |
| 66008453 | 1242 | 1523 |
| 66013316 | 1528 | 1769 |
| 66010271 | 1770 | 1901 |
| 66000173 | 1902 | 1907 |
| 66008450 | 1908 | 3273 |
| 66008324 | 3314 | 3391 |
| 66003473 | 3410 | 3499 |
| 66010529 | 3504 | 4815 |
| 66007361 | 5288 | 5305 |
Is shown like this:
| locationID | lft | rgt ||------------|-------|-------|| 66007616 | 8 | 85 || 66008840 | 86 | 605 || 66008831 | 606 | 925 || 66011279 | 926 | 1241 || 66008453 | 1242 | 1523 || 66013316 | 1528 | 1769 || 66010271 | 1770 | 1901 || 66000173 | 1902 | 1907 || 66008450 | 1908 | 3273 || 66008324 | 3314 | 3391 || 66003473 | 3410 | 3499 || 66010529 | 3504 | 4815 || 66007361 | 5288 | 5305 |
Use Pegdown instead of hand-building a JFlex lexer, to have a fully correct syntax highlighting. Waiting on the next release of Pegdown.
Currently the plugin only allows the specification of highlighting for a subset of all pegdown AST node types.
It'd be nice to also enable custom syntax highlighting for
By splitting Links into "Auto-Links", "Explicit Links", "Image Links", "Mail Links" and "Reference Links" would allow for more fine-grained highlighting...
Thanks for this great plugin!
Create a test.mkd
file and put following lines there:
* a
* b
* c
First and third line will be rendered in italic font in editor tab (not in preview tab). They should not be italic.
As mentionned here.
(Reported by Bartosz Grzesiowski)
Upstream MarkdownJ bug: http://code.google.com/p/markdownj/issues/detail?id=17
Using IntelliJ IDEA 11 EAP (IU-108.1333), highlighting does not work anymore. The events log shows:
PluginException: Implementing class [Plugin: net.nicoulaj.idea.markdown]: Implementing class [Plugin: net.nicoulaj.idea.markdown]
idea.log shows:
2011-09-22 15:30:53,498 [ 107022] ERROR - i.util.KeyedExtensionCollector - Implementing class [Plugin: net.nicoulaj.idea.markdown]
com.intellij.diagnostic.PluginException: Implementing class [Plugin: net.nicoulaj.idea.markdown]
at com.intellij.ide.plugins.cl.PluginClassLoader.d(PluginClassLoader.java:98)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:57)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.intellij.openapi.extensions.AbstractExtensionPointBean.findClass(AbstractExtensionPointBean.java:37)
at com.intellij.openapi.extensions.AbstractExtensionPointBean.instantiate(AbstractExtensionPointBean.java:57)
at com.intellij.openapi.extensions.CustomLoadingExtensionPointBean.instantiateExtension(CustomLoadingExtensionPointBean.java:45)
at com.intellij.lang.LanguageExtensionPoint.access$000(LanguageExtensionPoint.java:28)
at com.intellij.lang.LanguageExtensionPoint$1.compute(LanguageExtensionPoint.java:41)
at com.intellij.openapi.util.NotNullLazyValue.getValue(NotNullLazyValue.java:34)
at com.intellij.lang.LanguageExtensionPoint.getInstance(LanguageExtensionPoint.java:50)
at com.intellij.openapi.util.KeyedExtensionCollector.buildExtensions(KeyedExtensionCollector.java:134)
at com.intellij.openapi.util.KeyedExtensionCollector.buildExtensions(KeyedExtensionCollector.java:112)
at com.intellij.openapi.util.KeyedExtensionCollector.forKey(KeyedExtensionCollector.java:106)
at com.intellij.lang.LanguageExtension.allForLanguage(LanguageExtension.java:66)
at com.intellij.lang.ExternalLanguageAnnotators.allForFile(ExternalLanguageAnnotators.java:39)
at com.intellij.codeInsight.daemon.impl.ExternalToolPassFactory.a(ExternalToolPassFactory.java:64)
at com.intellij.codeInsight.daemon.impl.ExternalToolPassFactory.createHighlightingPass(ExternalToolPassFactory.java:56)
at com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarImpl$1.execute(TextEditorHighlightingPassRegistrarImpl.java:122)
at gnu.trove.TIntHash.forEach(TIntHash.java:157)
at gnu.trove.TIntObjectHashMap.forEachKey(TIntObjectHashMap.java:389)
at com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarImpl.instantiatePasses(TextEditorHighlightingPassRegistrarImpl.java:115)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.getPasses(TextEditorBackgroundHighlighter.java:95)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.createPassesForEditor(TextEditorBackgroundHighlighter.java:106)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.createPassesForEditor(TextEditorBackgroundHighlighter.java:35)
at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl$8$1.run(DaemonCodeAnalyzerImpl.java:742)
at com.intellij.psi.impl.PsiDocumentManagerImpl.cancelAndRunWhenAllCommitted(PsiDocumentManagerImpl.java:289)
at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl$8.run(DaemonCodeAnalyzerImpl.java:757)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:229)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:333)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:679)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:534)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:416)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:374)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:123)
at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:119)
at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:95)
at com.intellij.ide.plugins.cl.PluginClassLoader.d(PluginClassLoader.java:95)
... 48 more
2011-09-22 15:30:53,499 [ 107023] ERROR - i.util.KeyedExtensionCollector - IntelliJ IDEA (Nika) IU-108.1333 Build #IU-108.1333
2011-09-22 15:30:53,499 [ 107023] ERROR - i.util.KeyedExtensionCollector - JDK: 1.6.0_26
2011-09-22 15:30:53,499 [ 107023] ERROR - i.util.KeyedExtensionCollector - VM: Java HotSpot(TM) 64-Bit Server VM
2011-09-22 15:30:53,499 [ 107023] ERROR - i.util.KeyedExtensionCollector - Vendor: Sun Microsystems Inc.
2011-09-22 15:30:53,499 [ 107023] ERROR - i.util.KeyedExtensionCollector - OS: Linux
2011-09-22 15:30:53,499 [ 107023] ERROR - i.util.KeyedExtensionCollector - Last Action: NewFile
2011-09-22 15:30:53,499 [ 107023] ERROR - i.util.KeyedExtensionCollector - Original exception:
java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:123)
at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:119)
at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:95)
at com.intellij.ide.plugins.cl.PluginClassLoader.d(PluginClassLoader.java:95)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:57)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.intellij.openapi.extensions.AbstractExtensionPointBean.findClass(AbstractExtensionPointBean.java:37)
at com.intellij.openapi.extensions.AbstractExtensionPointBean.instantiate(AbstractExtensionPointBean.java:57)
at com.intellij.openapi.extensions.CustomLoadingExtensionPointBean.instantiateExtension(CustomLoadingExtensionPointBean.java:45)
at com.intellij.lang.LanguageExtensionPoint.access$000(LanguageExtensionPoint.java:28)
at com.intellij.lang.LanguageExtensionPoint$1.compute(LanguageExtensionPoint.java:41)
at com.intellij.openapi.util.NotNullLazyValue.getValue(NotNullLazyValue.java:34)
at com.intellij.lang.LanguageExtensionPoint.getInstance(LanguageExtensionPoint.java:50)
at com.intellij.openapi.util.KeyedExtensionCollector.buildExtensions(KeyedExtensionCollector.java:134)
at com.intellij.openapi.util.KeyedExtensionCollector.buildExtensions(KeyedExtensionCollector.java:112)
at com.intellij.openapi.util.KeyedExtensionCollector.forKey(KeyedExtensionCollector.java:106)
at com.intellij.lang.LanguageExtension.allForLanguage(LanguageExtension.java:66)
at com.intellij.lang.ExternalLanguageAnnotators.allForFile(ExternalLanguageAnnotators.java:39)
at com.intellij.codeInsight.daemon.impl.ExternalToolPassFactory.a(ExternalToolPassFactory.java:64)
at com.intellij.codeInsight.daemon.impl.ExternalToolPassFactory.createHighlightingPass(ExternalToolPassFactory.java:56)
at com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarImpl$1.execute(TextEditorHighlightingPassRegistrarImpl.java:122)
at gnu.trove.TIntHash.forEach(TIntHash.java:157)
at gnu.trove.TIntObjectHashMap.forEachKey(TIntObjectHashMap.java:389)
at com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarImpl.instantiatePasses(TextEditorHighlightingPassRegistrarImpl.java:115)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.getPasses(TextEditorBackgroundHighlighter.java:95)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.createPassesForEditor(TextEditorBackgroundHighlighter.java:106)
at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.createPassesForEditor(TextEditorBackgroundHighlighter.java:35)
at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl$8$1.run(DaemonCodeAnalyzerImpl.java:742)
at com.intellij.psi.impl.PsiDocumentManagerImpl.cancelAndRunWhenAllCommitted(PsiDocumentManagerImpl.java:289)
at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl$8.run(DaemonCodeAnalyzerImpl.java:757)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:229)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:333)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:679)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:534)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:416)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:374)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Any chance for spell checking support?
When I switched from regular text editing to markdown, I lost the spell checking.
Great plugin.
Thanks
With presets such as Github, Bitbucket, Codaset...
Random ideas:
Running RubyMine Tohi RM 112.477
Just installed plugin, can't use it.
Tried to load a readme.md file from a project and it pegs one of my processers at around 105-107% and just does nothing for several minutes.
I cannot click on any of the RubyMine interface and eventually I have to force quit.
I don't know how to capture a log if that would be useful.
I'm on OS X Lion on a recent model MacBook Pro.
There are no error messages or any feedback, it just hangs the whole app. Haven't tested on earlier version of RubyMine yet.
Pegdown 1.1.0 fixes a rather frustrating bug for me. It would hopefully be simple to update the idea-markdown plugin to use the latest release.
(Tested with a simple replacement of the Jar in my copy, it seems to work alright.)
(Reported by wolframarnold)
Screenshot: http://goo.gl/EWuG6
As mentionned here.
Pegdown 1.1.0 introduces support for Wiki style links, add an options to the settings to enable it.
(Blocked on #36).
Some people still use IDEA 9, but the plugin fails to load:
Error during dispatching of java.awt.event.MouseEvent[MOUSE_CLICKED,(85,356),absolute(85,378),button=1,modifiers=Button1,clickCount=2] on frame1: com/intellij/ui/components/JBScrollPane
java.lang.NoClassDefFoundError: com/intellij/ui/components/JBScrollPane
at net.nicoulaj.idea.markdown.editor.MarkdownPreviewEditorProvider.createEditor(MarkdownPreviewEditorProvider.java:68)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl3(FileEditorManagerImpl.java:513)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$5.run(FileEditorManagerImpl.java:451)
at com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:103)
at com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:86)
at com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:78)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:449)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:443)
at com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.java:107)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$7.run(FileEditorManagerImpl.java:692)
at com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:110)
at com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:86)
at com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:78)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openEditor(FileEditorManagerImpl.java:689)
at com.intellij.openapi.fileEditor.OpenFileDescriptor.navigateInAnyFileEditor(OpenFileDescriptor.java:133)
at com.intellij.openapi.fileEditor.OpenFileDescriptor.navigateInEditor(OpenFileDescriptor.java:118)
at com.intellij.openapi.fileEditor.OpenFileDescriptor.navigate(OpenFileDescriptor.java:105)
at com.intellij.psi.impl.source.PsiFileImpl.navigate(PsiFileImpl.java:834)
at com.intellij.codeInsight.navigation.NavigationUtil.activateFileWithPsiElement(NavigationUtil.java:90)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.navigate(AbstractPsiBasedNode.java:192)
at com.intellij.util.OpenSourceUtil.navigate(OpenSourceUtil.java:40)
at com.intellij.util.OpenSourceUtil.openSourcesFrom(OpenSourceUtil.java:29)
at com.intellij.util.EditSourceOnDoubleClickHandler$TreeMouseListener.processDoubleClick(EditSourceOnDoubleClickHandler.java:123)
at com.intellij.util.EditSourceOnDoubleClickHandler$TreeMouseListener.mouseClicked(EditSourceOnDoubleClickHandler.java:118)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
at java.awt.Component.processMouseEvent(Component.java:6377)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at com.intellij.ui.treeStructure.Tree.processMouseEvent(Tree.java:251)
at com.intellij.ide.dnd.aware.DnDAwareTree.processMouseEvent(DnDAwareTree.java:57)
at java.awt.Component.processEvent(Component.java:6139)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4736)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4566)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4291)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4566)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:680)
at java.awt.EventQueue.access$000(EventQueue.java:86)
at java.awt.EventQueue$1.run(EventQueue.java:639)
at java.awt.EventQueue$1.run(EventQueue.java:637)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:653)
at java.awt.EventQueue$2.run(EventQueue.java:651)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:650)
at com.intellij.ide.IdeEventQueue.f(IdeEventQueue.java:627)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:504)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:405)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:369)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
This is because we use com.intellij.ui.components.JBScrollPane
, which require build version > 99.18 (IDEA X), instead of JScrollPane
.
(Reported by @tdebarochez)
When parsing this file:
Error while parsing action 'Root/Sequence/ZeroOrMore/Sequence/Block/FirstOf/Para/Sequence/Inlines/Sequence/ZeroOrMore/Sequence/Inlines_Action2' at input position (line 12, pos 142):
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Bootstrap will be maintained under the Semantic Versioning guidelines as much as possible.
^
java.lang.ClassCastException: java.lang.Integer cannot be cast to org.pegdown.ast.Node: Error while parsing action 'Root/Sequence/ZeroOrMore/Sequence/Block/FirstOf/Para/Sequence/Inlines/Sequence/ZeroOrMore/Sequence/Inlines_Action2' at input position (line 12, pos 142):
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Bootstrap will be maintained under the Semantic Versioning guidelines as much as possible.
^
java.lang.ClassCastException: java.lang.Integer cannot be cast to org.pegdown.ast.Node
org.parboiled.errors.ParserRuntimeException: Error while parsing action 'Root/Sequence/ZeroOrMore/Sequence/Block/FirstOf/Para/Sequence/Inlines/Sequence/ZeroOrMore/Sequence/Inlines_Action2' at input position (line 12, pos 142):
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Bootstrap will be maintained under the Semantic Versioning guidelines as much as possible.
^
java.lang.ClassCastException: java.lang.Integer cannot be cast to org.pegdown.ast.Node
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:353)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.ZeroOrMoreMatcher.match(ZeroOrMoreMatcher.java:39)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.FirstOfMatcher.match(FirstOfMatcher.java:41)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.ZeroOrMoreMatcher.match(ZeroOrMoreMatcher.java:39)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
at org.parboiled.parserunners.BasicParseRunner.run(BasicParseRunner.java:72)
at org.parboiled.parserunners.ReportingParseRunner.runBasicMatch(ReportingParseRunner.java:86)
at org.parboiled.parserunners.ReportingParseRunner.run(ReportingParseRunner.java:66)
at org.parboiled.parserunners.AbstractParseRunner.run(AbstractParseRunner.java:81)
at org.pegdown.Parser.parseToParsingResult(Parser.java:1296)
at org.pegdown.Parser.parseInternal(Parser.java:1284)
at org.pegdown.Parser.parse(Parser.java:76)
at org.pegdown.PegDownProcessor.parseMarkdown(PegDownProcessor.java:110)
at net.nicoulaj.idea.markdown.annotator.MarkdownAnnotator.annotate(MarkdownAnnotator.java:62)
at com.intellij.codeInsight.daemon.impl.ExternalToolPass.doCollectInformation(ExternalToolPass.java:93)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:61)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1$1.run(PassExecutorService.java:350)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1037)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1.run(PassExecutorService.java:342)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:206)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:340)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:316)
at com.intellij.concurrency.JobUtil$3.call(JobUtil.java:134)
at com.intellij.concurrency.JobUtil$3.call(JobUtil.java:131)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at com.intellij.concurrency.PrioritizedFutureTask.access$101(PrioritizedFutureTask.java:31)
at com.intellij.concurrency.PrioritizedFutureTask$1.run(PrioritizedFutureTask.java:70)
at com.intellij.concurrency.PrioritizedFutureTask.run(PrioritizedFutureTask.java:113)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to org.pegdown.ast.Node
at org.pegdown.Parser.popAsNode(Parser.java:1238)
at org.pegdown.Parser.addAsChild(Parser.java:1221)
at org.pegdown.Action$mNyPdk1ujbVDZrIU.run(Unknown Source)
at org.parboiled.matchers.ActionMatcher.match(ActionMatcher.java:96)
at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:338)
... 63 more
Waiting on #7.
As mentionned in #12, headers top and bottom margins should be fixed.
See this gist for a test case: https://gist.github.com/1163474
It should not be very difficult to detect that the project is hosted on Github for example, and automatically activate Github specific extensions.
Associations between forges and Markdown extensions are welcome here.
The plugin should feature a settings panel where the user could tick which Markdown extensions are enabled by default.
(Related to #10).
Great Plugin - especially with the preview. Unfortunately links are not rendered correctly. Markdown:
[Mark Michaelis](https://github.com/mmichaelis)
will be rendered as:
instead of
Hi nicoulaj,
Thanks for writing this plugin - the syntax highlighting is very helpful, because Markdown is my fifth wiki syntax and sometimes it takes a while to get the formatting right.
Unfortunately, the Preview tab shows up at the bottom but always stays grey.
OS: Ubuntu 10.10 64-bit
IntelliJ Idea 10.5 (IU-106.330)
JVM: 1.6.0_24
idea-markdown plugin: 0.3
I assumed clicking on the Preview tab would cause it to render the markdown, but it doesn't. I checked my idea.log and didn't see any errors from the idea-markdown plugin.
This may be a duplicate of issue #1 so I cloned your git repo to try to build the latest plugin. But I couldn't figure out how to build it - no maven, no ant? If you can tell me how, I can test your latest changes and report back if it fixed my issue as well.
Thanks for your help!
With this plugin installed, TODO items that occur in a markdown file will not show up IDEA's TODO
To reproduce:
I'm using IDEA 10.5.2 and markdown 0.6.1under mac os x 10.5.8
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.