feat(ls): add AsyncAPI 3 documentation for new keywords#5102
Merged
robert-hebel-sb merged 27 commits intomainfrom Feb 3, 2026
Merged
feat(ls): add AsyncAPI 3 documentation for new keywords#5102robert-hebel-sb merged 27 commits intomainfrom
robert-hebel-sb merged 27 commits intomainfrom
Conversation
…ncapi3-with-compatible-properties
This commit completes AsyncAPI 3 documentation support by updating: - asyncapi3/documentation.ts: Added comprehensive AsyncAPI Object documentation - components/documentation.ts: Added missing operations property - operation/documentation.ts: Added required channel property - security-requirement/documentation.ts: Added AsyncAPI 3 variant with role names support - common/schema/documentation.ts: Extended all JSON Schema keywords to support AsyncAPI 3 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
glowcloud
reviewed
Jan 22, 2026
packages/apidom-ls/src/config/asyncapi/channel-item/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/channel-item/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/messages/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/multi-format-schema/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/operation-reply-address/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/multi-format-schema/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/multi-format-schema/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/channel-item/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/channel-item/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/asyncapi3/documentation.ts
Outdated
Show resolved
Hide resolved
…-compatible-properties' into feat/oss-245-docs-on-hover-for-async3-new-keywords # Conflicts: # packages/apidom-ls/src/config/common/schema/documentation.ts
- Create separate channel config for AsyncAPI 3 (Channel Object vs Channel Item Object) - Move AsyncAPI 3 rules from channel-item to new channel folder - Add field description tables to all AsyncAPI 3 object documentation - Mark required fields explicitly with REQUIRED prefix in documentation - Add Reference Object notes where specification requires them - Add runtime expression note to Operation Reply Address - Remove invalid AsyncAPI 3 Security Requirement Object documentation - Update AsyncAPI 3 root object description to match specification - Update lint rules for Channel Object to use Reference Objects for servers Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 48 out of 48 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Move individual field entries before object-level docs in multi-format-schema - Move individual field entries before object-level docs in operation-reply - This ensures field-specific hover documentation displays correctly - Operations documentation already follows correct pattern with patterned fields Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Base automatically changed from
feat/OSS-254/251-add-config-and-docs-for-asyncapi3-with-compatible-properties
to
main
January 23, 2026 07:34
…ywords # Conflicts: # packages/apidom-ls/src/config/asyncapi/asyncapi3/documentation.ts # packages/apidom-ls/src/config/asyncapi/components/documentation.ts # packages/apidom-ls/src/config/asyncapi/operation/documentation.ts # packages/apidom-ls/src/config/common/schema/documentation.ts
glowcloud
approved these changes
Jan 26, 2026
packages/apidom-ls/src/config/asyncapi/channel/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/channel-item/lint/address--type.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/multi-format-schema/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/multi-format-schema/documentation.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/operations/documentation.ts
Outdated
Show resolved
Hide resolved
Addresses review comments from PR #5102: - Remove duplicate AsyncAPI 3.0 lint rules from channel-item (now in channel) - Fix channel documentation comment about parameters field - Correct Multi Format Schema Object schemaFormat property documentation ordering - Update Multi Format Schema Object table to match property descriptions - Fix Operations Object patterned field description to match spec Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ywords # Conflicts: # packages/apidom-ls/src/config/asyncapi/channel/completion.ts # packages/apidom-ls/src/config/asyncapi/channel/documentation.ts # packages/apidom-ls/src/config/asyncapi/channel/lint/bindings--type.ts # packages/apidom-ls/src/config/asyncapi/channel/lint/description--type.ts # packages/apidom-ls/src/config/asyncapi/channel/lint/index.ts # packages/apidom-ls/src/config/asyncapi/channel/lint/parameters--type.ts
Add comprehensive Message Object documentation for AsyncAPI 3.0.0 including fixed fields table, Message Example Object details, and examples in JSON and YAML formats. Key differences from AsyncAPI 2: - headers/payload support Multi Format Schema Object - externalDocs can be a Reference Object - traits use new merge mechanism - removed messageId and schemaFormat fields Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove Reference Object from externalDocs field documentation in Info, Tag, Channel, Server, Operation, Operation Trait, Message Trait, and Components Objects - Add Reference Object notation to External Documentation Object itself (can be referenced as component) - Aligns documentation with AsyncAPI 3.0.0 specification Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ssage documentation - Add comprehensive schema formats table showing required (AsyncAPI 3.0.0, JSON Schema Draft 07) and recommended (Avro, OpenAPI, RAML, Protocol Buffers) formats - Add JSON and YAML examples demonstrating Avro schema usage with Multi Format Schema Object - Aligns AsyncAPI 3 documentation completeness with AsyncAPI 2 documentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…Object - Add formal JSON Schema specification documentation for 'properties' keyword - Explain validation behavior: validates child instances against corresponding schemas - Match documentation style used in common/schema for consistency - Clarify that omitting the keyword behaves as an empty object Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
robert-hebel-sb
added a commit
that referenced
this pull request
Feb 3, 2026
Addresses review comments from PR #5102: - Remove duplicate AsyncAPI 3.0 lint rules from channel-item (now in channel) - Fix channel documentation comment about parameters field - Correct Multi Format Schema Object schemaFormat property documentation ordering - Update Multi Format Schema Object table to match property descriptions - Fix Operations Object patterned field description to match spec Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
robert-hebel-sb
added a commit
that referenced
this pull request
Feb 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add AsyncAPI 3.0 Documentation and Configuration Support
Summary
This PR adds comprehensive documentation and configuration support for AsyncAPI 3.0 specification in the language server (
apidom-ls). It builds upon the work done in PR #5095 by completing the documentation coverage for all AsyncAPI 3.0 objects and properties.What Changed
1. New AsyncAPI 3.0 Configuration Directories
Added complete configuration structure for 5 new AsyncAPI 3.0-specific objects:
messages/- Messages Object configurationoperations/- Operations Object configurationoperation-reply/- Operation Reply Object configurationoperation-reply-address/- Operation Reply Address Object configurationmulti-format-schema/- Multi Format Schema Object configurationEach directory includes:
documentation.ts- Hover documentation with links to AsyncAPI 3.0 speccompletion.ts- Empty completion arrays (reserved for future use)lint/index.ts- Linting configuration structuremeta.ts- Metadata configurationconfig.ts2. AsyncAPI 3.0 Support for Channel Item
Enhanced
channel-item/configuration with AsyncAPI 3.0 properties:New Properties Documented:
address- String representation of the channel's addressmessages- Map of messages sent to this channeltitle- Human-readable titlesummary- Short summarytags- List of tagsexternalDocs- External documentationservers- Servers this channel is available onparameters- Parameters in the channel addressbindings- Protocol-specific bindingsNew Lint Rules:
allowed-fields-3-0.ts- Validates allowed fields for AsyncAPI 3.0address--type.ts- Type validation for addressmessages--type.ts- Type validation for messagestitle--type.ts- Type validation for titlesummary--type.ts- Type validation for summarytags--type.ts- Type validation for tagsexternal-docs--type.ts- Type validation for externalDocs3. Completed Missing Documentation
Added missing documentation for several AsyncAPI objects:
asyncapi3/documentation.tsoperation/documentation.tschannelproperty documentationcomponents/documentation.tsoperationsproperty documentationsecurity-requirement/documentation.ts4. JSON Schema Support for AsyncAPI 3.0
Updated
common/schema/documentation.tsto extend all JSON Schema keywords for AsyncAPI 3.0:Updated 46 JSON Schema keywords to support AsyncAPI 3.0:
type,enum,constmultipleOf,maximum,minimum,exclusiveMaximum,exclusiveMinimummaxLength,minLength,patternitems,additionalItems,maxItems,minItems,uniqueItems,containsmaxProperties,minProperties,required,properties,patternProperties,additionalProperties,dependencies,propertyNamesif,then,elseallOf,anyOf,oneOf,not$reftitle,description,examples,deprecatedAsyncAPI-specific Schema Properties:
default- Added AsyncAPI 3.0 support (value must conform to defined type)discriminator- Added separate AsyncAPI 3.0 entry with updated spec linksexternalDocs- Added separate AsyncAPI 3.0 entry with updated spec links5. Documentation
Added
CLAUDE.mdto help future Claude Code instances understand the repository structure and development workflow.Key Technical Details
AsyncAPI 2.0 vs 3.0 Major Differences
subscribe/publish; in v3, they havemessages+addressaction,channel, andreplypropertiesurltohost+pathname; addedtitle,summary,externalDocsoperations,replies, andreplyAddressesDocumentation Pattern
All documentation entries follow this pattern:
Completion Pattern
All completion files are currently empty arrays:
Files Changed
References