✨ feat(vscode): 代码阅读加异常卡片,Python、TypeScript 的异常类画成同一张表(属性、构造参数),方法照常是子块

This commit is contained in:
cruldra committed 2026-09-27 10:42:10 +08:00
1 parent d5a092dd6f
commit 0afd012c94
21 files changed
+1118 -66

No files matched your search

@@ -725,8 +725,8 @@ describe('属性表', () => {
expect(tsRows[32]).toEqual(['名称: Plain', '访问级别: 私有', '抽象: 否', '装饰器: @sealed'])
const pyRows = rowTexts(await describeAll(py, 'python', pythonZhTranslator, readFixture('classes.py')))
expect(pyRows[6]).toEqual(['名称: AppException', '说明: 应用异常的基类。\n\n带上 HTTP 状态码。', '访问级别: 公共', '父类: Exception'])
expect(pyRows[18]).toEqual(['名称: NotFound', '说明: 找不到资源。', '访问级别: 公共', '父类: AppException'])
expect(pyRows[6]).toEqual(['名称: AppResponse', '说明: 应用响应的基类。\n\n带上 HTTP 状态码。', '访问级别: 公共', '父类: BaseModel'])
expect(pyRows[18]).toEqual(['名称: NotFound', '说明: 找不到资源。', '访问级别: 公共', '父类: AppResponse'])
expect(pyRows[24]).toEqual(['名称: Meta', '访问级别: 公共', '装饰器: @dataclass(frozen=True)', '父类: Base, metaclass=ABCMeta'])
expect(pyRows[29]).toEqual(['名称: _Hidden', '访问级别: 私有'])
expect(pyRows[38]).toEqual(['名称: Local', '说明: 局部类。'])
@@ -987,11 +987,11 @@ describe('源码下标(跳到定义用)', () => {
expect(linked(valueOf(found, '实现的接口'))).toEqual([['Loader', at('Loader')], ['K', at('K>,')], ['Disposable', at('Disposable')]])
expect(found.filter(row => row.defines).map(row => [row.label, source.slice(row.defines?.startIndex, row.defines?.endIndex)])).toEqual([['类型参数', 'K, T extends Entity']])
const pySource = 'class NotFound(errors.AppException, metaclass=ABCMeta):\n pass'
const pySource = 'class NotFound(models.AppResponse, metaclass=ABCMeta):\n pass'
const pyRows = await describeAll(py, 'python', pythonZhTranslator, pySource)
expect(linked(valueOf(pyRows.get(1), '父类'))).toEqual([
['errors', pySource.indexOf('errors')],
['AppException', pySource.indexOf('AppException')],
['models', pySource.indexOf('models')],
['AppResponse', pySource.indexOf('AppResponse')],
['metaclass', pySource.indexOf('metaclass')],
['ABCMeta', pySource.indexOf('ABCMeta')],
])