Centers scroll in viewport

This commit is contained in:
Logan Ramos
2019-07-02 15:09:30 -07:00
parent d691327cb5
commit 60c2248cb4
+6 -3
View File
@@ -4,6 +4,7 @@
*/
import { Terminal, IDisposable, ITerminalAddon } from 'xterm';
import { floor } from 'mathjs';
export interface ISearchOptions {
regex?: boolean;
@@ -38,7 +39,7 @@ export class SearchAddon implements ITerminalAddon {
this._terminal = terminal;
}
public dispose(): void {}
public dispose(): void { }
/**
* Find the next instance of the term, then scroll to and select it. If it
@@ -234,7 +235,7 @@ export class SearchAddon implements ITerminalAddon {
*/
private _isWholeWord(searchIndex: number, line: string, term: string): boolean {
return (((searchIndex === 0) || (NON_WORD_CHARACTERS.indexOf(line[searchIndex - 1]) !== -1)) &&
(((searchIndex + term.length) === line.length) || (NON_WORD_CHARACTERS.indexOf(line[searchIndex + term.length]) !== -1)));
(((searchIndex + term.length) === line.length) || (NON_WORD_CHARACTERS.indexOf(line[searchIndex + term.length]) !== -1)));
}
/**
@@ -373,7 +374,9 @@ export class SearchAddon implements ITerminalAddon {
return false;
}
terminal.select(result.col, result.row, result.term.length);
terminal.scrollLines(result.row - terminal.buffer.viewportY);
let scroll = result.row - terminal.buffer.viewportY;
scroll = scroll - floor(terminal.rows / 2);
terminal.scrollLines(scroll);
return true;
}
}