/*******************************************************************************
* Copyright (c) 2012 Sierra Wireless and others.
* 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:
* Sierra Wireless - initial API and implementation
*******************************************************************************/
package org.eclipse.koneki.ldt.debug.core.internal.interpreter.generic;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.dltk.core.PreferencesLookupDelegate;
import org.eclipse.dltk.debug.core.IDbgpService;
import org.eclipse.dltk.debug.core.ScriptDebugManager;
import org.eclipse.dltk.debug.core.model.IScriptDebugTarget;
import org.eclipse.dltk.launching.DebuggingEngineRunner;
import org.eclipse.dltk.launching.IInterpreterInstall;
import org.eclipse.dltk.launching.InterpreterConfig;
import org.eclipse.koneki.ldt.core.LuaNature;
import org.eclipse.koneki.ldt.debug.core.internal.Activator;
import org.eclipse.koneki.ldt.debug.core.internal.LuaDebugTarget;
public class LuaGenericDebuggingEngineRunner extends DebuggingEngineRunner {
public LuaGenericDebuggingEngineRunner(IInterpreterInstall install) {
super(install);
}
@Override
protected InterpreterConfig addEngineConfig(InterpreterConfig config, PreferencesLookupDelegate delegate, ILaunch launch) throws CoreException {
LuaGenericDebuggingEngineConfigurer luaGenericDebuggingEngineConfigurer = new LuaGenericDebuggingEngineConfigurer();
InterpreterConfig alteredConfig = luaGenericDebuggingEngineConfigurer.alterConfig(launch, config, getInstall());
return alteredConfig;
}
@Override
protected String getDebuggingEngineId() {
return ScriptDebugManager.getInstance().getDebugModelByNature(LuaNature.ID);
}
@Override
protected String getDebugPreferenceQualifier() {
return Activator.PLUGIN_ID;
}
protected IScriptDebugTarget createDebugTarget(ILaunch launch, IDbgpService dbgpService) throws CoreException {
return new LuaDebugTarget(getDebugModelId(), dbgpService, getSessionId(launch.getLaunchConfiguration()), launch, null);
}
@Override
protected String getDebuggingEnginePreferenceQualifier() {
// TODO verify it's not useful
// return Activator.PLUGIN_ID + ".engine";
return null;
}
@Override
protected String getLogFileNamePreferenceKey() {
// TODO verify it's not useful
// return Activator.PLUGIN_ID + ".logfilenamekey";
return null;
}
@Override
protected String[] renderCommandLine(InterpreterConfig config) {
LuaGenericInterpreterCommandLineRenderer commandLineRenderer = new LuaGenericInterpreterCommandLineRenderer();
return commandLineRenderer.renderCommandLine(config, getInstall());
}
// TODO HACK ENV_VAR : make environment variable defined at interpreter
// level less priority
// ****************************************************************************
@Override
protected String[] getEnvironmentVariablesAsStrings(InterpreterConfig config) {
return config.getEnvironmentAsStrings();
}
// END HACK
// ****************************************************************************
}