package org.vimplugin.listeners;
import org.vimplugin.VimEvent;
import org.vimplugin.VimException;
import org.vimplugin.VimPlugin;
import org.vimplugin.VimServer;
import org.vimplugin.editors.VimEditor;
/**
* User switched to a different buffer.
*/
public class BufferEnter
implements IVimListener
{
/**
* Updates the eclipse tab for the newly focused buffer.
*
* @see org.vimplugin.listeners.IVimListener#handleEvent(org.vimplugin.VimEvent)
*/
public void handleEvent(final VimEvent ve) throws VimException {
String event = ve.getEvent();
String argument = null;
// vim has a fileClosed event, but it is not implemented.
if (event.equals("keyCommand") &&
(argument = ve.getArgument(0)).startsWith("\"bufferEnter ")){
String filePath = argument.substring(13, argument.length() - 1);
filePath = filePath.substring(1, filePath.length() - 1);
VimServer server = VimPlugin.getDefault()
.getVimserver(ve.getConnection().getVimID());
for (VimEditor veditor : server.getEditors()) {
if (veditor.getBufferID() == ve.getBufferID() || server.isEmbedded()) {
veditor.setTitleTo(filePath);
}
}
}
}
}