###############################################################################
# Copyright (c) 2000, 2012 IBM Corporation and others.
#
# 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:
#     IBM Corporation - initial API and implementation
###############################################################################

Plugin.name = External Tools
Plugin.providerName = Eclipse.org

build_type.description= Returns the type of build being performed - "incremental", "full", "auto", or "none".
build_project.description= Returns the absolute file system path of the project currently being built, or the absolute file system path of the resource identified by an optional argument interpreted as a path relative to the project currently being built.
build_files.description= Returns the set of absolute file system paths whose modification caused the current build. A list of the characters, 'a' (added), 'c' (changed), 'r' (removed), 'f' (files only), 'd' (directories only), can be supplied as an argument to limit the file list to just those types of deltas. Defaults to all deltas. 
system_path.description= Returns the absolute file system path of the external tool. Resolved by finding the first occurrence of the named tool based on the system path specification. The tool name must be supplied as an argument.

ExtPoint.configurationDuplicationMaps = Launch Configuration Duplication Maps
ExternalToolsLaunchGroup.label = &External Tools
ExternalToolsLaunchGroup.title = Select or configure an external tool to run
Menu.run = &Run
ActionSet.externalTools = External Tools
Action.externalTools = &External Tools
Action.externalToolsTip = Run Last Tool
PropertyPage.externalToolsBuilders = Builders

PreferencePage.externalToolsPreferences = External Tools

programLaunchConfigurationTabGroup.description=Run a program
programBuilderLaunchConfigurationTabGroup.description=Create a configuration that will run a program during builds

ActionDefinition.externalToolMenuDelegateToolbar.name=Run Last Launched External Tool
ActionDefinition.externalToolMenuDelegateToolbar.description=Runs the last launched external Tool

ActionDefinition.openExternalToolsConfigurations.name=External Tools...
ActionDefinition.openExternalToolsConfigurations.description=Open external tools launch configuration dialog
