✨ feat(vscode): FastAPI 接口卡片的调用树带上前端调用它的地方

This commit is contained in:
cruldra committed 2026-10-12 12:22:51 +11:00
1 parent d4459e93b3
commit 29cedcb751
30 files changed
+1316 -130

No files matched your search

+5 -4
View File
@@ -46,7 +46,7 @@ import { sqlalchemyRule } from './rules/sqlalchemy'
import { sqlxRule } from './rules/sqlx'
import { tauriRule } from './rules/tauri'
import { thiserrorRule } from './rules/thiserror'
import { bundledWasmDir, TreeSitterRuntime } from './runtime'
import { bundledWasmDir, indexGrammar, TreeSitterRuntime } from './runtime'
import { bashZhTranslator } from './translators/bashZh'
import { dockerfileZhTranslator } from './translators/dockerfileZh'
import { pythonZhTranslator } from './translators/pythonZh'
@@ -79,11 +79,12 @@ export function registerCodeReader(context: ExtensionContext): CodeReaderApi {
const registry = new CodeReaderRegistry(context.globalState)
const runtime = new TreeSitterRuntime(bundledWasmDir())
const report = (message: string): void => logger.add({ level: 'warn', source: 'codeReader', message })
// 有语言插件的按它的语法包解析,没有的(接口契约 openapi.json)用索引专用的语法包
const indexes = new WorkspaceIndexes(workspaceIndexHost(async (languageId, source) => {
const adapter = registry.languageFor(languageId)
if (!adapter)
const grammar = registry.languageFor(languageId) ?? indexGrammar(bundledWasmDir(), languageId)
if (!grammar)
throw new Error(`没有「${languageId}」的语言插件`)
return runtime.parse(adapter, languageId, source)
return runtime.parse(grammar, languageId, source)
}, report))
const resolve = (reference: RuleReference): Promise<RuleLocation[]> => resolveReference(reference, registry.libraryRules(), indexes, report)
const qa = new CodeQa(context, context.workspaceState)