From c40c1611dd84d115acf0c38f6f8d109d8018bfbe Mon Sep 17 00:00:00 2001 From: Widthdom Date: Wed, 29 Jul 2026 13:21:48 +0900 Subject: [PATCH 1/5] Fix JSON array symbol hierarchy (#4874) --- DEVELOPER_GUIDE.md | 4 +- changelog.d/unreleased/4874.fixed.md | 19 +++ .../Database/DbSymbolReader.Outline.cs | 30 +++- .../Symbols/SymbolExtractor.StructuredData.cs | 125 +++++++++++----- .../QueryCommandRunnerInspectTests.cs | 136 ++++++++++++++++++ tests/CodeIndex.Tests/SymbolExtractorTests.cs | 97 +++++++++++++ 6 files changed, 363 insertions(+), 48 deletions(-) create mode 100644 changelog.d/unreleased/4874.fixed.md diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 9c347a6ce..4b85f4d34 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -1523,7 +1523,7 @@ Extractor strategy by language surface: | Scala | Uses a separate block-call pass for `name { ... }` / `name { x => ... }` forms so idiomatic calls such as `foreach {}`, `Try {}`, and `synchronized {}` stay visible. | | Common Lisp / Racket | Use a lightweight S-expression scanner that masks strings, line comments, and `#| ... |#` block comments before extracting definitions and function ranges. | | HTML | Uses a dedicated character-level state machine instead of the regex pattern loop. It walks tag openers, quoted/unquoted attribute values including multi-line values, and masks `