从Monaco编辑器中获取错误信息

5
我希望获取默认由Monaco编辑器创建的错误。 enter image description here
3个回答

5

看起来你可以调用monaco.editor.getModelMarkers({})以获取文档中所有标记的列表,然后自行筛选以限制感兴趣的错误。我更喜欢更清晰地记录路线,但在我的临时测试中这个方法可行。


3

给定一个 Monaco 模型,您可以访问 worker。这类似于 ts.LanguageService,但签名是异步的。通过这样做,您可以调用 getSemanticDiagnostics() 和其他所有内容。

monaco.languages.typescript.getTypeScriptWorker()
  .then(_worker=>{_worker(model.uri)
  .then(worker=>{

    worker.getScriptFileNames().then(ff=>{
      ff.forEach(sf=>{
        worker.getSemanticDiagnostics(sf).then(dd=>{          
          console.log('\n\n DIAGNOSTICS FOR '+sf)
          console.log(dd.map(d=>d.messageText))})
        })

2
这是一个简单的示例,用于记录错误:

import * as monaco from 'monaco-editor'

// ...

monaco.editor.onDidChangeMarkers(([uri]) => {
  const markers = monaco.editor.getModelMarkers({resource: uri})
  console.log('markers:', markers.map(
    ({ message, startLineNumber, startColumn, endLineNumber, endColumn }) =>
      `${message} [${startLineNumber}:${startColumn}-${endLineNumber}:${endColumn}]`,
  ))
})

截至2022年10月,这适用于@monaco-editor/react,但TS对此并不满意。 - Reid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接