✨ feat(vscode): 代码阅读的 React 组件卡片:原子图标,名称后面跟具名导出 / 默认导出 / 客户端组件 / 记忆化 / 转发 ref 小标签,属性表按属性一行(类型取字段、默认值、必填、说明,来自 XxxProps 可点,导入的类型经工作区索引查),"use client" 和组件上的 JSDoc 不再单独成块
This commit is contained in:
1 parent
1a32a51e75
commit
15f3a6600d
14 files changed
+666
-34
No files matched your search
@@ -88,6 +88,11 @@ describe('库规则:启用', () => {
|
||||
expect(list.map(view => view.kind)).toEqual(['import', 'class'])
|
||||
expect(reports).toEqual([])
|
||||
})
|
||||
|
||||
it('libraries 是空的规则不看导入:这种语言的文件都启用', async () => {
|
||||
expect(await activates('import os', { ...cardRule('any'), libraries: [] })).toBe(true)
|
||||
expect(await activates('x = 1', { ...cardRule('any'), libraries: [] })).toBe(true)
|
||||
})
|
||||
})
|
||||
|
||||
describe('库规则:认领', () => {
|
||||
@@ -177,6 +182,17 @@ describe('库规则:认领', () => {
|
||||
])
|
||||
})
|
||||
|
||||
it('略去的块不出块,后面的块 id 接着往下数;还有子块的块不能略去,记下来、照常显示', async () => {
|
||||
const omitting = (kind: string): LibraryRule => ({ ...cardRule('omit'), claim: block => block.kind === kind ? { omit: true } : undefined })
|
||||
const list = await views(MODEL, [omitting('import')])
|
||||
expect(list.map(view => [view.id, view.kind])).toEqual([['0', 'class']])
|
||||
expect(list[0].children.map(child => child.id)).toEqual(['0.0', '0.1', '0.2', '0.3'])
|
||||
|
||||
const reports: string[] = []
|
||||
expect((await views(MODEL, [omitting('class')], reports)).map(view => view.kind)).toEqual(['import', 'class'])
|
||||
expect(reports).toEqual(['库规则 omit 给第 3 行的 class 块的替身不合约定,这块照常显示:要略去的块还有子块'])
|
||||
})
|
||||
|
||||
it('认成契约里现成的属性表块:种类、属性表、筛选属性照语言插件报的这种块,编辑范围是整个类;并进来的不是子块时照常显示', async () => {
|
||||
const asEnum = (absorbs: (block: CodeBlock) => CodeBlock[]): LibraryRule => ({
|
||||
...cardRule('lib'),
|
||||
|
||||
Reference in new issue
Block a user