从摩纳哥编辑器中获取错误
Getting errors from Monaco editor
我想了解 Monaco 编辑器默认创建的错误。
看来您可以调用 monaco.editor.getModelMarkers({})
来获取文档中所有标记的列表,然后自己进行过滤以将其限制为您感兴趣的错误。我希望更清楚-记录路线,但在我的临时测试中这有效。
给定一个 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))})
})
这是一个记录错误的简单示例:
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}]`,
))
})
我想了解 Monaco 编辑器默认创建的错误。
看来您可以调用 monaco.editor.getModelMarkers({})
来获取文档中所有标记的列表,然后自己进行过滤以将其限制为您感兴趣的错误。我希望更清楚-记录路线,但在我的临时测试中这有效。
给定一个 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))})
})
这是一个记录错误的简单示例:
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}]`,
))
})