【问题标题】:Code Mirror - How to store information in an annotation or metadata?代码镜像 - 如何将信息存储在注释或元数据中?
【发布时间】:2021-06-11 00:50:49
【问题描述】:

我正在使用 Code Mirror 创建一个简单的代码编辑器,它可以根据某些命令在画布上创建形状。我想使用 Code Mirror 的注释将形状 ID 存储在行的元数据中。这样,当我删除命令上的一行时,我可以轻松地告诉 Canvas 要删除哪个形状。

我已经浏览了一段时间的代码镜像文档,但仍然不知道我将如何实现它。

如何使用 CodeMirror 访问文本中的元数据(注释)?

非常感谢任何帮助。

【问题讨论】:

    标签: javascript codemirror


    【解决方案1】:

    好的,我想通了。 CodeMirror 有一个函数“markText”,可用于为特定 CSS 样式的行提供类名。它还可以用于传递任何其他参数,包括用户创建的参数,例如 shapeID。

    // Give a line an ID
    function giveLineID(lineIndex,id){
       editor.markText( {line:lineIndex,ch:0},{line:lineIndex,ch:line.length},{shapeID : id});
    }
    
    // Retrieve an ID from a line
    function retrieveID(lineIndex){
      var line = myCodeMirror.getLine(lineIndex);
    
      var marks = cm.findMarks({line:lineIndex,ch:0},{line:lineIndex,ch:line.length});
      marks.forEach(mark => {
         if (mark.hasOwnProperty("shapeID")){
             return mark["shapeID"];
           }
         });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      • 2013-12-03
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      相关资源
      最近更新 更多