| /*******************************************************************************
|
| * Copyright (c) 2009 by SAP AG, Walldorf.
|
| * All rights reserved. This program and the accompanying materials
|
| * are made available under the terms of the Eclipse Public License 2.0
|
| * which accompanies this distribution, and is available at
|
| * https://www.eclipse.org/legal/epl-2.0/
|
| *
|
| * SPDX-License-Identifier: EPL-2.0
|
| *
|
| * Contributors:
|
| * SAP AG - initial API and implementation
|
| *******************************************************************************/ |
| package org.eclipse.wst.common.snippets.core;
|
|
|
| import org.eclipse.core.runtime.CoreException;
|
| import org.eclipse.core.runtime.IPath;
|
| import org.eclipse.core.runtime.IStatus;
|
| import org.eclipse.gef.palette.PaletteEntry;
|
| import org.eclipse.jface.viewers.ISelection;
|
| import org.eclipse.ui.IEditorPart;
|
| import org.eclipse.wst.common.snippets.internal.editors.ISnippetEditor;
|
| import org.eclipse.wst.common.snippets.internal.palette.SnippetPaletteItem;
|
| import org.eclipse.wst.common.snippets.ui.ISnippetInsertion;
|
|
|
| /**
|
| * ISnippetProvider presents the possibility for plug-in developers to develop
|
| * logic that can take advantage of the snippet concept. Thus allowing the
|
| * end user to apply frequently reusable content.
|
| *
|
| * Using AbstractSnippetProveider is recommended where most of the methods
|
| * have default implementation.
|
| * @author Dimitar Giormov
|
| */
|
| public interface ISnippetProvider {
|
|
|
| /**
|
| * Implementors should create new SnippetPaletteItem instance.
|
| * Using AbstractSnippetProveider is recommended where this method is implemented.
|
| *
|
| * @param drawer
|
| * @return
|
| * @throws CoreException
|
| */
|
| public SnippetPaletteItem createSnippet(PaletteEntry drawer) throws CoreException ;
|
|
|
| /**
|
| * Specifies if the Add to Snippets action will be available
|
| * on the current selection.
|
| *
|
| * @param selection
|
| * @return true if the Add to Snippets action will be available in the popup menu.
|
| */
|
| public boolean isActionEnabled(ISelection selection);
|
|
|
| /**
|
| * Saves additional content is special designated folder.
|
| *
|
| * @param path - where the resources can be saved.
|
| * @return status of the operation.
|
| */
|
| public IStatus saveAdditionalContent(IPath path);
|
|
|
| /**
|
| * Returns snippet insertion class for reproducing the saved content in the editor.
|
| *
|
| * @return
|
| */
|
| public ISnippetInsertion getSnippetInsertion();
|
|
|
| /**
|
| * UID for the provider.
|
| *
|
| * @return
|
| */
|
| public String getId();
|
|
|
| /**
|
| * Snippet enabled editor, on which the snippet will be applied or taken from.
|
| *
|
| * @param editor
|
| */
|
| public void setEditor(IEditorPart editor);
|
|
|
| /**
|
| * Returns custom snippet editor, which will be shown in customize dialog
|
| * User can return the VariableItemEditor if variables will be reused.
|
| * Null if no editor is necessary.
|
| * Or custom editor.
|
| *
|
| * @return
|
| */
|
| public ISnippetEditor getSnippetEditor();
|
|
|
| }
|