InputHandler inputHandler = textArea.getInputHandler(); InputHandler.MacroRecorder recorder = inputHandler.getMacroRecorder();  if(recorder != null) recorder.actionPerformed(this,actionCommand);
	public void actionPerformed(ActionEvent evt)	{		View view = getView(evt);		JEditTextArea textArea = view.getTextArea();		String actionCommand = evt.getActionCommand();		if(actionCommand == null || actionCommand.length() != 1)		{			view.showStatus(jEdit.getProperty("view.status.exchange-caret-register"));			textArea.getInputHandler().grabNextKeyStroke(this);		}		else		{			view.showStatus(null);			char ch = actionCommand.charAt(0);			if(ch == '\0')			{				view.getToolkit().beep();				return;			}			Registers.Register register = Registers.getRegister(ch);			if(register instanceof Registers.CaretRegister)			{				Registers.CaretRegister caretReg					= (Registers.CaretRegister)register;				Buffer buffer = caretReg.getBuffer();				int offset = caretReg.getOffset();				Registers.setRegister(ch,new Registers.CaretRegister(					view.getBuffer(),textArea.getCaretPosition()));				view.setBuffer(buffer);				textArea.setCaretPosition(offset);			}			else				view.getToolkit().beep();		}	}