在ace编辑器中启用Python语法验证/检查器

时间:2019-02-13 07:36:35

标签: javascript python reactjs ace-editor react-ace

在我的网络应用中,我正在使用具有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 Syntax validation

ace编辑器具有语法验证/检查HTML,JavaScript。但就我而言,我需要显示python错误,并且愿意使用其他支持我要求的编辑器,也愿意使用react-ace,在react-ace中,也找不到解决方案react-ace

上的演示

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

1 个答案:

答案 0 :(得分:1)

我可以想到几个选择:

  1. 您可以找到用Java编写的Python解析器。快速的Google搜索为我找到了 filbert 。我希望还有其他人。
  2. 使用在浏览器中运行的完整Python实现,然后使用Python工具进行验证。我使用 Pyodide项目构建了 Python实时编码