# Copyright (c) 2014 Eike Stepper (Loehne, Germany) and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
#
# Contributors:
#    Eike Stepper - initial API and implementation

featureName = Oomph Manifest Opener
description = Contains context-sensitive openers for plugin manifests (F9), feature manifests (F9) and project properties (Shift+F9).
