【问题标题】:How do I add a custom error to the gutter in Ace Editor?如何在 Ace Editor 的装订线中添加自定义错误?
【发布时间】:2019-07-20 04:40:40
【问题描述】:

我正在使用 react-ace 编写自定义 JS 编辑器。当用户尝试从我指定的列表中导入模块以外的模块时,我想在装订线中引发自定义错误。我该怎么做呢?我尝试过扩展自定义模式,但这似乎只自定义语法突出显示,我已经在 ESLint 附近达到顶峰,但不确定这是否是正确的路径。请帮助我很迷茫。

【问题讨论】:

  • 您只想在装订线空间中向用户显示自定义错误吗?
  • 是的,类似于处理语法错误的方式。我希望在写入“import x”并且 x 不是白名单模块之一时出现红色 x。

标签: ace-editor


【解决方案1】:

要从编辑器中获取数据,请使用 getValue() 然后扫描字符串以查找您不想看到的模块,然后使用相同的行号和列号并显示错误使用 setAnnotations

editor.getSession().setAnnotations([{
  row: 1,
  column: 0,
  text: "Error Message", 
  type: "error" //This would give a red x on the gutter
}]);

【讨论】:

  • 我应该把这个放在哪里以及如何使用正则表达式扫描编辑器?
  • 一旦您扫描并想显示,此答案将对您有所帮助。但确切地说,您想扫描用户已导入的模块列表吗?你有数组中的列表吗?
  • 是的,我该如何扫描编辑器的内容呢?抱歉,我对 react-ace 很陌生。是的,一个例子是['url','zlib','crypto']。我的正则表达式是: /^import(?!\s+(|\burl\b|\bcrypto\b|\bzlib\b)).*;\s*$/
  • 我已经更新了答案@ryan 看看它是否可以帮助你,如果你需要更多详细信息,请告诉我
猜你喜欢
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多