yzhang-gh / vscode-markdown

Markdown All in One
https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one
MIT License
2.93k stars 325 forks source link

Is there a way to close preview while editor losting focus #2

Open jamesfancy opened 7 years ago

jamesfancy commented 7 years ago

When I was editing a markdown file, I need preview. But when I switch to another editor(such as a js code editor) I hope no markdown preview window appear.

So I hope when I switch to another editor, the markdown preview editr(window) can be closed automatically. If I switch back to the markdown editor, the preview window is opened to side again.

Can you implement that?

yzhang-gh commented 7 years ago

That's what I have planned some time ago. 😄

snipaste_20170416_154121

In the long term, the preview behavior might change in future vscode version (e.g. the preview tab might be merged into the Markdown code tab).

And for now, I'll have a try and see if there is a temporary workaround.

jamesfancy commented 7 years ago

Thank you @neilsustc

e.g. the preview tab might be merged into the Markdown code tab

Great news, I like that feature.

yzhang-gh commented 7 years ago

You can find more details about that feature in #22068.

side-by-side preview inside one tab

But I think it will probably take a long time to finish. 😂


I've published v0.5.1 with a temporary solution. If you switch to a non-Markdown file, it will close all editors in other editor groups (usually the preview tab is in group 2). So it will be OK if you always edit your files in group 1. Hope you will like.

jamesfancy commented 7 years ago

@neilsustc v0.5.1 is not strong. Sometime it kept preview editor and closed other editors. I think it should rollback to v0.5.0.

Then let's wait for improvement of markdown extention.

yzhang-gh commented 7 years ago

Could you provide any reproduction steps? If it's hard to solve, I will roll back to previous version as you suggested.

jamesfancy commented 7 years ago

@neilsustc OK, the steps are simple.

  1. use vscode to open a folder as project
  2. open a .md file (enough big size such as 20KB), the preview editor is opened and rendering.
  3. open a non-md file such as package.json
  4. package.json editor and the md file editor are closed, and the preview pane is still kept.
yzhang-gh commented 7 years ago

I'll rollback to v0.5.0 as there is another user that also found this bug.

sanjibukai commented 6 years ago

Hello, As I understand this feature is not yet developed... Is there a workaround to get the preview closed when focus is lost? I mean, when the preview is opened it has the same name (ex: Preview file.md), maybe searching for opened tab using that name could help..

BTW, thanks great plugin !

yzhang-gh commented 6 years ago

To my knowledge, we can't. Because vscode doesn't provide API to close a editor by name/id.

yzhang-gh commented 6 years ago

I can only find vscode commands like closeActiveEditor etc. So I cannot find a workaround for now...

image

sanjibukai commented 6 years ago

Thanks for the reply... I think that vscode can bring focus to a newly opened tab (the behavior when a markdown preview is shown), so can it be possible to bring momentarily focus to that tab based on the history of activated tab (or if not possible to track, with some caveat eg. limiting to one opened markdown preview) to close it immediately afterwards (maybe with a callback)?

yzhang-gh commented 6 years ago

I get your point now 😂. Yes, it's possible, but really dangerous 🤣.

yzhang-gh commented 6 years ago

I tried and as expected it is very unstable and annoying. You won't like it.

LeBenLeBen commented 6 years ago

This would be an awesome feature. Any chance the API changed since your last tentative? Maybe opening a feature request in https://github.com/microsoft/vscode otherwise?

yzhang-gh commented 6 years ago

To my knowledge, no new APIs 😔

I would suggest posting this "auto-closing" feature request to vscode (rather than API) because the Markdown preview feature is actually implemented by vscode. We have little control over it as an extension.

Trass3r commented 5 years ago

I would suggest posting this "auto-closing" feature request to vscode (rather than API) because the Markdown preview feature is actually implemented by vscode.

Well they still haven't implemented auto-hide of the terminal after all those years and lots of votes, not a good sign 😅 https://github.com/Microsoft/vscode/issues/10952

Trass3r commented 5 years ago

Also if I drag an .md file into VSCode with other files already open it does enable the preview on the right but then immediately switches the editor back to the previous one. Has anyone else experienced this?

Lemmingh commented 3 years ago

https://github.com/microsoft/vscode/issues/66132

Gavin-OP commented 3 months ago

Is there any progress on automatically close the preview tab when editor is close?

LeonardoRick commented 2 months ago

I don't know how but they managed to do it here: markdown-auto-preview.

It even has an option for closing it when changing file (which I think should be default).

markdown-auto-preview.autoClosePreviewAfterSwitch: Auto close preview window when switch to another tab.

@yzhang-gh maybe you can understand what's being done there and do here as well.