Seu plug-in pode incluir tipos de configuração de lançamento na plataforma utilizando o ponto de extensão org.eclipse.debug.core.launchConfigurationTypes. Este ponto de extensão permite declarar um tipo de configuração utilizando um id exclusivo. Você deve fornecer uma implementação correspondente de ILaunchConfigurationDelegate em seu plug-in. Você também pode especificar quais modos (execução, depuração) são suportados por seu launcher e um nome que deve ser utilizado ao mostrar os launchers desse tipo ao usuário.
A seguinte marcação mostra como as ferramentas Java declaram uma configuração de lançamento Java para o lançamento de programas Java locais:
<extension point = "org.eclipse.debug.core.launchConfigurationTypes"> <launchConfigurationType id="org.eclipse.jdt.launching.localJavaApplication" name="%localJavaApplication" delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate" modes= "execução, depuração"> </launchConfigurationType> </extension>
Para cada tipo de configuração de lançamento que suporta o modo de depuração, é importante definir uma maneira de encontrar o código fonte correspondente ao ponto de execução atual no código. ISourceLocator e IPersistableSourceLocator definem uma interface para o mapeamento de um programa de execução de volta ao código fonte.
Os localizadores de origem são normalmente implementados para funcionar com uma configuração de lançamento e delegação de configuração de lançamento correspondentes. Como as configurações de lançamento podem ser persistidas, os localizadores de origem também podem ser armazenados com a configuração de lançamento. Isso é realizado definindo-se um atributo da configuração de lançamento para um id de um localizador de origem. Quando uma configuração de lançamento é lida do disco, o id do localizador de origem deve ser mapeado de volta para a classe de implementação. Isso é alcançado utilizando o ponto de extensão org.eclipse.debug.core.sourceLocators.
O ponto de extensão permite registrar sua classe que implementa IPersistableSourceLocator e o associa a um id que será armazenado com a configuração de lançamento. Isso permite que o plug-in de depuração procure as classes do localizador de origem por id quando for hora de instanciar uma configuração de lançamento.
A seguinte marcação origina-se das ferramentas Java:
<extension point = "org.eclipse.debug.core.sourceLocators"> <sourceLocator id = "org.eclipse.jdt.debug.ui.javaSourceLocator" class="org.eclipse.jdt.debug.ui.JavaUISourceLocator" name="Prompting Java Source Locator"/> </extension>
Os plug-ins utilizam atributos nomeados e valores para armazenar dados importantes com uma configuração de lançamento. Como a interpretação de qualquer atributo não é reconhecida pela plataforma, é fornecido um ponto de extensão que permite fornecer um comparador para um atributo específico. Esse comparador é utilizado para determinar se os atributos com o nome especificado são iguais. Em muitos casos, a comparação de cadeia simples fornecida por java.lang.Object.equals(Object) é adequada para a comparação de atributos. Esse método será utilizado se nenhum comparador tiver sido fornecido. Entretanto, alguns valores de atributos podem requerer tratamento especial, tal como a demarcação de valores de espaço em branco no texto antes de comparar quanto à igualdade.
Os comparadores recebem contribuição utilizando o ponto de extensão org.eclipse.debug.core.launchConfigurationComparators.
As ferramentas Java fornecem comparadores de configuração de lançamento para a comparação de caminhos de origem e caminhos de classe do programa.
<extension point = "org.eclipse.debug.core.launchConfigurationComparators"> <launchConfigurationComparator id = "org.eclipse.jdt.launching.classpathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.CLASSPATH"/> <launchConfigurationComparator id = "org.eclipse.jdt.launching.sourcepathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.SOURCE_PATH"/> </extension>