<commit_before>/**
 * @description 撤销 undo redo操作
 * @author lkw
 */

import Editor from './index'

/**
 * 撤销类
 */
class Undo {
    // 撤销栈
    public undoStack: string[]
    // 重做栈
    public redoStack: string[]
    // 记录缓存
    private undoString: string = ''
    /**
     * 操作标示 true | false
     * (因撤销操作需要使用html方法赋值,所以使用falg的方式区分撤销操作状态,屏蔽change的记录行为)
     * 记录撤销操作的状态,true为操作中,false为未在操作,默认值为false
     * 当值为true时,说明撤销操作正在进行,此时onchange事件不进行撤销文本的记录
     * 当值为false是,说明未在执行撤销操作,此时onchange正常记录撤销文本,推入undo栈
     */
    private flag: boolean
    // 编辑器实例
    public editor: Editor

    constructor(editor: Editor) {
        this.editor = editor
        // 初始化撤销栈
        this.undoStack = []
        // 初始化重做栈
        this.redoStack = []
        // 初始化操作标示
        this.flag = false

        // 初始化缓存字符串与撤销栈
        setTimeout(() => {
            const str = editor.txt.html()
            if (typeof str === 'string') {
                this.undoStack.push(str)
                this.undoString = str<commit_msg>fix:删除多余缓存行为<commit_after>/**
 * @description 撤销 undo redo操作
 * @author lkw
 */

import Editor from './index'

/**
 * 撤销类
 */
class Undo {
    // 撤销栈
    public undoStack: string[]
    // 重做栈
    public redoStack: string[]
    // 记录缓存
    private undoString: string = ''
    /**
     * 操作标示 true | false
     * (因撤销操作需要使用html方法赋值,所以使用falg的方式区分撤销操作状态,屏蔽change的记录行为)
     * 记录撤销操作的状态,true为操作中,false为未在操作,默认值为false
     * 当值为true时,说明撤销操作正在进行,此时onchange事件不进行撤销文本的记录
     * 当值为false是,说明未在执行撤销操作,此时onchange正常记录撤销文本,推入undo栈
     */
    private flag: boolean
    // 编辑器实例
    public editor: Editor

    constructor(editor: Editor) {
        this.editor = editor
        // 初始化撤销栈
        this.undoStack = []
        // 初始化重做栈
        this.redoStack = []
        // 初始化操作标示
        this.flag = false

        // 初始化缓存字符串与撤销栈
        setTimeout(() => {
            const str = editor.txt.html()
            if (typeof str === 'string') {
                this.undoString = str
{'fraction_non_alphanumeric': 0.11511156186612576, 'fraction_numerical': 0.0, 'mean_word_length': 1.9447761194029851, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3065361', 'n_tokens_mistral': 916, 'n_tokens_neox': 989, 'n_words': 124}