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

问题描述 投票:1回答: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 Syntax validation

ace编辑器对HTML,JavaScript进行语法验证/检查。但在我的情况下,我需要显示python的错误,我打开使用支持我的要求的其他编辑器,我也开放使用react-ace,在react-ace中,找不到react-ace上的解决方案演示

我遇到了这个Issue,它声明Cloud9使用pylint来显示语法错误。如果是这样,如何在Web应用程序中启用此功能,我猜ace没有内置支持?任何关于此的帮助/指南都非常有用

javascript python reactjs ace-editor react-ace
1个回答
1
投票

我可以想到几个选择:

  1. 你可以找到一个用Javascript编写的Python解析器。 Google快速搜索为我找到了filbert。我希望还有其他人。
  2. 使用在浏览器中运行的完整Python实现,然后使用Python工具进行验证。我使用Pyodide project来构建我的Live Coding in Python的浏览器版本。
© www.soinside.com 2019 - 2024. All rights reserved.