]> git.proxmox.com Git - mirror_xterm.js.git/blobdiff - src/addons/search/searchHelper.ts
Change case of search addon files
[mirror_xterm.js.git] / src / addons / search / searchHelper.ts
diff --git a/src/addons/search/searchHelper.ts b/src/addons/search/searchHelper.ts
deleted file mode 100644 (file)
index f285144..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * @license MIT
- */
-
-// import { ITerminal } from '../../Interfaces';
-// import { translateBufferLineToString } from '../../utils/BufferLine';
-
-interface ISearchResult {
-  term: string;
-  col: number;
-  row: number;
-}
-
-/**
- * A class that knows how to search the terminal and how to display the results.
- */
-export class SearchHelper {
-  constructor(private _terminal: any, private _translateBufferLineToString: any) {
-    // TODO: Search for multiple instances on 1 line
-    // TODO: Don't use the actual selection, instead use a "find selection" so multiple instances can be highlighted
-    // TODO: Highlight other instances in the viewport
-    // TODO: Support regex, case sensitivity, etc.
-  }
-
-  /**
-   * Find the next instance of the term, then scroll to and select it. If it
-   * doesn't exist, do nothing.
-   * @param term Tne search term.
-   * @return Whether a result was found.
-   */
-  public findNext(term: string): boolean {
-    if (!term || term.length === 0) {
-      return false;
-    }
-
-    let result: ISearchResult;
-
-    let startRow = this._terminal.ydisp;
-    if (this._terminal.selectionManager.selectionEnd) {
-      // Start from the selection end if there is a selection
-      startRow = this._terminal.selectionManager.selectionEnd[1];
-    }
-
-    // Search from ydisp + 1 to end
-    for (let y = startRow + 1; y < this._terminal.ybase + this._terminal.rows; y++) {
-      result = this._findInLine(term, y);
-      if (result) {
-        break;
-      }
-    }
-
-    // Search from the top to the current ydisp
-    if (!result) {
-      for (let y = 0; y < startRow; y++) {
-        result = this._findInLine(term, y);
-        if (result) {
-          break;
-        }
-      }
-    }
-
-    // Set selection and scroll if a result was found
-    return this._selectResult(result);
-  }
-
-  /**
-   * Find the previous instance of the term, then scroll to and select it. If it
-   * doesn't exist, do nothing.
-   * @param term Tne search term.
-   * @return Whether a result was found.
-   */
-  public findPrevious(term: string): boolean {
-    if (!term || term.length === 0) {
-      return false;
-    }
-
-    let result: ISearchResult;
-
-    let startRow = this._terminal.ydisp;
-    if (this._terminal.selectionManager.selectionStart) {
-      // Start from the selection end if there is a selection
-      startRow = this._terminal.selectionManager.selectionStart[1];
-    }
-
-    // Search from ydisp + 1 to end
-    for (let y = startRow - 1; y >= 0; y--) {
-      result = this._findInLine(term, y);
-      if (result) {
-        break;
-      }
-    }
-
-    // Search from the top to the current ydisp
-    if (!result) {
-      for (let y = this._terminal.ybase + this._terminal.rows - 1; y > startRow; y--) {
-        result = this._findInLine(term, y);
-        if (result) {
-          break;
-        }
-      }
-    }
-
-    // Set selection and scroll if a result was found
-    return this._selectResult(result);
-  }
-
-  /**
-   * Searches a line for a search term.
-   * @param term Tne search term.
-   * @param y The line to search.
-   * @return The search result if it was found.
-   */
-  private _findInLine(term: string, y: number): ISearchResult {
-    const bufferLine = this._terminal.lines.get(y);
-    const lowerStringLine = this._translateBufferLineToString(bufferLine, true).toLowerCase();
-    const lowerTerm = term.toLowerCase();
-    const searchIndex = lowerStringLine.indexOf(lowerTerm);
-    if (searchIndex >= 0) {
-      return {
-        term,
-        col: searchIndex,
-        row: y
-      };
-    }
-  }
-
-  /**
-   * Selects and scrolls to a result.
-   * @param result The result to select.
-   * @return Whethera result was selected.
-   */
-  private _selectResult(result: ISearchResult): boolean {
-    if (!result) {
-      return false;
-    }
-    this._terminal.selectionManager.setSelection(result.col, result.row, result.term.length);
-    this._terminal.scrollDisp(result.row - this._terminal.ydisp, false);
-    return true;
-  }
-}