是否可以序列化 Ace Session 对象?

2023-12-19

我想序列化并存储 Ace Session 对象,这样我就可以打开一个“文件”并恢复所有内容、值、选择、光标位置、模式等。

我试过了JSON.stringify(session)它会抛出一个循环错误。

有任何想法吗?


最简单的版本是

var session = editor.session
state = {}
state.value = session.getValue();
state.selection = session.selection.toJSON()
state.options = session.getOptions()
state.mode = session.getMode().$id
state.folds = session.getAllFolds().map(function(fold) {
    return {
        start       : fold.start,
        end         : fold.end,
        placeholder : fold.placeholder
    };
});
state.scrollTop = session.getScrollTop()
state.scrollLeft = session.getScrollLeft()

JSON.stringify(state)

并恢复

session.setValue(state.value)
session.selection.fromJSON(state.selection)
session.setOptions(state.options)
session.setMode(state.mode)
try {
    state.folds.forEach(function(fold){
        session.addFold(fold.placeholder, 
            Range.fromPoints(fold.start, fold.end));
    });
} catch(e) {}
session.setScrollTop(state.scrollTop)
session.setScrollTop(state.scrollLeft)

这不包括恢复 undomanager,这是可行的,但有点棘手。你可以尝试解决这个问题https://github.com/ajaxorg/ace/issues/1452 https://github.com/ajaxorg/ace/issues/1452

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以序列化 Ace Session 对象? 的相关文章

  • 从 thymeleaf 获取数据到模态引导程序、jquery

    我正在尝试获取模态视图的 id 这是为了更新 onclick 元素 但我找不到方法 知道如何为 boostrap 5 完成此操作 或我可以用其他方法吗 谢谢 tr a inactivate a div class modal fade mo
  • 在 javascript/jquery 中将光标更改为等待

    当调用函数时 如何让光标更改为此加载图标以及如何将其更改回 javascript jquery 中的普通光标 在你的 jQuery 中使用 body css cursor progress 然后又恢复正常 body css cursor d
  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • 关闭选项卡时要求确认[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我在某些浏览器上关闭页面时 我希望出现一个消息框 并询问我是否真的要关闭页面 有两个按钮 如果我单击No那么这个标签就不会被关闭 我怎样
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 使用 jQuery/JS 打开时使
    标签的内容具有动画效果

    我只想要 HTML5 的内容details标记为 滑行 动画打开 而不是仅仅弹出打开 立即出现 这可以用 jQuery Javascript 实现吗 Fiddle http jsfiddle net 9h4Hq HTML
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • Google App Engine:修改云运行环境

    我正在尝试部署一个使用自定义 Node js 服务器的 Next js 应用程序 我想将自定义构建变量注入应用程序 next config js const NODE ENV process env NODE ENV const envTy
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div

随机推荐

  • Java基于springboot的厨艺交流平台的设计与实现

    收藏关注不迷路 文章目录 一 项目介绍 二 开发环境 三 功能介绍 四 核心代码 五 效果图 六 文章目录 一 项目介绍 这次开发的厨艺交流平台功能有个人中心 食材分类管理 用户管理 菜品分类管理 菜谱信息管理 食材信息管理 商品分类管理
  • 使用 Stdin.readLineSync() 时出错;在飞镖中

    在 VS Code 中 我在从用户获取代码的基本输入中收到此错误 我的完整代码 导入 dart io void main stdout write Enter your name var name stdin readLineSync st
  • Gradle 必须依赖 com.google.firebase:firebase-core 才能使 Firebase 服务按预期工作[重复]

    这个问题在这里已经有答案了 编译时我收到这样的警告 应用 Gradle 文件必须依赖 com google firebase firebase core 才能使 Firebase 服务按预期工作 只需添加以下行 updated implem
  • 在 Android 中经常检查互联网连接是否可用?

    我的应用程序是通过 NetConnection 保存 到服务器 数据 如果网络不可用 我会在本地保存 然后当网络再次可用时发送到服务器 我的问题是检查经常连接互联网所以我尝试了服务功能来检查网络连接 但只打了一次电话 如何解决我的问题 任何
  • 正则表达式允许一个字符(不应该)为什么?

    您好 我正在尝试创建一个正则表达式来识别输入的金钱和数字 我必须允许数字 因为我期望以编程方式输入非格式化数字 然后我自己格式化它们 由于某种原因 我的正则表达式允许一个字母字符作为可能的输入 0 9 0 9 0 9 我知道我的正则表达式接
  • 使用 openxlsx 按单元格填充颜色过滤 Excel 中突出显示的数据

    我有一个很大的 Excel 表格 18k 行和 400 列 其中一些行使用不同的颜色突出显示 有没有办法使用按颜色过滤行openxlsx 我首先加载了工作簿 wb lt loadWorkbook file Items Comparison
  • Android 应用程序需要哪些权限才能使用警报管理器服务?

    如果Android应用程序想要使用Alarm Manager Service 那么该应用程序需要拥有哪些权限 我已经测试过 应用程序似乎不需要任何权限即可使用警报管理器服务 真的吗 是的 它是真实的 您不必添加任何特殊服务 请记住 当手机重
  • 判断点是否在线段上

    我有由这两点定义的线段 A x1 y1 z1 and B x2 y2 z2 我有道理p x y z 如何检查点是否在线段上 求点 P 到线段 A B 的距离 若 AB AP PB 则 P 在线段 AB 上 AB sqrt x2 x1 x2
  • 正则表达式替换所有上标数字

    我正在努力寻找合理的解决方案 我需要使用正则表达式替换替换以下字符 我认为你会这样做 item item replace g 然而 当我尝试这样做时 notepad 将符号 5 9 转换为常规脚本数字 我意识到这可能与我正在使用的编码格式有
  • CVS:如何获取创建标签的日期?

    我们有一个 CVS 存储库 每当成功构建完成时 我们就会在活动分支上创建一个标签 有什么方法可以确定标签的创建日期吗 查看历史记录并没有帮助 因为它只显示文件修改时的日期时间戳 Thanks 您可以轻松配置 CVS 来记录所有与标签相关的操
  • 如何清理我的 docker 主机

    当我创建 调试 docker 映像 容器时 docker 似乎在我的系统上留下了各种工件 一度有 48 张图片的限制 但我上次查看时有 20 25 张图片 docker images 所以最重要的问题是 如何正确清理 当我手动删除图像时 更
  • 如何只显示“今天”而不显示其他内容?

    如果日期时间在今天之内 我只想 今天 moment calendar Today at 5 08PM Use a 自定义区域设置 http momentjs com docs customization calendar moment lo
  • 当无法测量差异时如何处理 iterator::difference_type ?

    我正在为第三方 C 库编写 C 包装器 该库提供了一些用于迭代一系列对象的函数 我想编写一个迭代器来包装此行为 以便迭代更容易 但我无法想象如何能够提供强制的 差异 类型 因为迭代的对象没有有意义的相对顺序以及我正在使用的 API with
  • q.all 用于 angular2 observables

    是否有类似 q all 的东西可以解析 angular2 中的所有 http api 请求 在 angular1 中 我可以做这样的事情 var promises api getA api getB q all promises then
  • 使用 JS 计算两个值之间的色差/相似度%

    我需要计算两个十六进制颜色值之间的差异 因此输出是百分比值 我放弃的第一件事是将十六进制值转换为十进制 因为第一个值的权重比最后一个值高得多 第二个选项是计算每个 RGB 值之间的差异 然后将它们全部相加 然而 之间的区别0 0 0 and
  • 如何在iPhone上进行捏合手势?

    如何在 iPhone 上实现捏合手势 我熟悉在 iPhone 上使用触摸事件 但我非常懒 不想为像捏手势这样广泛使用的东西重新发明轮子 源代码或链接会很有帮助 您需要使用一些基本的数学知识自己实现它 void touchesBegan NS
  • 当视图控制器推到导航控制器上时,后退按钮不可见

    当点击单元格时 我使用导航控制器深入查看详细视图 当我将视图控制器推入导航控制器堆栈时 我希望看到一个后退按钮 可以点击该按钮将前一个视图从堆栈中弹出 问题是后退按钮不可见 但是当点击它时shouldbe 让我回到之前的视图 有什么问题 确
  • .NET Framework - 可能存在内存泄漏的类?

    就在前几天 我正在调查内存泄漏 该泄漏在不到两分钟的时间内使应用程序从约 50MB 膨胀到约 130MB 事实证明问题出在并发队列 http msdn microsoft com en us library dd267265 aspx班级
  • 选择选项使用 JQUERY 通过文本获取值[重复]

    这个问题在这里已经有答案了 我有 html 选择 下拉菜单 其中包含许多填充选项 我还有一个包含许多名称的表格 旁边有按钮 我需要当您按下任何名称旁边的按钮时 就会在选择框 下拉列表 中选择该名称 选项值是 id 选项文本是名称 例子 Na
  • 是否可以序列化 Ace Session 对象?

    我想序列化并存储 Ace Session 对象 这样我就可以打开一个 文件 并恢复所有内容 值 选择 光标位置 模式等 我试过了JSON stringify session 它会抛出一个循环错误 有任何想法吗 最简单的版本是 var ses