microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.48k stars 29.37k forks source link

Support relative paths as links in output #167211

Closed damms005 closed 1 year ago

damms005 commented 1 year ago

Does this issue occur when all extensions are disabled?: Yes/No (Not applicable. An extension that logs paths/url to the Output window is required to reproduce the issue)

Steps to Reproduce:

  1. Install an extension that logs clickable links/file paths to the Output Window (for example, Wallaby)
  2. Trigger an action that makes the extension above log an entry that includes a clickable link/file path to the Output Window
  3. Observe that no links/file paths in the Output window is clickable; neither via Ctrl + Click nor Alt + Click

Expected outcome:

Notice that the text Launch Coverage & Test Explorer is a clickable link

image

Actual outcome (bug)

Notice that the text Launch Coverage & Test Explorer** is not clickable

image

bpasero commented 1 year ago

We only support absolute paths that are inside the workspace as links for performance reasons. See also https://github.com/microsoft/vscode/issues/163778 and https://github.com/microsoft/vscode/issues/149153

damms005 commented 1 year ago

@bpasero is the support for absolute paths only restricted to Linux? As you can see from my screenshots above, same VS Code versions and same Wallaby extension version; but the first screenshot shows that the links are clickable (one of the Wallaby extension maintainer sent that to me) while the screenshot below it have unclickable links.

The maintainer took the screenshot from his Mac, while I took mine from my Linux.

bpasero commented 1 year ago

Any platform. Here is the code that creates the patterns for link detection and the workspace roots are taken as input:

https://github.com/microsoft/vscode/blob/9908b3d5ae12691da5adc2f18e21a100ee8eeb58/src/vs/workbench/contrib/output/common/outputLinkComputer.ts#L31-L44

damms005 commented 1 year ago

Any clue as to why the same extension, same version, will behave differently? His output window is clickable (as evident in the screenshot above); while I have a different experience. Will tagging him here help?

bpasero commented 1 year ago

Sorry I am not sure, @sandy081 @mjbvz or @jrieken do you know if extensions can provide links to output viewer?

jrieken commented 1 year ago

Yes - via the DocumentLinkProvider API they can

bpasero commented 1 year ago

Ah yeah thanks, I had forgotten about that API. So it is possible that there is a bug in the extension that only surfaces on some operating systems.

smcenlly commented 1 year ago

I'm from the Wallaby team. We had helped @damms005 triage his issue, and yes, we use the the DocumentLinkProvider API.

@damms005 told us the issue affected all extensions with links, not just ours.

bpasero commented 1 year ago

Can you produce a minimal sample in a hello world extension for us to reproduce?

damms005 commented 1 year ago

@bpasero I am unsure if that request is directed at @smcenlly or myself. However, a hello world extension is not required to reproduce this, IMO. Only two conditions need to be met to reproduce this issue:

  1. Anything that writes file paths or URLs to the output window. See the below screenshot of the built-in Git extension. None of those file paths is clickable
  2. VS Code running on Linux OS (in my case, specifically Zorin OS Pro. It is based on Ubuntu)

image

bpasero commented 1 year ago

From core (without extensions) we only detect and show a link if the path is:

damms005 commented 1 year ago

From core (without extensions) we only detect and show a link if the path is:

  • absolute
  • a child of a workspace folder that is opened

Only on Linux or across platforms? If across all platforms, what explains the different behaviour on Linux systems?

bpasero commented 1 year ago

This is platform independent. I cannot explain platform inconsistencies, but if there is a small sample to play with, I am happy to try.

damms005 commented 1 year ago

Perhaps I'm unable to communicate this very well, or you choose to not understand the problem. Either ways, I do not see the current direction this is headed as yielding any result.

Thanks for your efforts anyways.

damms005 commented 1 year ago

For anyone that stumbled on this, the issue was having "editor.links": false in my settings.json

damms005 commented 1 year ago

@bpasero The description for the link says 'Controls whether the editor should detect links and make them clickable'

Since this only affects the Output Window, perhaps the description should be updated to reflect same. It will be helpful in debugging like in my case