From 9e47ec9af24340cc0237ed73e4b2ae6fcfe886bd Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Wed, 7 Jun 2017 11:59:28 -0700 Subject: [PATCH] Add getSelectionText API This allows consumers to implement their own copy functionality/keybindings --- src/xterm.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/xterm.js b/src/xterm.js index 2f3a57ee2..684ba45d6 100644 --- a/src/xterm.js +++ b/src/xterm.js @@ -13,7 +13,7 @@ import { CompositionHelper } from './CompositionHelper'; import { EventEmitter } from './EventEmitter'; import { Viewport } from './Viewport'; -import { rightClickHandler, pasteHandler, copyHandler } from './handlers/Clipboard'; +import { rightClickHandler, pasteHandler, copyHandler, prepareTextForClipboard } from './handlers/Clipboard'; import { CircularList } from './utils/CircularList'; import { C0 } from './EscapeSequences'; import { InputHandler } from './InputHandler'; @@ -1373,6 +1373,15 @@ Terminal.prototype.deregisterLinkMatcher = function(matcherId) { } } +/** + * Gets the terminal's current selection, this is useful for implementing copy + * behavior outside of xterm.js. + */ +Terminal.prototype.getSelectionText = function() { + // TODO: Should prepareTextForClipboard logic be moved to SelectionManager? + return prepareTextForClipboard(this.selectionManager.selectionText); +} + /** * Selects all text within the terminal. */