Closed winkee01 closed 1 year ago
Hi! As you noticed, the default is opening a workspace changes the current directory for entire nvim process.
There is a config setting global_cd
that you can set to false which should resolve this. Could you try that and let me know if it works?
I will look at the canceling telescope bug though
I tried with global_cd = false
but it still changes globally, here is a screen shot.
From what I can see, you are using shortcuts mapped in telescope to open a split right? Here is what I think is happening
So a solution would involve opening a split in a new directory before the telescope file picker is run. At the moment I don't have any ideas, but I will keep thinking
From what I can see, you are using shortcuts mapped in telescope to open a split right? Here is what I think is happening
- You start in the eslinter workspace
- Running WorkspaceOpen to open the nvimtest workspace changes the current window to that new directory
- then a hook opens telescope file picker
- the file opened in a new split takes the directory from the first window
So a solution would involve opening a split in a new directory before the telescope file picker is run. At the moment I don't have any ideas, but I will keep thinking
I use <c-v>
to open in a split vertically when I select an item in telescope popup window. I think it's a default mapping, <c-x>
to open horizontally, <c-v>
to open vertically.
There are two projects involved and two splits involved, in the first window, I open a file from project1 (~/dev/web/eslinter/test1.js
), then I use :WorkspaceOpen
to open another file from project2 (~/dev/nvimtest/xxx.js
) in a new split. The correct result should be, in split1, :pwd
should print project1's root dir (which is ~/dev/web/eslinter
), and in split2, :pwd
should print project2's root dir (which is ~/dev/nvimtest
). Unfortunately, they both print ~/dev/nvimtest
, which is not desired.
What you just described is exactly what I was trying to say 😂 I guess I wasn't very clear, sorry about that.
The issue remains though. This plugin changes the directory (with :lcd
) before the telescope file picker opens, which means the :lcd
takes place before the split. That's why both windows have the same directory.
I thought a little about this. There are two solutions I can think of
:WorkspaceOpen
from that new window:WorkspaceOpenVsp
) that first makes a vertical split and then runs the workspace changing code.Hopefully that all makes sense, do you have any more questions?
my bad. How about perform the CWD change as a post hook of the telescope instead of runing before it. by that way, you can avoid those bugs?
No worries! The problem with that idea is that the telescope prompt wouldn't open in the new directory, it would still show the files from the first workspace.
Another bug is: if I cancel in telescope's popup window, cwd still changes, which is also not desired
This bug is due to the same root cause. The cwd occurs before the telescope find_files opens, so I can't undo that in this case.
I am going to close this issue, but please feel free to comment if you feel like there is more that needs to be discussed!
When I have multiple splits, and I do
:WorkspacesOpen [name]
in one of the splits, it changescwd
for all the splits, which is not desired, because semantically it should only do:lcd
instead of:cd
.Another bug is: if I cancel in telescope's popup window,
cwd
still changes, which is also not desired.