You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+57Lines changed: 57 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -195,6 +195,63 @@ Renders as `Assert::blank()` with syntax highlighting. On hover, shows a tooltip
195
195
196
196
**Registry:** All `<signature>` blocks with FQN names (starting with `\`) are collected at build startup. The `<func>` tag content is matched by stripping arguments: `\Testo\Assert::blank()` matches `\Testo\Assert::blank(mixed $actual, string $message = ''): void`.
197
197
198
+
## Class References (`<class>`)
199
+
200
+
For referencing PHP classes inline. Renders the short class name (without namespace) with a hover tooltip showing the full FQN.
Renders as a link to the Assert plugin page. The name is matched case-insensitively against `<plugin-info>` blocks.
230
+
231
+
**Behavior:**
232
+
- Lookup by `name` attribute from `<plugin-info>` tags (case-insensitive)
233
+
- If no match found, renders as plain text
234
+
- Locale-aware: EN pages link to EN plugin pages, RU to RU
235
+
236
+
## Plugin Info Card (`<plugin-info>`)
237
+
238
+
Block-level tag for plugin documentation pages. Renders a styled info card with plugin class, inclusion status, and optional links. Also registers the plugin in the registry for `<plugin>` cross-references.
239
+
240
+
**Plugin:**`.vitepress/plugin-block.ts` — markdown-it block rule + registry with pre-scan.
-`class` (required) — FQN of the plugin class. Rendered as `<class>` with tooltip.
251
+
-`name` (required) — human-readable plugin name. Used for `<plugin>` cross-references.
252
+
-`included` — FQN of the plugin set (e.g. `\Testo\Application\Config\Plugin\SuitePlugins`). Rendered as `<class>` with tooltip. Omit if the plugin must be registered manually.
253
+
-`github` — URL to plugin's GitHub page (optional).
::: question Why does the attribute need a method if you can just pass a list of equal callables?
9
-
The `#[Bench]` attribute on a method defines the **baseline implementation** — the reference point that others are compared against. Callables in the parameter are alternative implementations for comparison. This allows you to automatically fail the test if the baseline is slower than an alternative, and use benchmarks as checks in CI.
::: question Зачем атрибуту нужен сам метод, если можно передать список равнозначных callable?
9
+
Атрибут `#[Bench]` на методе задаёт **базовую реализацию** — эталон, с которым сравниваются остальные. Callable в параметре — это альтернативные реализации для сравнения. Это позволяет автоматически фейлить тест, если базовая реализация оказалась медленнее альтернативной, и использовать бенчмарки как проверки в CI.
0 commit comments