/asciidoctor-intellij-plugin

Primary LanguageJavaApache License 2.0Apache-2.0

IntelliJ AsciiDoc Plugin

A plugin for the IntelliJ platform (IntelliJ IDEA, RubyMine, etc) that provides support for the AsciiDoc markup language. You can install the plugin (named "AsciiDoc") from the plugins section inside your Jetbrains IDE or download it from the Jetbrains Plugin Repository.

If you want to use the JavaFX instead of the Swing preview, you’ll need to run IntelliJ with 64bit Java. From 2017.1 onwards 64bit Java is included even in the Windows versions. See https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will-run-under for more information.

If your IntelliJ distribution doesn’t come with 64bit Java, you’ll need to have an environment variable IDEA_JDK or IDEA_JDK64 pointing to the installation folder of a 64bit Java. See Jetbrains support database for more information.

Release notes

0.20.6 (not released yet)

  • Display all PlantUML graphics as PNG for preview (#170)

0.20.5

  • Adding hiDPI support for JavaFX preview (#125)

0.20.4

  • Requiring 2017.1 as minimum for this plugin (#207)

0.20.3 (preview)

  • Avoiding deadlock on JavaFX initialization (#207)

  • Requiring 2017.2 as minimum for this plugin

0.20.2

  • Dejavu fonts now display chinese characters within tables (#203)

0.20.1

  • Upgrading to asciidoctorj-diagram 1.5.8

  • Dejavu fonts now display chinese characters (#203)

0.20.0

  • Add MathJax support in JavaFX preview #201

  • JavaFX preview is now the default for new installations of the plugin

  • Include DejaVu fonts for improved and consistent preview #184

0.19.2

  • Fix NullPointerExceptions when used with IntelliJ Language Injection and Fragment Editor #194

0.19.1

  • Support inspections to convert markdown and old style AsciiDoc headings to modern AsciiDoc headings #185

  • JRuby runtime updated to 9.1.8.0 to work with recent JDK versions (still, internal Jetbrains JRE is the only supported version) #187

0.19.0

  • Support Icon fonts (thanks to @matthiasbalke) / #182

  • Update to asciidoctorj-1.5.6 (aka asciidoctor-1.5.6.1) and asciidoctorj-diagram-1.5.4.1

  • Support "search everywhere" (double Shift) and "goto by name - Symbol…​" (Ctrl+Shift+Alt+N) for all AsciiDoc section headings - just enter a part of the heading

  • Support Markdown style sections (starting with '#') in syntax highlighting

0.18.2 (preview, available from Github releases)

  • Headings in Darcula theme preview are now light grey for better readability

0.18.1

  • Improved handling for non-printable characters in syntax highlighting

0.18.0 (preview, available from Github releases)

  • Update to asciidoctor 1.5.5/asciidoctor-diagram 1.5.4

  • Capture Asciidoctor messages on stdout/stderr and write them to IDE notifications

  • Close files when images are shown in preview

  • Set focus in editor when re-opening file

  • Fix "line must be non negative" error when clicking on preview

0.17.3

  • Make click-on-link-to-open and click-on-preview-to-set-cursor in JavaFX preview compatible with Java 8 u111+

  • Formatting actions from the toolbar should not throw exceptions when triggered at the beginning or end of the document

0.17.2

  • Plugin is now build using the Gradle and gradle-intellij-plugin This should make contributing and releasing easier. Thanks Jiawen Geng!

  • Asciidoctor’s temporary files are now created in a temporary folder per opened document. Thanks @agorges!

0.17.1 (preview, available from Github releases)

  • Improved handling of trailing spaces in syntax highlighting.

  • Fixed code/preview sync for nested HTML (i.e. NOTE)

0.17.0 (preview, available from Github releases)

  • Updated block parsing to support two styles of headings.

  • Block starts and ends are need to be aligned in length and shape when parsed.

0.16.4

  • Improved darcula support for JavaFX. More block types are using proper dark background and light text colors.

0.16.3

  • Theme in preview can be switched from light to darcula independent of IDE theme

0.16.2

  • Handling of Linux and MacOS file names for image preview in JavaFX

0.16.1

  • Added darcula theme for JavaFX preview

  • Clicking on JavaFX preview will set cursor position in editor (thanks to @kastork for the idea)

0.15.4

  • setScene now called from FxThread instead of AWT thread to avoid blocking GUI on MacOS

0.15.3

  • Initialization message appears only during initialization

  • No error message if user switches to a setup where JavaFX preview is no longer available.

0.15.2 (preview, available from Github releases)

  • fixed detection of Mac 64 JVM to be able to activate JavaFX preview

  • click-on-url for JavaFX improved, when slow-loading external images are referenced

0.15.1 (preview, available from Github releases)

  • revised constrained/unconstrained detection

  • Fix problem in syntax highlighting leading to PSI Parser Exceptions

  • refreshing images on JavaFX only if their content has changed to save memory consumption

  • Limiting JavaFX preview to 64bit platforms due to problems especially with Windows OpenJDK 32bit (as default on Windows).

0.15.0 (preview, available from Github releases)

  • correct usage of constrained/unconstrained AsciiDoc formatting

  • JavaFX Preview will automatically scroll to the cursor position of the editor

  • JavaFX preview will automatically open links in the systems’s default browser

  • Caching rendering instances of Asciidoctor for better performance

IntelliJ 15 (including AppCode 3.3, CLion 1.2, DataGrip 1.0, PhpStorm 10, PyCharm 5, RubyMine 8, WebStorm 11) is the new minimum version required for this release.

0.14.3

  • Fix problem in syntax highlighting leading to PSI Parser Exceptions

  • disable automatically refreshing images on JavaFX (to be re-enabled in 0.15.x)

0.14.2

  • Performance improvement: render preview only when visible

  • Don’t show AsciiDoc preview actions in other Editors

  • additional compatibility fixes for IntelliJ 15.x

0.14.1

  • make compatible with IntelliJ 15.x again.
    This should include: AppCode 3.3, CLion 1.2, DataGrip 1.0, PhpStorm 10, PyCharm 5, RubyMine 8, WebStorm 11

0.14

  • New JavaFX preview and real split view

  • Update to asciidoctorj 1.5.4.1 and asciidoctorj-diagram 1.5.0

0.13

  • Updated to asciidoctorj 1.5.3.2, added support for asciidoctor-diagram

0.12

  • Bugfixes, new makelink action, table generation improvement, etc.

0.11

  • Removed AsciiDoc item in right click menu thanks to Dmitry Jemerov.

  • Added 'Open in Browser' menu item.

  • Added 40+ live template (access them by pressing Cmd+J, or type 'ad-')

Features

  • Since 0.8 Fixed incompatibility with non-IDEA IDE’s, thanks to Harro Lissenberg

  • Since 0.7: Right click on a document to apply basic formatting or create tables.

  • Since 0.6: refactor Markdown to AsciiDoc. Right click on a file, or use the Refactor menu, and the Markdown document will be replaced by the AsciiDoc equivalent. Also supports undo, in case you’re not happy with the result!

  • Since 0.4: recognizes the AsciiDoc file extension (.adoc, .asciidoc, .ad)

  • Since 0.4: provides a two-pane AsciiDoc preview editor based on AsciidoctorJ with Live preview.

If you are missing features, please don’t hesitate to let me know on Twitter: @epragt or make an issue in the issue tracker!

Dependencies

This project uses AsciiDoctorJ and JRuby for the rendering of the AsciiDoc content.

For the conversion of Markdown to AsciiDoc, we use Pegdown and the Markdown to AsciiDoc converter.

Build

This plugin is built using Gradle. If you build or run it the first time it will download the community edition of IntelliJ automatically.

If you have developed the plugin before it changed to Gradle you might want to remove the contents of your .idea folder to trigger a re-import of the Gradle project.

To build this plugin, you need to run:

./gradlew -Dfile.encoding=UTF-8 buildPlugin

The ZIP file with plugin to distribute will be located in build/distributions.

To run the plugin for development you’ll need to start

./gradlew -Dfile.encoding=UTF-8 runIdea

Copyright © 2013-2017 Julien Viet and Erik Pragt. Released under the Apache License, Version 2.0 (see LICENSE).

Credits

This plugin is based on the Intellij Markdown plugin by Julien Nicoulaud.

Also, great help was received from Harro Lissenberg, Alexander Schwartz and Dan Allen. Thank you all for your support!