mirror of
https://github.com/qvacua/vimr.git
synced 2024-12-25 23:02:35 +03:00
Pass through current buffer changed event to preview component
This commit is contained in:
parent
069adb5c6e
commit
9b377c9d34
@ -1436,9 +1436,7 @@ extension NeoVimView {
|
||||
}
|
||||
|
||||
if event == .BUFREADPOST || event == .BUFWRITEPOST {
|
||||
if self.currentBuffer()?.handle == bufferHandle {
|
||||
self.currentBufferChanged()
|
||||
}
|
||||
self.currentBufferChanged(bufferHandle)
|
||||
}
|
||||
}
|
||||
|
||||
@ -1455,9 +1453,17 @@ extension NeoVimView {
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate func currentBufferChanged() {
|
||||
fileprivate func currentBufferChanged(_ handle: Int) {
|
||||
DispatchUtils.gui {
|
||||
self.delegate?.currentBufferChanged()
|
||||
guard let currentBuffer = self.currentBuffer() else {
|
||||
return
|
||||
}
|
||||
|
||||
guard currentBuffer.handle == handle else {
|
||||
return
|
||||
}
|
||||
|
||||
self.delegate?.currentBufferChanged(currentBuffer)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ public protocol NeoVimViewDelegate: class {
|
||||
func set(dirtyStatus: Bool)
|
||||
func cwdChanged()
|
||||
func bufferListChanged()
|
||||
func currentBufferChanged()
|
||||
func currentBufferChanged(_ currentBuffer: NeoVimBuffer)
|
||||
|
||||
func ipcBecameInvalid(reason: String)
|
||||
}
|
||||
|
@ -1121,7 +1121,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then ]\n if [ -f \"SwiftNeoVim/NeoVimAutoCommandEvent.generated.h\" ]; then\n exit 0\n fi\nfi\n\nsed 's/^typedef enum auto_event/typedef NS_ENUM(NSUInteger, NeoVimAutoCommandEvent)/' <./neovim/build/include/auevents_enum.generated.h | sed 's/ event_T//' | sed 's/EVENT_/NeoVimAutoCommandEvent/' | sed 's/NUM_EVENTS/NumberOfAutoCommandEvents/' | sed -e '1s/^/@import Foundation;\\'$'\\n/' > SwiftNeoVim/NeoVimAutoCommandEvent.generated.h\n";
|
||||
shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n if [ -f \"SwiftNeoVim/NeoVimAutoCommandEvent.generated.h\" ]; then\n exit 0\n fi\nfi\n\nsed 's/^typedef enum auto_event/typedef NS_ENUM(NSUInteger, NeoVimAutoCommandEvent)/' <./neovim/build/include/auevents_enum.generated.h | sed 's/ event_T//' | sed 's/EVENT_/NeoVimAutoCommandEvent/' | sed 's/NUM_EVENTS/NumberOfAutoCommandEvents/' | sed -e '1s/^/@import Foundation;\\'$'\\n/' > SwiftNeoVim/NeoVimAutoCommandEvent.generated.h\n";
|
||||
};
|
||||
4BBA71F11D319E0900E16612 /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
|
@ -15,6 +15,8 @@ enum MainWindowAction {
|
||||
case changeBufferList(mainWindow: MainWindowComponent, buffers: [NeoVimBuffer])
|
||||
case changeFileBrowserSelection(mainWindow: MainWindowComponent, url: URL)
|
||||
case close(mainWindow: MainWindowComponent, mainWindowPrefData: MainWindowPrefData)
|
||||
|
||||
case currentBufferChanged(mainWindow: MainWindowComponent, buffer: NeoVimBuffer)
|
||||
}
|
||||
|
||||
struct MainWindowPrefData: StandardPrefData {
|
||||
@ -516,8 +518,8 @@ extension MainWindowComponent {
|
||||
self.publish(event: MainWindowAction.changeBufferList(mainWindow: self, buffers: buffers))
|
||||
}
|
||||
|
||||
func currentBufferChanged() {
|
||||
NSLog("current buffer changed!!!")
|
||||
func currentBufferChanged(_ currentBuffer: NeoVimBuffer) {
|
||||
self.publish(event: MainWindowAction.currentBufferChanged(mainWindow: self, buffer: currentBuffer))
|
||||
}
|
||||
|
||||
func ipcBecameInvalid(reason: String) {
|
||||
|
@ -49,7 +49,7 @@ class MainWindowManager: StandardFlow {
|
||||
case let .close(mainWindow, mainWindowPrefData):
|
||||
self.close(mainWindow, prefData: mainWindowPrefData)
|
||||
|
||||
case .changeCwd, .changeBufferList, .changeFileBrowserSelection:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
})
|
||||
|
@ -50,6 +50,19 @@ class PreviewComponent: ViewComponent {
|
||||
}
|
||||
|
||||
override func subscription(source: Observable<Any>) -> Disposable {
|
||||
return Disposables.create()
|
||||
return source
|
||||
.filter { $0 is MainWindowAction }
|
||||
.map { $0 as! MainWindowAction }
|
||||
.subscribe(onNext: { action in
|
||||
switch action {
|
||||
|
||||
case let .currentBufferChanged(mainWindow, currentBuffer):
|
||||
NSLog("\(currentBuffer)")
|
||||
|
||||
default:
|
||||
return
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user