/// export declare class Search { isSearching: boolean; searchText: string; private searchResults; private pos; private ignoreCase; private matchWholeWord; constructor(); /** * 开启搜索 * @param searchText * @param vditor */ run(vditor: IVditor, searchText: string, focus?: boolean): void; /** * 关闭搜索, 清除搜索结果的高亮 * @param vditor */ close(vditor: IVditor): void; /** * 清空搜索结果及其高亮 */ private clearResults; /** * 跳转到下一个匹配searchText的节点, 同时进行高亮 * 如果没有匹配的节点,则不进行任何操作 * @param vditor */ next(vditor: IVditor): void; /** * 跳转到上一个匹配searchText的节点, 同时进行高亮 * 如果没有匹配的节点,则不进行任何操作 * @param vditor */ prev(vditor: IVditor): void; /** * 设置是否忽略大小写 * @param ignoreCase 值为true表示忽略大小写 */ setIgnoreCase(ignoreCase: boolean): void; /** * * 设置是否全词匹配 * @param matchWholeWord 值为true表示全词匹配 */ setMatchWholeWord(matchWholeWord: boolean): void; /** * 替换pos所指向的node的内容 * @param vditor * @param replaceText 替换后的内容 * @param focus 是否跳转到下一个可以被替换的node * @param saveCursor 是否在替换之前保存光标位置(替换后恢复) */ replace(vditor: IVditor, replaceText: string, focus?: boolean, saveCursor?: boolean): void; /** * 全部替换 * @param vditor * @param replaceText 替换后的内容 */ replaceAll(vditor: IVditor, replaceText: string): void; /** * 获取当前搜索结果的总数和当前搜索结果的位置 * @returns ISearchCounter对象 */ getSearchCounter(): ISearchCounter; /** * 找到所有匹配searchText的节点 * 为匹配的文本添加span标签,用于高亮显示 * @param vditor * @returns 搜索结果对应的节点列表 */ private getSearchResult; /** * 合并相邻的文本节点 */ private mergeTextNodes; /** * 找到光标后第一个匹配searchText的节点,作为第一个跳转的节点 * @param vditor * @returns 第一个跳转节点的位置 */ private getStartPos; /** * 将node滚动到可视区域,并进行特殊的高亮 * @param node * @param vditor */ private focusOnNode; }