1

在我的网络应用程序中,我正在使用具有 python 模式的 ace 编辑器,如下所示:

var editor = ace.edit('aceEditor');
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/python");
editor.getSession().setUseWorker(false);
editor.setHighlightActiveLine(false);
editor.setShowPrintMargin(false);
ace.require("ace/ext/language_tools");
editor.setOptions({
    enableBasicAutocompletion: true,
    enableSnippets: true
});
editor.setBehavioursEnabled(true);
editor.setValue(`n=int(input("Enter the number of elements to be inserted: "))
          a=[]
          for i in range(0,n):
              elem=int(input("Enter element: "))
              a.append(elem)
          avg=sum(a)/n
          prin("Average of elements in the list",round(avg,2))`, -1);
#aceEditor {
 width: 100%;
 height: 260px; 
 border: "1px solid #ddd";
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ace.js"></script>
<div id="aceEditor"></div>

如果print用户输入错误,我需要显示如下验证:

HTML 语法验证

ace 编辑器具有 HTML、JavaScript 的语法验证/检查功能。但在我的情况下,我需要显示 python 的错误,我愿意使用其他支持我的要求的编辑器,我也愿意使用react-ace,在 react-ace 中,找不到解决方案演示反应王牌

我遇到了这个问题,它指出 Cloud9 使用 pylint 来显示语法错误。如果是这样,如何在网络应用程序中启用它,我猜 ace 没有对此的内置支持?任何关于这方面的帮助/指南真的很有帮助

4

1 回答 1

2

I can think of a couple of options:

  1. You could find a Python parser written in Javascript. A quick Google search found filbert for me. I expect there are others.
  2. Use a full Python implementation that runs in the browser, then use Python tools to do your validation. I used the Pyodide project to build a browser version of my Live Coding in Python.
于 2019-04-07T20:57:36.950 回答