mirror of
https://github.com/qvacua/vimr.git
synced 2024-12-26 07:13:24 +03:00
GH-666 Add some convenience methods
This commit is contained in:
parent
086d6cad3c
commit
261d020385
@ -56,7 +56,7 @@ extension MainWindow {
|
|||||||
func bufferListChanged() {
|
func bufferListChanged() {
|
||||||
self.neoVimView
|
self.neoVimView
|
||||||
.allBuffers()
|
.allBuffers()
|
||||||
.subscribe(onSuccess: { buffers in
|
.value(onSuccess: { buffers in
|
||||||
self.emit(self.uuidAction(for: .setBufferList(buffers.filter { $0.isListed })))
|
self.emit(self.uuidAction(for: .setBufferList(buffers.filter { $0.isListed })))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -72,7 +72,7 @@ extension MainWindow {
|
|||||||
func tabChanged() {
|
func tabChanged() {
|
||||||
self.neoVimView
|
self.neoVimView
|
||||||
.currentBuffer()
|
.currentBuffer()
|
||||||
.subscribe(onSuccess: {
|
.value(onSuccess: {
|
||||||
self.newCurrentBuffer($0)
|
self.newCurrentBuffer($0)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -123,11 +123,11 @@ extension MainWindow {
|
|||||||
|
|
||||||
func windowDidBecomeMain(_ notification: Notification) {
|
func windowDidBecomeMain(_ notification: Notification) {
|
||||||
self.emit(self.uuidAction(for: .becomeKey(isFullScreen: self.window.styleMask.contains(.fullScreen))))
|
self.emit(self.uuidAction(for: .becomeKey(isFullScreen: self.window.styleMask.contains(.fullScreen))))
|
||||||
self.neoVimView.didBecomeMain().subscribe()
|
self.neoVimView.didBecomeMain().trigger()
|
||||||
}
|
}
|
||||||
|
|
||||||
func windowDidResignMain(_ notification: Notification) {
|
func windowDidResignMain(_ notification: Notification) {
|
||||||
self.neoVimView.didResignMain().subscribe()
|
self.neoVimView.didResignMain().trigger()
|
||||||
}
|
}
|
||||||
|
|
||||||
func windowDidMove(_ notification: Notification) {
|
func windowDidMove(_ notification: Notification) {
|
||||||
@ -144,7 +144,7 @@ extension MainWindow {
|
|||||||
|
|
||||||
func windowShouldClose(_: NSWindow) -> Bool {
|
func windowShouldClose(_: NSWindow) -> Bool {
|
||||||
guard (self.neoVimView.isCurrentBufferDirty().syncValue() ?? false) else {
|
guard (self.neoVimView.isCurrentBufferDirty().syncValue() ?? false) else {
|
||||||
self.neoVimView.closeCurrentTab().subscribe()
|
self.neoVimView.closeCurrentTab().trigger()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ extension MainWindow {
|
|||||||
discardAndCloseButton.keyEquivalent = "d"
|
discardAndCloseButton.keyEquivalent = "d"
|
||||||
alert.beginSheetModal(for: self.window, completionHandler: { response in
|
alert.beginSheetModal(for: self.window, completionHandler: { response in
|
||||||
if response == .alertSecondButtonReturn {
|
if response == .alertSecondButtonReturn {
|
||||||
self.neoVimView.closeCurrentTabWithoutSaving().subscribe()
|
self.neoVimView.closeCurrentTabWithoutSaving().trigger()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ class MainWindow: NSObject,
|
|||||||
|
|
||||||
return .empty()
|
return .empty()
|
||||||
}
|
}
|
||||||
.subscribe()
|
.trigger()
|
||||||
|
|
||||||
let usesTheme = state.appearance.usesTheme
|
let usesTheme = state.appearance.usesTheme
|
||||||
let themePrefChanged = state.appearance.usesTheme != self.usesTheme
|
let themePrefChanged = state.appearance.usesTheme != self.usesTheme
|
||||||
@ -362,7 +362,7 @@ class MainWindow: NSObject,
|
|||||||
|
|
||||||
return .empty()
|
return .empty()
|
||||||
}
|
}
|
||||||
.subscribe()
|
.trigger()
|
||||||
}
|
}
|
||||||
|
|
||||||
func uuidAction(for action: Action) -> UuidAction<Action> {
|
func uuidAction(for action: Action) -> UuidAction<Action> {
|
||||||
|
@ -50,6 +50,13 @@ extension PrimitiveSequence where Element == Never, TraitType == CompletableTrai
|
|||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func trigger(
|
||||||
|
onCompleted: (() -> Void)? = nil,
|
||||||
|
onError: ((Error) -> Void)? = nil
|
||||||
|
) {
|
||||||
|
self.subscribe(onCompleted: onCompleted, onError: onError)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension PrimitiveSequence where TraitType == SingleTrait {
|
extension PrimitiveSequence where TraitType == SingleTrait {
|
||||||
@ -65,6 +72,13 @@ extension PrimitiveSequence where TraitType == SingleTrait {
|
|||||||
.ignoreElements()
|
.ignoreElements()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func value(
|
||||||
|
onSuccess: ((Element) -> Void)? = nil,
|
||||||
|
onError: ((Error) -> Void)? = nil
|
||||||
|
) {
|
||||||
|
self.subscribe(onSuccess: onSuccess, onError: onError)
|
||||||
|
}
|
||||||
|
|
||||||
func syncValue() -> Element? {
|
func syncValue() -> Element? {
|
||||||
var trigger = false
|
var trigger = false
|
||||||
var value: Element?
|
var value: Element?
|
||||||
|
Loading…
Reference in New Issue
Block a user