1
1
mirror of https://github.com/qvacua/vimr.git synced 2024-11-24 11:37:32 +03:00

GH-666 Make loggers framework global

This commit is contained in:
Tae Won Ha 2018-08-29 18:40:36 +02:00
parent 42c641335c
commit 625df1e665
10 changed files with 58 additions and 59 deletions

View File

@ -5,8 +5,6 @@
import Cocoa
// The definition can be found in NeoVimUiBridgeProtocol.h
struct CellAttributes: CustomStringConvertible, Equatable {
public static func ==(left: CellAttributes, right: CellAttributes) -> Bool {

View File

@ -1,7 +1,7 @@
//
// Created by Tae Won Ha on 25.08.18.
// Copyright (c) 2018 Tae Won Ha. All rights reserved.
//
/**
* Tae Won Ha - http://taewon.de - @hataewon
* See LICENSE
*/
import Cocoa

View File

@ -5,6 +5,16 @@
import Foundation
let stdoutLogger = LogContext.stdoutLogger(as: "NvimView")
let logger = LogContext.fileLogger(
as: "NvimView", with: URL(fileURLWithPath: "/tmp/nvv.log")
)
let bridgeLogger = LogContext.fileLogger(
as: "NvimView-Bridge",
with: URL(fileURLWithPath: "/tmp/nvv-bridge.log"),
shouldLogDebug: nil
)
class LogContext {
enum Level: String {
@ -114,9 +124,9 @@ class Logger {
func trace<T>(_ message: T,
file: String = #file, line: Int = #line, function: String = #function) {
#if LOG_TRACE
#if LOG_TRACE
self.log(message, level: .trace, file: file, line: line, function: function)
#endif
#endif
}
func error<T>(_ message: T,

View File

@ -150,7 +150,7 @@ extension NvimView {
}
public func quitNeoVimWithoutSaving() -> Completable {
self.bridgeLogger.mark()
bridgeLogger.mark()
return self.api
.command(command: "qa!")
.subscribeOn(self.scheduler)

View File

@ -190,9 +190,9 @@ extension NvimView {
)
else {
// GH-666: FIXME: correct error handling
self.logger.error("row: \(row), range: \(range): " +
"Could not get CellAttributes with ID " +
"\(cells.first?.attrId)")
logger.error("row: \(row), range: \(range): " +
"Could not get CellAttributes with ID " +
"\(cells.first?.attrId)")
return nil
}

View File

@ -78,13 +78,13 @@ extension NvimView {
// FIXME: handle when -> delete
if self.responds(to: aSelector) {
self.logger.debug("calling \(aSelector)")
logger.debug("calling \(aSelector)")
self.perform(aSelector, with: self)
self.keyDownDone = true
return
}
self.logger.debug("\(aSelector) not implemented, forwarding input to neovim")
logger.debug("\(aSelector) not implemented, forwarding input to neovim")
self.keyDownDone = false
}
@ -220,7 +220,7 @@ extension NvimView {
return result
}
self.logger.debug("\(#function): returning empty range")
logger.debug("\(#function): returning empty range")
return NSRange(location: NSNotFound, length: 0)
}

View File

@ -61,7 +61,7 @@ extension NvimView {
}
private func launchNeoVim(_ size: Size) {
self.logger.info("=== Starting neovim...")
logger.info("=== Starting neovim...")
let sockPath = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("vimr_\(self.uuid).sock").path
self.api.msgpackRawStream

View File

@ -15,7 +15,7 @@ extension NvimView {
return
}
self.bridgeLogger.debug("\(array[0]) x \(array[1])")
bridgeLogger.debug("\(array[0]) x \(array[1])")
gui.async {
self.ugrid.resize(Size(width: array[0], height: array[1]))
self.markForRenderWholeView()
@ -23,7 +23,7 @@ extension NvimView {
}
func clear() {
self.bridgeLogger.mark()
bridgeLogger.mark()
gui.async {
self.grid.clear()
@ -37,14 +37,14 @@ extension NvimView {
return CursorModeShape(rawValue: UInt(rawValue))
}) else { return }
self.bridgeLogger.debug(name(of: mode))
bridgeLogger.debug(name(of: mode))
gui.async {
self.mode = mode
}
}
func scroll(_ value: MessagePackValue) {
// self.bridgeLogger.debug(count)
// bridgeLogger.debug(count)
//
// gui.async {
// self.grid.scroll(count)
@ -56,7 +56,7 @@ extension NvimView {
}
func unmark(_ value: MessagePackValue) {
// self.bridgeLogger.debug("\(row):\(column)")
// bridgeLogger.debug("\(row):\(column)")
//
// gui.async {
// let position = Position(row: row, column: column)
@ -67,7 +67,7 @@ extension NvimView {
}
func flush(_ renderData: [MessagePackValue]) {
self.bridgeLogger.hr()
bridgeLogger.hr()
gui.async {
renderData.forEach { value in
@ -103,12 +103,12 @@ extension NvimView {
func setTitle(with value: MessagePackValue) {
guard let title = value.stringValue else { return }
self.bridgeLogger.debug(title)
bridgeLogger.debug(title)
self.eventsSubject.onNext(.setTitle(title))
}
func stop() {
self.bridgeLogger.hr()
bridgeLogger.hr()
try? self.api
.stop()
.andThen(self.bridge.quit())
@ -128,7 +128,7 @@ extension NvimView {
let event = NvimAutoCommandEvent(rawValue: array[0]) else { return }
let bufferHandle = array[1]
self.bridgeLogger.debug("\(event) -> \(bufferHandle)")
bridgeLogger.debug("\(event) -> \(bufferHandle)")
if event == .bufwinenter || event == .bufwinleave {
self.bufferListChanged()
@ -148,12 +148,12 @@ extension NvimView {
}
func ipcBecameInvalid(_ reason: String) {
self.bridgeLogger.debug(reason)
bridgeLogger.debug(reason)
self.eventsSubject.onNext(.ipcBecameInvalid(reason))
self.eventsSubject.onCompleted()
self.bridgeLogger.error("Force-closing due to IPC error.")
bridgeLogger.error("Force-closing due to IPC error.")
try? self.api
.stop()
.andThen(self.bridge.forceQuit())
@ -163,7 +163,7 @@ extension NvimView {
private func doRawLine(data: [MessagePackValue]) {
guard data.count == 7 else {
self.stdoutLogger.error(
stdoutLogger.error(
"Data has wrong number of elements: \(data.count) instead of 7"
)
return
@ -178,11 +178,11 @@ extension NvimView {
let attrIds = data[6].arrayValue?.compactMap({ $0.intValue })
else {
self.stdoutLogger.error("Values could not be read from: \(data)")
stdoutLogger.error("Values could not be read from: \(data)")
return
}
self.bridgeLogger.trace(
bridgeLogger.trace(
"row: \(row), startCol: \(startCol), endCol: \(endCol), " +
"clearCol: \(clearCol), clearAttr: \(clearAttr), " +
"chunk: \(chunk), attrIds: \(attrIds)"
@ -222,7 +222,7 @@ extension NvimView {
}
private func doGoto(position: Position) {
// self.bridgeLogger.debug(position)
// bridgeLogger.debug(position)
self.markForRender(cellPosition: self.grid.position)
self.grid.goto(position)
@ -233,7 +233,7 @@ extension NvimView {
extension NvimView {
func bell() {
self.bridgeLogger.mark()
bridgeLogger.mark()
NSSound.beep()
}
@ -241,7 +241,7 @@ extension NvimView {
func cwdChanged(_ value: MessagePackValue) {
guard let cwd = value.stringValue else { return }
self.bridgeLogger.debug(cwd)
bridgeLogger.debug(cwd)
self._cwd = URL(fileURLWithPath: cwd)
self.eventsSubject.onNext(.cwdChanged)
}
@ -250,7 +250,7 @@ extension NvimView {
guard let values = MessagePackUtils.array(from: value, ofSize: 5, conversion: { $0.intValue }) else { return }
let theme = Theme(values)
self.bridgeLogger.debug(theme)
bridgeLogger.debug(theme)
gui.async {
self.theme = theme
@ -265,7 +265,7 @@ extension NvimView {
return
}
self.bridgeLogger.trace(values)
bridgeLogger.trace(values)
let attrs = CellAttributes(
fontTrait: [],
@ -288,7 +288,7 @@ extension NvimView {
func setDirty(with value: MessagePackValue) {
guard let dirty = value.boolValue else { return }
self.bridgeLogger.debug(dirty)
bridgeLogger.debug(dirty)
self.eventsSubject.onNext(.setDirtyStatus(dirty))
}
@ -304,7 +304,7 @@ extension NvimView {
let reverse = array[5].boolValue
else {
self.bridgeLogger.error("Could not get highlight attributes from " +
bridgeLogger.error("Could not get highlight attributes from " +
"\(value)")
return
}
@ -318,7 +318,7 @@ extension NvimView {
reverse: reverse
)
self.bridgeLogger.trace("\(id) -> \(attrs)")
bridgeLogger.trace("\(id) -> \(attrs)")
gui.async {
self.cellAttributesCollection.set(attributes: attrs, for: id)
@ -326,31 +326,31 @@ extension NvimView {
}
func updateMenu() {
self.bridgeLogger.mark()
bridgeLogger.mark()
}
func busyStart() {
self.bridgeLogger.mark()
bridgeLogger.mark()
}
func busyStop() {
self.bridgeLogger.mark()
bridgeLogger.mark()
}
func mouseOn() {
self.bridgeLogger.mark()
bridgeLogger.mark()
}
func mouseOff() {
self.bridgeLogger.mark()
bridgeLogger.mark()
}
func visualBell() {
self.bridgeLogger.mark()
bridgeLogger.mark()
}
func suspend() {
self.bridgeLogger.mark()
bridgeLogger.mark()
}
}

View File

@ -219,13 +219,13 @@ public class NvimView: NSView,
switch msg {
case .ready:
self.logger.info("Nvim is ready")
logger.info("Nvim is ready")
case .initVimError:
self.eventsSubject.onNext(.initVimError)
case .unknown:
self.logger.error("Unknown message from NvimServer")
logger.error("Unknown message from NvimServer")
case let .resize(value):
self.resize(value)
@ -315,9 +315,9 @@ public class NvimView: NSView,
}
@IBAction public func debug1(_ sender: Any?) {
self.logger.debug("DEBUG 1 - Start")
logger.debug("DEBUG 1 - Start")
// noop
self.logger.debug("DEBUG 1 - End")
logger.debug("DEBUG 1 - End")
}
// MARK: - Internal
@ -333,11 +333,6 @@ public class NvimView: NSView,
}
}
let stdoutLogger = LogContext.stdoutLogger(as: NvimView.self)
let logger = LogContext.fileLogger(as: NvimView.self, with: URL(fileURLWithPath: "/tmp/nvv.log"))
let bridgeLogger = LogContext.fileLogger(as: NvimView.self,
with: URL(fileURLWithPath: "/tmp/nvv-bridge.log"),
shouldLogDebug: nil)
let bridge: UiBridge
let api = RxNeovimApi.Api()
let grid = Grid()

View File

@ -13,10 +13,6 @@ struct UCell {
class UGrid {
private let logger = LogContext.stdoutLogger(
as: String(reflecting: UGrid.self)
)
private(set) var size = Size.zero
private(set) var posision = Position.zero
@ -65,7 +61,7 @@ class UGrid {
}
func resize(_ size: Size) {
self.logger.debug(size)
logger.debug(size)
self.size = size
self.posision = .zero