Skip to content

Commit d199271

Browse files
committed
Merge latest origin/main into #4625/#4650 branch
2 parents 05e881c + 2ff4c7e commit d199271

6 files changed

Lines changed: 1521 additions & 8 deletions

File tree

DEVELOPER_GUIDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1176,7 +1176,7 @@ Supported symbol kinds by language:
11761176
| Swift | functions, classes, actors, structs, protocols, enums, stored properties | imports and trailing-closure calls | yes |
11771177
| Ruby | `def`, Rails DSL, block calls, classes, modules, attributes | `require` | yes |
11781178
| Perl | packages, subroutines, constants | `use`, `require`, `parent` / `base`, arrow method calls | yes |
1179-
| C / C++ | functions, macros, structs, C++ classes, enums, enum classes | `#include`, type-position references | yes |
1179+
| C / C++ | functions, macros, structs, C++ classes, enums, enum classes; balanced C++ callable declarators including constructors, destructors, operators, and trailing-return functions | `#include`, type-position references | yes |
11801180
| PHP | functions, constants, enum cases, classes, interfaces, traits, enums | `use`, `require`, `include` | yes |
11811181
| Scala | `def`, `implicit` declarations, `given`, classes, objects, traits, enums | imports, type aliases, block calls, `for` generators, implicit conversion types, `given` / `using` evidence types | yes |
11821182
| Elixir | `def`, `defp`, modules, protocols | `import`, `alias`, `use`, `require` | yes |
@@ -4068,7 +4068,7 @@ SQL 固有の symbol extraction:
40684068
| Swift | function、class、actor、struct、protocol、enum、stored property | import、trailing-closure call | yes |
40694069
| Ruby | `def`、Rails DSL、block call、class、module、attribute | `require` | yes |
40704070
| Perl | package、subroutine、constant | `use`、`require`、`parent` / `base`、arrow method call | yes |
4071-
| C / C++ | function、macro、struct、C++ class、enum、enum class | `#include`、type-position reference | yes |
4071+
| C / C++ | function、macro、struct、C++ class、enum、enum class。constructor、destructor、operator、後置戻り値 function を含む、括弧の対応を考慮した C++ callable declarator | `#include`、type-position reference | yes |
40724072
| PHP | function、constant、enum case、class、interface、trait、enum | `use`、`require`、`include` | yes |
40734073
| Scala | `def`、class、object、trait、enum | import、type alias、block call | yes |
40744074
| Elixir | `def`、`defp`、module、protocol | `import`、`alias`、`use`、`require` | yes |

USER_GUIDE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2288,6 +2288,7 @@ All indexed languages are searchable through FTS5. Rows with **Symbols = yes** a
22882288
**Symbol notes**
22892289

22902290
- C/C++ headers: `.h` stays on the C path unless lexical code (after comments, strings, and macro payloads are masked) has clear C++ markers such as `namespace`, `template`, `using`, `class`, or `std::`; those headers are promoted to `cpp` at index time. Detection scores the full header up to 48 KiB, then uses head/middle/tail ranges for larger files while retaining lexical state across skipped bytes, so long license blocks do not impose a fixed line cutoff. `index --dry-run --json` reports ambiguous-header decisions in `language_detections` with stable `source` and `confidence` values.
2291+
- C++ callables: balanced declarators preserve constructors, destructors, conversion operators, ordinary functions, and trailing-return functions as navigable function symbols. Trailing return types populate `return_type` metadata.
22912292
- Cython and CUDA: Cython `cdef` / `cpdef` declarations, `cimport` entries, and extern declarations are indexed as symbols. CUDA files reuse C++ symbols and classify `__global__`, `__device__`, and `__host__` functions with CUDA-specific sub-kinds.
22922293
- Shaders: GLSL, HLSL, Metal, and WGSL entry points, structs, type aliases, resource bindings, constant buffers, samplers, textures, and uniform/input/output declarations are indexed as symbols.
22932294
- HDL: Verilog, SystemVerilog, and VHDL module/package/type/function/resource declarations are indexed as symbols. References and graph queries are not advertised for HDL yet.
@@ -5331,6 +5332,7 @@ indexing はファイル単位の SQLite transaction を commit します。長
53315332
**シンボル抽出メモ**
53325333

53335334
- C/C++ ヘッダー: `.h` は既定では C として扱います。コメント、文字列、マクロのペイロードをマスクした後の字句コードに `namespace`、`template`、`using`、`class`、`std::` などの明確な C++ マーカーがある場合だけ、index 時に `cpp` へ昇格します。48 KiB まではヘッダー全体、それを超える場合は評価対象外の byte をまたいで字句状態を保持しながら先頭・中央・末尾 range を評価するため、長いライセンスブロックが固定行数の打ち切りを引き起こしません。`index --dry-run --json` は曖昧なヘッダー判定を、安定した `source` と `confidence` を持つ `language_detections` として報告します。
5335+
- C++ callable: 括弧の対応を考慮した declarator 解析により、constructor、destructor、conversion operator、通常関数、後置戻り値関数を移動可能な function シンボルとして保持します。後置戻り値は `return_type` メタデータへ格納します。
53345336
- Cython と CUDA: Cython の `cdef` / `cpdef` 宣言、`cimport`、extern 宣言をシンボルとして索引します。CUDA ファイルは C++ のシンボル抽出を再利用し、`__global__`、`__device__`、`__host__` 関数に CUDA 固有の sub-kind を付けます。
53355337
- Shaders: GLSL、HLSL、Metal、WGSL の entry point、struct、type alias、resource binding、constant buffer、sampler、texture、uniform/input/output 宣言をシンボルとして索引します。
53365338
- HDL: Verilog、SystemVerilog、VHDL の module / package / type / function / resource 宣言をシンボルとして索引します。HDL の references と graph queries はまだ対応として広告しません。
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
category: fixed
3+
issues:
4+
- 4614
5+
affected:
6+
- src/CodeIndex/Indexer/Symbols/SymbolExtractor.CppCallables.cs
7+
- src/CodeIndex/Indexer/Symbols/SymbolExtractor.ExtractCore.cs
8+
- tests/CodeIndex.Tests/SymbolExtractorTests.cs
9+
- USER_GUIDE.md
10+
- DEVELOPER_GUIDE.md
11+
---
12+
13+
## English
14+
15+
- Preserve balanced C++ callable declarators as navigable function symbols, including constructors, destructors, conversion operators, and trailing-return functions, while retaining stable container and return-type metadata.
16+
17+
## 日本語
18+
19+
- 括弧の対応を考慮した C++ callable declarator を移動可能な function シンボルとして保持し、constructor、destructor、conversion operator、後置戻り値関数の container と return type メタデータを安定して抽出するようにしました。

0 commit comments

Comments
 (0)