问题标签 [codemirror-modes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1280 浏览

javascript - 如何在同一页面上使用 codemirror 突出显示多种语言源代码?

我正在编写一个教程页面,我需要在其中突出显示不同语言(HTML、CSS、Javascript、jQuery)的不同源代码

目前,如果我提到mode:"jQuery"

我想将部分代码突出显示为 HTML,部分突出显示为 CSS,部分突出显示为 jQuery 等。我该怎么做?

我当前的代码:

// 代码镜像函数**

这就是我想在同一页面上强调的内容

// 在 CSS 模式下高亮代码

// 高亮 HTML 模式下的代码

// 在 jQuery 模式下高亮代码

我不能使用自动模式或自动选择,因为它不是由用户选择来检测的。我需要提到模式可能是手动的。如何使用相同的功能实现这一点?

0 投票
1 回答
24 浏览

javascript - Codemirror autoCloseBarckets 与 CSS 和 JavaScript 的行为不端

我有用于 Codemirror 的 autoCloseBrackets v5.5.0,它与 CSS 和 Javascript 行为不端。下图描述了它如何与 javascript 行为不端。请帮忙。这就是它行为不端的方式

0 投票
1 回答
68 浏览

codemirror - 使用 codemirror 简单模式实现基于缩进的解析

我想使用 codemirror 简单模式为基于缩进的语言实现解析器。我如何匹配一个有缺陷的人。也就是说,我希望解析器的状态在一行被缩进时改变。

0 投票
1 回答
2030 浏览

reactjs - 如何在这个 React + Browserify 环境中应用 Codemirror 模式

我正在开发一个基于这个样板的应用程序:react-app-boilerplate

我正在使用react-codemirror 模块

我想将 javascript 模式应用于 codemirror,但是当我简单地插入在http://codemirror.net/mode/javascript/javascript.js找到的外部脚本时,我得到一个“CodeMirror 未定义”错误

我不确定如何在此配置中将所有内容连接在一起,我试图从 javascript.js 文件中的 react-codemirror 中要求 CodeMirror 对象,但没有成功。

0 投票
1 回答
1517 浏览

javascript - 如何在 CodeMirror 中使用令牌使某些行只读

我想尝试使用令牌并使某些代码行只读。例如;

我想让注释行 // 可编辑,其余为只读。我在这方面完全是菜鸟,所以我需要一些帮助。非常感谢。

0 投票
1 回答
267 浏览

javascript - Codemirror:自己的模块关键字

我尝试为我们自己的 codemirror 脚本语言编写我的 owm 模块。知道我挂在我们的关键字上。

我有这个测试代码:

我们的一些关键词是:

  • 窗户
  • SELECT_MULTIPLE
  • NO_SIZE
  • 迅速的
  • 日期
  • 按钮
  • 选择
  • 系统对象
  • 称呼
  • 放置对象

对于我的正则表达式,我使用一个名为 cons 的数组,其中包含所有关键字。

然后我像这样加入所有数组条目:

直到那里一切正常。我得到的正则表达式在普通的 javascript match() 中工作。我什至使用 jQuery 获取我网站的文本,然后使用正则表达式,得到了我想要的。

但是,当我这样做时:

在 Codemirror 中,SessionDate 的日期也匹配。

这是我的整个 Codemirror 模式:

编辑:

如所要求的,这是一个工作的plunker:

http://plnkr.co/edit/bPyuJd?p=preview

在那里你可以看到,我没有关键字“SessionDate”,但是由于关键字“Date”,“SessionDate”的“Date”也被突出显示。

0 投票
1 回答
2353 浏览

javascript - Codemirror如何创建模式

所以我最近才进入 codemirror,因为我的网站需要一个文本编辑器,但这意味着我对该程序知之甚少。我让编辑器使用 javascript 模式,但我需要为编辑器创建一些语法,我相信这意味着我必须为编辑器创建一个模式,但我在执行此操作时遇到了麻烦。我已经阅读了几次手册,但有些东西对我来说并没有点击,可能是因为我从未使用过这样的东西。无论如何,现在我只需要通过创建简单的加法、减法和乘法函数来掌握它。如果有人能让我继续前进,我将不胜感激。

0 投票
1 回答
1685 浏览

codemirror - codemirror html 混合模式未应用于 JavaScript

代码镜像问题

});

我正在使用 codemirror 创建代码片段。我有两个问题。首先是javascript没有正确着色。我已经包含了所有依赖项(xml、css 和 js)。第二个是当我将鼠标悬停在 上时,滚动会导致片段略微向上或向下移动。它不是完全滚动,只是摆动。有关更多详细信息,请参见图像。

所有帮助将不胜感激。

0 投票
1 回答
58 浏览

javascript - 如何将覆盖限制在特定范围内?

我想在我的编辑器中添加一个仅适用于给定范围的叠加层(例如,从第 3 行第 44 列到第 8 行第 5 列)。

问题是我无法想出任何方法来找到我的token()方法中的当前行,因为覆盖是无状态的,所以我无法将当前行存储在状态中。

multiplex.js我仔细研究了and中的扩展overlay.js,并试图了解嵌套模式是如何工作的,但我无法找到一种方法来使用这些工具中的任何一个来帮助我。请记住,我仍然希望它表现得像一个叠加层,因此不会干扰基本模式。

我的替代方法是扫描元素以查找添加的类并手动修改它们,使用element.getBoundingClientRect()cm.coorsChar()检查它们的位置。但这很丑陋,需要手动刷新,并且当标记的元素跨越我的范围边界时会导致错误。关于如何正确解决这个问题的任何想法?

0 投票
1 回答
92 浏览

codemirror - 在 CodeMirror 中延迟执行覆盖

有没有办法控制覆盖标记化的开始时间?另一种选择是阻止覆盖运行,然后再激活它。删除和添加覆盖会导致整个文档被处理两次,所以这并没有真正的帮助。

背景:我正在构建一个代码编辑器,其中标记化依赖于重新评估代码,该代码被延迟以保持编辑器响应。