是否可以序列化 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 对象? 的相关文章

  • 继续使用 sketch.js 编辑草图图像 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 sketch js 中的示例 http intridea github io sketch js http intridea g
  • 尝试为每一行编写测试用例

    已经编写了跳跃方法的测试用例 但当我看到代码覆盖率报告时 它不会进入onloadend方法seat onloadend 在 createSpyObj 中我调用了 loadend 但它仍然没有进入内部 你们能告诉我如何解决它吗 下面提供我的代
  • Scrapy Splash,如何处理onclick?

    我正在尝试抓取以下内容 我能够收到响应 但我不知道如何访问以下项目的内部数据以抓取它 我注意到访问这些项目实际上是由 JavaScript 和分页处理的 这种情况我该怎么办 下面是我的代码 import scrapy from scrapy
  • 使用 Javascript 在前端创建基本 URL(开发、API 和生产)

    无论开发和部署如何 如何制作适用于 http https localhost 端口和实际域的基本 url 我想创建一个可以在所有场景或条件下工作的基本 url 无论 http https 协议 端口 本地主机和实际域如何 无论是在开发中还是
  • 使用 classed("active",true) 鼠标悬停时 D3 颜色变化

    我是 js 和 D3 的新手 我已经生成了某种热图 并且想使用 D3 的 on mouseover 更改图块的颜色 我可以显式更改颜色 但想使用 CSS 活动规则 可能是一些简单的东西可以修复 任何帮助将不胜感激 完整代码如下 Thanks
  • 替换后正确的子串位置

    我有一个由用户提供的这样的函数 function replace function string return string replace smile g replace foo bar baz g text 1 我有这样的输入字符串 v
  • 我可以在 .split() 之后直接访问数组的第二个值吗?

    我有这个代码 var tmp this attr id split 我想将分割后的第二个值存储在 tmp 上 因此 如果 this attr id hello marco 我想在 tmp 中存储值 marco 而不是数组 当然 我想直接用一
  • Node.js ES6如何从模块导出类? [复制]

    这个问题在这里已经有答案了 我正在尝试从 Node js 6 2 0 中的 CommonJS 模块导出 ES6 类 class MyClass class contents here exports MyClass 然后将其导入到另一个模块
  • 设置 D3 力定向图

    致尊敬的读者 我对 javascript 相当陌生 我也遇到过这个问题 我正在尝试实现这个力导向图的修改版本 http mbostock github com d3 ex force html http mbostock github co
  • Javascript TypeError:无法读取未定义的属性“indexOf”

    在此代码中 我想从cart products array var cart products 17 1 19 1 18 1 var product 17 each cart products function key item if ite
  • 在 GeoJson 数据接收到的 Google 地图多边形上放置标签

    我想将带有信息的标签 或带有标签的 div 放在由下面的代码片段绘制的多边形上 样式属性已成功应用于要素 多边形类型 有谁知道如何向该特征添加文本并将其显示在多边形的中心 function handleGeoJson data map da
  • Angularjs + Typescript,如何将 $routeParams 与 IRouteParamsService 一起使用

    我使用 routeParams 从 URI 中提取属性并为其设置本地变量 当我使用打字稿输入设置 route 参数的类型时 我无法再访问 route 参数 如何访问 routeParams 中的属性 class Controller con
  • 将 SVG 下载为 PNG 图像

    我想将 HTML 页面中的 SVG 元素下载为 PNG 格式 我尝试了此操作 但下载了一个空白的 PNG 图像 如何将我的 HTML SVG 下载为 PNG 我用过这个https bl ocks org biovisualize 81878
  • Angular 中的动态子组件

    我正在构建一个具有一致的元素列表设计模式的应用程序 如果我有一个 A 类型的对象 我会创建AComponent它接受a作为输入 然后创建另一个组件来迭代 A 列表 AListComponent 那么如果我有一个对象 B 我需要做同样的事情
  • 垂直滚动,与 div/元素/锚点对齐/对齐

    我发现了一些可爱的网站 http www mini jp event campaign big point http www mini jp event campaign big point http www twenty8twelve c
  • 需要在 javascript 中对 ajax 查询进行正确的修剪吗?

    在 JavaScript 中 我想对字符串末尾的所有特殊字符进行正确的修剪 我的一段代码仅对连字符 进行修剪 还需要所有特殊字符 var s DB var x s replace console log x 对此有什么帮助吗 这应该可以解决
  • HTTPS 网站上的 ShareThis 按钮不可点击

    我已将 共享此 按钮添加到我的安全站点 现在单击它们时会产生错误 下面提到了错误 以前有人遇到过这个问题吗 阻止加载混合活动内容 http w sharethis com button buttons js http w sharethis
  • 使用 JavaScript 和 HTML 打印表情符号

    为什么这有效 p x1f604 p 而这并没有 document getElementById emoji innerHTML String fromCharCode parseInt 1f604 16 JS 术语中的 char 实际上是一
  • Javascript:在函数内调用函数时 window.location.href 不会重定向

    单击按钮时 window location href 会将浏览器重定向到 stackoverflow com 但在输入文本字段中按 Enter 键时不会将浏览器重定向到 stackoverflow com 尽管两个事件侦听器使用相同的函数
  • AngularJS 中的全局模拟对象用于 jasmine/karma 测试

    我有一个正在模拟进行单元测试的对象 基本上在我的测试文件中 我将其模拟如下 var mockObject mockMethod1 function return true mockMethod2 function return true b

随机推荐

  • 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