From e2979514f8fe3a6e503195f496bb19ee72b87eba Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Thu, 26 Jan 2012 23:30:28 +0300 Subject: [PATCH] toggle descriptions --- plugins/devkit/resources/META-INF/plugin.xml | 4 +-- ...va => ToggleHighlightingMarkupAction.java} | 27 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) rename plugins/devkit/src/actions/{GenerateHighlightingMarkupAction.java => ToggleHighlightingMarkupAction.java} (90%) diff --git a/plugins/devkit/resources/META-INF/plugin.xml b/plugins/devkit/resources/META-INF/plugin.xml index 330e83d18fec..7a2ea5d49803 100644 --- a/plugins/devkit/resources/META-INF/plugin.xml +++ b/plugins/devkit/resources/META-INF/plugin.xml @@ -115,8 +115,8 @@ - + diff --git a/plugins/devkit/src/actions/GenerateHighlightingMarkupAction.java b/plugins/devkit/src/actions/ToggleHighlightingMarkupAction.java similarity index 90% rename from plugins/devkit/src/actions/GenerateHighlightingMarkupAction.java rename to plugins/devkit/src/actions/ToggleHighlightingMarkupAction.java index 4fe6c3d9e9ab..02d4be0d1ccd 100644 --- a/plugins/devkit/src/actions/GenerateHighlightingMarkupAction.java +++ b/plugins/devkit/src/actions/ToggleHighlightingMarkupAction.java @@ -41,7 +41,7 @@ import java.util.regex.Pattern; /** * @author gregsh */ -public class GenerateHighlightingMarkupAction extends AnAction { +public class ToggleHighlightingMarkupAction extends AnAction { @Override public void update(AnActionEvent e) { Editor editor = PlatformDataKeys.EDITOR.getData(e.getDataContext()); @@ -59,7 +59,7 @@ public class GenerateHighlightingMarkupAction extends AnAction { Object commandToken = commandProcessor.startCommand(project, e.getPresentation().getText(), e.getPresentation().getText(), UndoConfirmationPolicy.DEFAULT); AccessToken token = ApplicationManager.getApplication().acquireWriteActionLock(getClass()); try { - perform(project, editor.getDocument(), true); + perform(project, editor.getDocument()); } finally { token.finish(); @@ -67,16 +67,27 @@ public class GenerateHighlightingMarkupAction extends AnAction { } } - private static void perform(Project project, final Document document, final boolean compact) { + private static void perform(Project project, final Document document) { final CharSequence sequence = document.getCharsSequence(); final StringBuilder sb = new StringBuilder(); - Pattern pattern = Pattern.compile("<(error|warning|EOLError|EOLWarning)(?:\\s|=|\\w+|\\\"(?:[^\"]|\\\\\\\")*?\\\")*>(.*?)"); + Pattern pattern = Pattern.compile("<(error|warning|EOLError|EOLWarning)((?:\\s|=|\\w+|\\\"(?:[^\"]|\\\\\\\")*?\\\")*?)>(.*?)"); Matcher matcher = pattern.matcher(sequence); if (matcher.find()) { + boolean compactMode = false; int pos = 0; do { - sb.append(sequence, pos, matcher.start(0)); - sb.append(sequence, matcher.start(2), matcher.end(2)); + if (matcher.start(2) < matcher.end(2)) { + if (!compactMode) { + sb.setLength(pos = 0); + compactMode = true; + } + sb.append(sequence, pos, matcher.start(2)); + sb.append(sequence, matcher.end(2), matcher.end(0)); + } + else if (!compactMode) { + sb.append(sequence, pos, matcher.start(0)); + sb.append(sequence, matcher.start(3), matcher.end(3)); + } pos = matcher.end(0); } while (matcher.find(pos)); @@ -91,11 +102,11 @@ public class GenerateHighlightingMarkupAction extends AnAction { @Override public boolean process(HighlightInfo info) { if (info.severity != HighlightSeverity.WARNING && info.severity != HighlightSeverity.ERROR) return true; - offset[0] = appendInfo(info, sb, sequence, offset[0], infos, compact); + offset[0] = appendInfo(info, sb, sequence, offset[0], infos, false); return true; } }); - offset[0] = appendInfo(null, sb, sequence, offset[0], infos, compact); + offset[0] = appendInfo(null, sb, sequence, offset[0], infos, false); sb.append(sequence.subSequence(offset[0], sequence.length())); } document.setText(sb);