MCPcopy
hub / github.com/microsoft/vscode-js-debug / renderArrayPreview

Function renderArrayPreview

src/adapter/objectPreview/index.ts:136–169  ·  view source on GitHub ↗
(preview: ObjectPreview.ArrayPreview, characterBudget: number)

Source from the content-addressed store, hash-verified

134}
135
136function renderArrayPreview(preview: ObjectPreview.ArrayPreview, characterBudget: number): string {
137 const builder = new BudgetStringBuilder(characterBudget);
138 let description = preview.description;
139 const match = description.match(/[^(]*\(([\d]+)\)/);
140 if (!match) return description;
141 const arrayLength = parseInt(match[1], 10);
142
143 if (description.startsWith('Array(')) description = description.substring('Array'.length);
144 builder.append(stringUtils.trimEnd(description, builder.budget()));
145 builder.append(' ');
146 const propsBuilder = new BudgetStringBuilder(builder.budget() - 2, ', '); // for []
147
148 // Indexed
149 let lastIndex = -1;
150 for (const prop of preview.properties) {
151 if (!propsBuilder.checkBudget()) break;
152 if (isNaN(prop.name as unknown as number)) continue;
153 const index = parseInt(prop.name, 10);
154 if (index > lastIndex + 1) propsBuilder.appendEllipsis();
155 lastIndex = index;
156 propsBuilder.append(renderPropertyPreview(prop, propsBuilder.budget()));
157 }
158 if (arrayLength > lastIndex + 1) propsBuilder.appendEllipsis();
159
160 // Named
161 for (const prop of preview.properties) {
162 if (!propsBuilder.checkBudget()) break;
163 if (!isNaN(prop.name as unknown as number)) continue;
164 propsBuilder.append(renderPropertyPreview(prop, propsBuilder.budget(), prop.name));
165 }
166 if (preview.overflow) propsBuilder.appendEllipsis();
167 builder.append('[' + propsBuilder.build() + ']');
168 return builder.build();
169}
170
171function renderObjectPreview(
172 preview: ObjectPreview.PreviewAsObjectType,

Callers 1

renderPreviewFunction · 0.85

Calls 6

appendMethod · 0.95
budgetMethod · 0.95
checkBudgetMethod · 0.95
appendEllipsisMethod · 0.95
buildMethod · 0.95
renderPropertyPreviewFunction · 0.85

Tested by

no test coverage detected