Comments (8)
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
from workspaces.nvim.
I tried with global_cd = false
but it still changes globally, here is a screen shot.
pwd.mp4
from workspaces.nvim.
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
from workspaces.nvim.
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.
from workspaces.nvim.
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
- Open a split and then run
:WorkspaceOpen
from that new window - Make a new custom command (maybe
: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?
from workspaces.nvim.
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?
from workspaces.nvim.
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.
from workspaces.nvim.
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!
from workspaces.nvim.
Related Issues (20)
- Telescope integration HOT 2
- Pass the path to the 'open' hook HOT 4
- Consider not changing directories HOT 4
- [Feature proposal] Config workspaces folders HOT 5
- Looking for a maintainer
- Workspaces in `workspaces` file are not found HOT 2
- [Question] Usage of type field in the obtained list of workspaces HOT 5
- (Recipe) Automatically change workspace when changing buffers HOT 1
- add api arguments don't work as intended HOT 1
- [Bug] - `auto_open` setup property opening telescope with `modifiable` off HOT 2
- [Bug] Removing a workspace by name accidentally removes the workspace at the current directory HOT 1
- Add support for lsp workspace variable HOT 6
- WorkspaceListDirs is not functioning HOT 2
- Option auto_open failed to take effect HOT 5
- Rename problem HOT 3
- Keep_insert not working HOT 8
- Info notifications HOT 1
- Adding an MRU sort HOT 11
- Cannot find util.path.sep in default configuration HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from workspaces.nvim.