add DocumentLink support - #69
Open
srivastava-diya wants to merge 1 commit into
Open
Conversation
Collaborator
Author
|
I thought of using Registering a second application/json plugin isn't an option either. Given all that, i added manual resolution. |
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.
Description
Adds
textDocument/documentLinksupport: every$refstring in an open JSON/JSON Schema document becomes a clickable link that jumps to the AST node it points to.Resolves plain JSON Pointers (
#/definitions/foo,#),$anchorreferences (#fooAnchor, including the legacy"$id": "#name"form), and embedded schemas identified by$id/id(with an optional JSON Pointer or anchor fragment).Resolves
$refs that point to a different file, not just the current document. Already-open files are read from their live, and unsaved editor files that aren't open are read from disk and parsed fresh.Follows chained
$refs , if a resolved target is itself{"$ref": "..."}, resolution keeps hopping, including across multiple files, until it lands on a real node. A visited locations guard makes circular$refchains resolve to "no link" instead of hanging.JsonDocument.findNodeAtPointergained an optionalfromparameter defaults to the document root so a pointer can be resolved starting at an arbitrary node , backward compatible, existing call sites unaffected.