Skip to content

Commit 26f201f

Browse files
authored
Merge pull request #44 from codelaboratoryltd/feature/paste-mode
Add support for bracketed paste mode
2 parents 4fb72e9 + f9379dc commit 26f201f

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

escape.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,8 @@ func escapePrivateMode(t *Terminal, msg string, enable bool) {
260260
}
261261
case "1049":
262262
t.bufferMode = enable
263+
case "2004":
264+
t.bracketedPasteMode = enable
263265
default:
264266
if t.debug {
265267
log.Println("Unknown private escape code", msg+"[hl]")

select.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ func (t *Terminal) copySelectedText(clipboard fyne.Clipboard) {
7070

7171
func (t *Terminal) pasteText(clipboard fyne.Clipboard) {
7272
content := clipboard.Content()
73+
74+
if t.bracketedPasteMode {
75+
_, _ = t.in.Write(append(
76+
append(
77+
[]byte{asciiEscape, '[', '2', '0', '0', '~'},
78+
[]byte(content)...),
79+
[]byte{asciiEscape, '[', '2', '0', '1', '~'}...),
80+
)
81+
return
82+
}
7383
_, _ = t.in.Write([]byte(content))
7484
}
7585

term.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ type Terminal struct {
7272
ctrlPressed bool
7373
altPressed bool
7474
}
75-
newLineMode bool // new line mode or line feed mode
75+
newLineMode bool // new line mode or line feed mode
76+
bracketedPasteMode bool
7677
}
7778

7879
// Cursor is used for displaying a specific cursor.

0 commit comments

Comments
 (0)