/** * Copyright (c) 2013-2016 Angelo ZERR. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation */ package tern.eclipse.ide.ui.utils; import org.eclipse.core.resources.IFile; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; import tern.eclipse.ide.core.utils.ILineOfOffsetProvider; import tern.eclipse.ide.internal.ui.Trace; /** * {@link ILineOfOffsetProvider} implementation which uses * {@link IDocument#getLineInformationOfOffset(int)} * */ public class LineOfOffsetProvider implements ILineOfOffsetProvider { private static final ILineOfOffsetProvider INSTANCE = new LineOfOffsetProvider(); public static ILineOfOffsetProvider getInstance() { return INSTANCE; } @Override public Integer getLineOfOffset(int start, IFile file) { IDocument document = EditorUtils.getDocument(file); try { return document != null ? document.getLineOfOffset(start) : null; } catch (BadLocationException e) { Trace.trace(Trace.INFO, "Error while getting line of offset", e); } return null; } }