mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-31 10:12:51 +00:00
refactor: implement debounced async linting in CodemirrorEditor
--bug=1057664 --user=刘瑞斌 【工具】创建工具,工具内容输入特定的内容页面会崩溃 https://www.tapd.cn/62980211/s/1726594
This commit is contained in:
parent
8625dd543a
commit
5258bd79d5
|
|
@ -98,19 +98,30 @@ const regexpLinter = linter(async (view) => {
|
|||
if (!lintResults || lintResults.length === 0) {
|
||||
return diagnostics
|
||||
}
|
||||
lintResults.forEach((element: any) => {
|
||||
const range = getRangeFromLineAndColumn(
|
||||
view.state,
|
||||
element.line,
|
||||
element.column,
|
||||
element.endColumn,
|
||||
)
|
||||
diagnostics.push({
|
||||
from: range.form,
|
||||
to: range.to,
|
||||
severity: element.type,
|
||||
message: element.message,
|
||||
})
|
||||
// 限制诊断数量,避免过多诊断信息
|
||||
const maxDiagnostics = 50
|
||||
const limitedResults = lintResults.slice(0, maxDiagnostics)
|
||||
|
||||
limitedResults.forEach((element: any) => {
|
||||
try {
|
||||
const range = getRangeFromLineAndColumn(
|
||||
view.state,
|
||||
element.line,
|
||||
element.column,
|
||||
element.endColumn,
|
||||
)
|
||||
// 验证范围有效性
|
||||
if (range.form >= 0 && range.to >= range.form) {
|
||||
diagnostics.push({
|
||||
from: range.form,
|
||||
to: range.to,
|
||||
severity: element.type === 'error' ? 'error' : 'warning',
|
||||
message: element.message,
|
||||
})
|
||||
}
|
||||
} catch (error) {
|
||||
// console.error('Error processing lint result:', error)
|
||||
}
|
||||
})
|
||||
return diagnostics
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in New Issue