/* * Copyright 2015 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.project.build.fix; import java.util.Optional; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IRegion; import org.robotframework.ide.eclipse.main.plugin.tableeditor.source.DocumentUtilities; /** * @author Michal Anglart * */ public class Snippets { static String createSnippetInfo(final IDocument document, final IRegion regionToChange, final String replacement) { final Optional<IRegion> snippetRegion = DocumentUtilities.getSnippet(document, regionToChange.getOffset(), 2); if (snippetRegion.isPresent()) { try { final String snippet = document.get(snippetRegion.get().getOffset(), snippetRegion.get().getLength()); final int inSnippetOffset = regionToChange.getOffset() - snippetRegion.get().getOffset(); final String snippetAfterChange = snippet.substring(0, inSnippetOffset) + "<b>" + replacement + "</b>" + snippet.substring(inSnippetOffset + regionToChange.getLength()); final String beforeSnippet = snippetRegion.get().getOffset() <= 0 ? "" : "(...)<br>"; final String afterSnippet = snippetRegion.get().getOffset() + snippetRegion.get().getLength() >= document.getLength() ? "" : "<br>(...)"; return "<pre>" + beforeSnippet + convertNewLinesToBr(snippetAfterChange) + afterSnippet + "</pre>"; } catch (final BadLocationException e) { return null; } } return null; } private static String convertNewLinesToBr(final String snippetAfterChange) { return snippetAfterChange.replaceAll("\r\n", "<br>").replaceAll("\n", "<br>"); } }