diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 35b6225..8f672ce 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -30,7 +30,8 @@ export default defineConfig({ label: 'Getting Started', items: [ { label: 'Installation', link: '/' }, - { label: 'Usage', slug: 'getting-started/usage' }, + { slug: 'getting-started/usage' }, + { slug: 'getting-started/supported-features' }, { label: 'Changelog', link: 'changelog' }, ], }, diff --git a/docs/src/content/docs/getting-started/supported-features.mdx b/docs/src/content/docs/getting-started/supported-features.mdx new file mode 100644 index 0000000..bd5e2cb --- /dev/null +++ b/docs/src/content/docs/getting-started/supported-features.mdx @@ -0,0 +1,25 @@ +--- +title: Supported Features +--- + +Most native reflection features and most PHPDoc (or, rather PHPStan) features are supported. Here's a full list: + +- reflecting classes, interfaces, traits enums +- reflecting anonymous classes +- reflecting properties and methods +- `@template`, `@template-covariant`, `@template-contravariant`, upper bound (`of string`) and +default values (`= string`) - in classes and methods +- `@extends`, `@implements` and `@use` +- `@var` for properties and promoted properties +- `@param` for method parameters and promoted properties +- `@return` for method returns +- `@phpstan-` and `@psalm-` versions of all tags - with precedence +- all native types, template (generic) types and array tuples + +## What isn't supported, but would be welcomed + +- reflecting functions +- function/method return type inference from arguments +- conditional types +- type aliases (local and imported) +- some other PHPDoc tags