【问题标题】:Monaco editor - integration with JSHintMonaco 编辑器 - 与 JSHint 集成
【发布时间】:2023-10-05 22:14:01
【问题描述】:

有没有办法将 monaco 编辑器与 jshint linting 工具集成?

我知道 monaco 提供了设置编译器选项的可能性,但它们对我来说还不够。例如,我想在语句末尾使用分号,但找不到这样做的方法。

【问题讨论】:

    标签: javascript lint jshint monaco-editor visual-studio-monaco


    【解决方案1】:

    好的,我找到了一种方法,但我还在想是否有更好的方法。

    基本上,我可以手动运行我的代码的 JSHint 分析。

    jshint.JSHINT(this.code, options, predef)
    

    然后根据结果,我可以创建我的自定义模型标记。比如:

    let errors = jshint.JSHINT.data().errors.map(e => {
            return {
              startLineNumber: e.line,
              startColumn: e.character,
              endLineNumber: e.line,
              endColumn: e.character,
              message: e.raw,
              severity: e.code.startsWith('E') ? monaco.Severity.Error : monaco.Severity.Warning
            }
          })
    

    并为我的编辑器设置模型标记。

    monaco.editor.setModelMarkers(this.editor.getModel(), 'test', errors)
    

    这可行,虽然我仍然想自定义错误标记,但也许有更自然的方法?

    【讨论】:

    • 严重性现在是 MarkerSeverity