AltimateAI / vscode-dbt-power-user

This extension makes vscode seamlessly work with dbt™: Auto-complete, preview, column lineage, AI docs generation, health checks, cost estimation etc
https://www.altimate.ai
MIT License
431 stars 85 forks source link

Cannot go to source yml definition when source is defined in a package #806

Open RenanBasilio opened 6 months ago

RenanBasilio commented 6 months ago

Expected behavior

Cannot control click the schema or table name in a source macro; clicking the model in the PARENT MODELS sidebar tries to open a file in the wrong directory and fails with a The editor could not be opened because the file was not found. error.

Actual behavior

Clicking the model in the PARENT MODELS sidebar view or CTRL+Clicking the model or schema name in a source macro should take me to the file which contains the declaration for that source.

Steps To Reproduce

This issue occurs when a yaml file containing a source definition is imported from an external package via the packages.yml file. The yaml files are downloaded into dbt_packages/package_name/sources/my_source.yml through the dbt deps command.

The extension is able to correctly identify these imported sources, and building models utilizing them them works correctly in DBT (including generating documentation). Their definition also shows up when hovering over the model name, but attempting to follow any links to them does not work correctly; right clicking does nothing, and clicking them in the PARENT MODELS view attempts to open a sources/my_source.yml file, which seems to omit the dbt_packages/package_name prefix.

Note that adding the dbt_packages/package_name directory to the model-paths in the dbt_project.yml configuration file seems to cause the extension to work correctly, and use the full path when trying to open the file. This does, however, cause unintended side effects in DBT, such as the documentation for these sources being duplicated.

Log output/Screenshots

No response

Operating System

MacOS

dbt version

1.5.8, also tested on 1.7.1

dbt Adapter

dbt-snowflake

dbt Power User version

0.28.4

Are you willing to submit PR?

mdesmet commented 5 months ago

@RenanBasilio : Are you currently working on this? Contact us if you we can help you getting started!

RenanBasilio commented 5 months ago

@RenanBasilio : Are you currently working on this? Contact us if you we can help you getting started!

I'm not currently working on this, I started exploring the code but other priorities have pulled me away from it for the moment.

Would appreciate it being addressed if this is an easy fix, or a pointer towards where model paths are returned for clickthrough/sidebar functionality, as it seems to just need models to be referred to by the full path or relative to the DBT project root, rather than relative to the models-path setting.