vimr
vimr copied to clipboard
Fix lcd/tcd
The following code path effectively turned any lcd or tcd into a cd.
lcd(ortcd) from nvim- handled by
DirChangedautocmd from NvimView.swift - fires
.dirchangedevent - handled by autoCommandEvent() in NvimView+UiBridge.swift
- calls cwdChanged() in NvimView+UiBridge.swift
- fires event
.cwdChanged - handled by
subscribeToNvimViewEvents()in MainWindow.swift - calls
cwdChanged()in MainWindow+Delegates.swift - fires even
.cd - handled by
typedReduce()in MainWindowReducer.swift - sets
state.cwdToSet - state change handled by
subscribeToStateChange()in MainWindow.swift - sets
self.neoVimView.cwd - handled by
var cwdsetter in NvimView.swift - calls
nvimSetCurrentDir()which sets global nvim cwd
This chain had to be broken somewhere. The state.cwdToSet line in MainWindowReducer.swift has a comment that it's set to "ensure updates also send to tab bar". To fix we remove that line and instead set the tab bar cwd earlier in the cahin in NvimView+UiBridge.swift.
I don't normally use the custom tab bar or file browser, but have tested them with this change and they seem to still work well.
Fixes #1027
This is fantastic and was also on my list to look at. Thanks!
There was some confusion due to lcd not working right which caused me to make the change. I think it related to the browser not getting updated on tab switch.