feat(ls): add AsyncAPI 3 completion for new keywords#5103
Merged
robert-hebel-sb merged 39 commits intomainfrom Feb 3, 2026
Merged
feat(ls): add AsyncAPI 3 completion for new keywords#5103robert-hebel-sb merged 39 commits intomainfrom
robert-hebel-sb merged 39 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>
…on' into feat/oss-244-complete-for-async-3
…-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>
- 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>
…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
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
…o feat/oss-244-complete-for-async-3 # Conflicts: # packages/apidom-ls/src/config/asyncapi/channel/documentation.ts # packages/apidom-ls/src/config/asyncapi/channel/meta.ts
Add comprehensive completion support for AsyncAPI 3.0.0 new and updated keywords: - Root: operations field - Channel: address, title, summary, messages, tags, externalDocs - Operation: action (with value completions), channel, title, messages, reply - Server: host, pathname, title, summary, externalDocs - Info: tags, externalDocs (moved from root in v3) - Components: operations, replies, replyAddresses, tags, externalDocs - Parameter: enum, default, examples - Multi-format schema: 14 schema format value completions - Messages/Operations: $ref completions Also fix oauth-flows completion insertText for authorizationCode. Add comprehensive test coverage with 18 new tests across 7 test files. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
glowcloud
reviewed
Jan 30, 2026
packages/apidom-ls/src/config/asyncapi/operation-reply/completion.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/operation-reply/completion.ts
Outdated
Show resolved
Hide resolved
packages/apidom-ls/src/config/asyncapi/operations/completion.ts
Outdated
Show resolved
Hide resolved
Update completion definitions and tests based on code review: - Remove Messages/Operations Object $ref completions (maps don't need them) - Fix Info tags documentation (remove incorrect Reference Object notation) - Mark schemaFormat and schema as REQUIRED in Multi-Format Schema - Remove REQUIRED from Channel messages field (it's optional) - Add missing $ref completions for Tag and External Documentation Objects - Update operation-reply and operation messages descriptions with full spec text - Remove duplicate operations tests from asyncapi-json/yaml - Refactor test pattern to assert complete completion objects All 252 tests passing. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add missing $ref keyword completions for: - Operation Reply Object - Operation Reply Address Object Both objects can be Reference Objects per AsyncAPI 3.0.0 spec. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
glowcloud
approved these changes
Feb 2, 2026
Update messages and title/summary tests to assert entire completion objects instead of just insertText, following the same pattern as other AsyncAPI 3 completion tests. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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>
…o feat/oss-244-complete-for-async-3
Base automatically changed from
feat/oss-245-docs-on-hover-for-async3-new-keywords
to
main
February 3, 2026 09:05
# Conflicts: # packages/apidom-ls/src/config/asyncapi/messages/meta.ts # packages/apidom-ls/src/config/asyncapi/multi-format-schema/completion.ts # packages/apidom-ls/src/config/asyncapi/operation-reply-address/completion.ts # packages/apidom-ls/src/config/asyncapi/operation-reply/completion.ts # packages/apidom-ls/src/config/asyncapi/operations/meta.ts
Fix linting errors in completion and test files to ensure clean builds. Changes: - Fix quote style in operation completion documentation (use double quotes) - Fix prettier formatting in parameter completion (remove extra line break) - Remove unused imports in asyncapi-json test (CompletionFormat, CompletionType) - Fix mocha hook violation in multi-format-schema test (move languageService init inside test) - Fix prettier formatting in parameter test (add line breaks for long strings) All lint errors resolved (0 errors, 57 warnings remaining). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
robert-hebel-sb
added a commit
that referenced
this pull request
Feb 3, 2026
robert-hebel-sb
added a commit
that referenced
this pull request
Feb 13, 2026
- Fix critical bug: authorizationCode flow had wrong insertText
(was 'clientCredentials')
- Add missing deviceAuthorizationUrl field in oauth-flow completion
- Add missing deviceAuthorization flow in oauth-flows completion
- Split 20+ completion items with combined OpenAPI 3.1/3.2 targetSpecs into
separate version-specific entries with correct documentation URLs:
* oauth-flows: implicit, password, clientCredentials, authorizationCode
* path-item: get, put, post, delete, options, head, patch, trace, servers,
parameters
* response: headers, content
* license: identifier, url
- Update 9 tests to use comprehensive property assertions following
PR #5103 patterns
This ensures completion items for OpenAPI 3.2 have documentation URLs pointing
to 3.2.0 specification instead of incorrectly referencing 3.1.0 when targeting
both versions.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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.0 completion for new keywords
Summary
This PR adds comprehensive completion support for new and updated keywords introduced in AsyncAPI 3.0.0, building on the validation and documentation work from previous PRs.
Changes
Completion Items Added
Root Level
Channel Object
Operation Object
sendorreceive(REQUIRED in AsyncAPI 3)Server Object
urlin v2, REQUIRED in AsyncAPI 3)Info Object
Components Object
Parameter Object
Multi-Format Schema Object
Messages/Operations Objects
Bug Fix
authorizationCodecompletion whereinsertTextwas incorrectly set toclientCredentialsTest Coverage
Added comprehensive test coverage with 18 new tests across 7 test files:
test/server.ts- 3 tests for server field completionstest/info.ts- 2 tests for info field completionstest/components.ts- 4 tests for components field completionstest/parameter.ts- 2 tests for parameter field completionstest/multi-format-schema.ts- 1 test for schema format valuestest/channel.ts- 3 additional tests for channel field completionstest/operation.ts- 1 additional test for operation action valuestest/asyncapi-yaml.ts- 1 test for root operations fieldtest/asyncapi-json.ts- 1 test for root operations fieldUpdated existing test fixtures to include new completion items.
All 254 tests passing.
Testing