✨ feat(vscode): 代码阅读的调用嵌套:实参的值又是跨多行的调用时在值那一格里写它的一行、套它的实参表,一层层往下套;埋在式子里后面还跟着东西的调用括起来
This commit is contained in:
1 parent
dc100692b3
commit
285d711740
16 files changed
+471
-55
No files matched your search
@@ -38,9 +38,9 @@ function shows(text: PreviewText, offset: number): boolean {
|
||||
return !('markdown' in text) && showsOffset(text, offset)
|
||||
}
|
||||
|
||||
/** 一行译文下面那张表(总是展开的)里有格子满足 test。 */
|
||||
/** 实参表(一行译文下面那张、值那一格里套着的,都总是展开的)里有格子满足 test,套着的表一层层都算。 */
|
||||
function tableShows(table: PreviewTable | undefined, test: (cell: PreviewText) => boolean): boolean {
|
||||
return table?.items.some(item => item.cells.some(test)) ?? false
|
||||
return table?.items.some(item => item.cells.some(test) || tableShows(item.table, test)) ?? false
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -87,10 +87,13 @@ function definingItem(items: PropertyItem[] | undefined, parentId: string, offse
|
||||
return undefined
|
||||
}
|
||||
|
||||
/** parentId 下面一层层的子行里,哪个的格子满足 test(显示着要找的名字):要展开的各层(parentId 到那个子行所在的那一层)。 */
|
||||
/**
|
||||
* parentId 下面一层层的子行里,哪个的格子(连它值那一格里套着的实参表)满足 test(显示着要找的名字):
|
||||
* 要展开的各层(parentId 到那个子行所在的那一层)。
|
||||
*/
|
||||
function showingItem(items: PropertyItem[] | undefined, parentId: string, test: (cell: PreviewText) => boolean): string[] | undefined {
|
||||
for (const [index, item] of (items ?? []).entries()) {
|
||||
if (item.cells.some(test))
|
||||
if (item.cells.some(test) || tableShows(item.table, test))
|
||||
return [parentId]
|
||||
const inner = showingItem(item.items, propertyItemId(parentId, index), test)
|
||||
if (inner)
|
||||
|
||||
Reference in new issue
Block a user