Summary
textDocument/definition currently returns null for common Liquid file references, even though textDocument/documentLink already resolves them.
This breaks go-to-definition in editors that rely on definition for cmd/ctrl+click.
Reproduction
Given:
{% render 'stylesheets' %}
{% section 'header' %}
{{ 'theme.css' | asset_url }}
{% content_for 'block', type: 'feature-grid' %}
Request textDocument/definition on any quoted filename/value above.
Actual
textDocument/definition returns null.
Expected
textDocument/definition should return a LocationLink to the corresponding target file:
snippets/stylesheets.liquid
sections/header.liquid
assets/theme.css
blocks/feature-grid.liquid
Context
documentLink already resolves these paths today, so this is mainly a parity gap between providers.
Proposed fix
Reuse the existing document-link resolution in a definition provider and map the active link at cursor position to a LocationLink.
I have a patch prepared with tests and can open a PR.
Summary
textDocument/definitioncurrently returnsnullfor common Liquid file references, even thoughtextDocument/documentLinkalready resolves them.This breaks go-to-definition in editors that rely on
definitionfor cmd/ctrl+click.Reproduction
Given:
{% render 'stylesheets' %} {% section 'header' %} {{ 'theme.css' | asset_url }} {% content_for 'block', type: 'feature-grid' %}Request
textDocument/definitionon any quoted filename/value above.Actual
textDocument/definitionreturnsnull.Expected
textDocument/definitionshould return aLocationLinkto the corresponding target file:snippets/stylesheets.liquidsections/header.liquidassets/theme.cssblocks/feature-grid.liquidContext
documentLinkalready resolves these paths today, so this is mainly a parity gap between providers.Proposed fix
Reuse the existing document-link resolution in a definition provider and map the active link at cursor position to a
LocationLink.I have a patch prepared with tests and can open a PR.