this.pos++;
if (this.flowDepth === 0) {
}
} else if (ch === ':' && this.flowDepth > 0 && this.lastTokenIsJsonLike()) {
// In flow context, ':' immediately following a JSON-like node (quoted scalar,
Frontier kind: Code frontier
unlabeled · c_9a1989da1760
199 tests · 3906 LOC · 19 files · introduces 0 tests · 52 LOC · 1 file
The orange circle is the focus. Violet and green circles are every ancestor and descendant, broader and narrower, at any distance; blue squares and pink diamonds are the introduced files and exact introduced tests of every visible concept, not only the focus's. Arrows point from broader to narrower concepts and bridge only concepts omitted from this view. Undirected links show source or test introduction. Concept and file size follows LOC; exact test nodes use test-count units.
Introduced files, introduced tests, and structurally relevant concept specialization
In the embedded map, ordinary wheel input scrolls the page; use the visible controls to zoom and drag to pan. Open the full-screen map for canvas navigation: wheel pans, Ctrl/Command plus wheel zooms, and arrow keys pan when this region is focused. On touch screens, open the full-screen map to pan or pinch. If JavaScript or WebGL is unavailable, use the native relationship evidence on this page.
Graph controls are ready.
Interactive rendering requires JavaScript and WebGL. Use the native relationship evidence on this page while the interactive map is unavailable.
Every exact file and test below is linked only from the concept that introduces it.
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/chat/test/common/promptSyntax/computeAutomaticInstructions.test|title=ComputeAutomaticInstructions addApplyingInstructions should not add duplicate instructions|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/chat/test/common/promptSyntax/computeAutomaticInstructions.test|title=ComputeAutomaticInstructions collect should collect for edit mode even when settings disabled|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/chat/test/common/promptSyntax/computeAutomaticInstructions.test|title=ComputeAutomaticInstructions instructions list variable should generate instructions list when readFile tool available|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/chat/test/common/promptSyntax/computeAutomaticInstructions.test|title=ComputeAutomaticInstructions instructions list variable should generate instructions list when readFile tool unavailable and runInTerminal tool available|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/chat/test/common/promptSyntax/promptFileReference.test|title=PromptFileReference metadata applyTo prompt language|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/chat/test/common/promptSyntax/promptFileReference.test|title=PromptFileReference metadata tools and agent compatibility no agent|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/copilotPluginConverters.test|title=copilotPluginConverters toSdkCustomAgents falls back to resource name when frontmatter omits name|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/copilotPluginConverters.test|title=copilotPluginConverters toSdkCustomAgents omits skills and infer when frontmatter does not specify them|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/chat/test/common/promptSyntax/service/promptFileParser.test|title=PromptFileParser handoff with whitespace-only label is skipped|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/chat/test/common/promptSyntax/service/promptFileParser.test|title=PromptFileParser showContinueOn defaults to undefined when not specified per handoff|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Block sequences sequence of mappings|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Block sequences spec 2.4 - sequence of mappings (229Q)|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Error handling duplicate keys emit errors|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Old test suite duplicate keys emit error|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Old test suite deeply nested same-named keys|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Old test suite deeply nested structure performance|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Block mappings multiple key-value pairs|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Error handling duplicate keys allowed with option|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Old test suite duplicate keys allowed via option|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Old test suite large input performance|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Block mappings mapping offsets|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Block mappings simple key-value pair|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Edge cases colon in unquoted value|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Edge cases trailing whitespace is trimmed from unquoted scalars|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Offset tracking scalar offsets in mapping|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Old test suite excessive whitespace after colon|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Old test suite special characters in values|occurrence=1mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/yaml.test|title=YAML Parser Old test suite various whitespace after colon|occurrence=1Every collected test enters the hierarchy at exactly one concept.
No tests are introduced at this concept. Its intent tests are introduced by other concepts.
Every collected source range enters the hierarchy at exactly one concept.
1 file ranked by introduced lines: 52 introduced LOC across 11 ranges. Expand a file to inspect source; the > gutter marks introduced lines.
this.pos++;
if (this.flowDepth === 0) {
}
} else if (ch === ':' && this.flowDepth > 0 && this.lastTokenIsJsonLike()) {
// In flow context, ':' immediately following a JSON-like node (quoted scalar,
private parseBlockMapping(baseIndent: number, inlineFirstEntry = false): YamlMapNode {
const properties: { key: YamlScalarNode; value: YamlNode }[] = [];
const seenKeys = new Set<string>();
// When called after a sequence dash, the first key is already at the current position
if (inlineFirstEntry) {
const firstEntry = this.parseMappingEntry(baseIndent);
if (firstEntry) {
}
}
while (this.currentToken().type !== TokenType.EOF) {
this.skipNewlinesAndComments();
if (this.currentToken().type === TokenType.EOF) { break; }
const indent = this.currentIndent();
if (indent < baseIndent) { break; }
if (indent !== baseIndent) {
if (indent > baseIndent) {
this.emitError(
}
}
const entry = this.parseMappingEntry(baseIndent);
if (!entry) { break; }
if (!this.options.allowDuplicateKeys && seenKeys.has(entry.key.value)) {
this.emitError(
localize('duplicateKey', 'Duplicate key: "{0}"', entry.key.value),
);
}
properties.push(entry);
}
const endOffset = properties.length > 0 ? properties[properties.length - 1].value.endOffset : startOffset;
return { type: 'map', properties, style: 'block', startOffset, endOffset };
}
private parseMappingEntry(baseIndent: number): { key: YamlScalarNode; value: YamlNode } | undefined {
if (this.currentToken().type === TokenType.Indent) {
this.advance();
}
// Parse key
const keyToken = this.expect(TokenType.Scalar);
const key = this.scalarFromToken(keyToken);
// Expect colon
const colon = this.expect(TokenType.Colon);
if (colon.type !== TokenType.Colon) {
this.emitError(localize('expectedColon', 'Expected ":"'), colon.startOffset, colon.endOffset, 'expected-colon');
return undefined;
}
// Parse value: could be on same line or next line (indented)
const value = this.parseMappingValue(baseIndent, colon);
return { key, value };
}
private parseMappingValue(baseIndent: number, colonToken: Token): YamlNode {
const next = this.currentToken();
// Same-line flow collections
if (next.type === TokenType.FlowMapStart) { return this.parseFlowMap(); }
if (next.type === TokenType.FlowSeqStart) { return this.parseFlowSeq(); }
// Special case: a sequence at the same indent as the mapping key is allowed
// as the mapping value (e.g., "foo:\n- 42")
return this.parseValue(baseIndent) ?? this.makeEmptyScalar(colonToken.endOffset);
}
// Parse the nested value
return this.parseValue(baseIndent) ?? this.makeEmptyScalar(colonToken.endOffset);
// -- Block sequence --------------------------------------------------