diff --git a/.swiftlint.yml b/.swiftlint.yml index 73be131d..1e3eefbc 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -7,6 +7,7 @@ disabled_rules: - implicit_getter - redundant_optional_initialization - large_tuple + - function_body_length opt_in_rules: - control_statement @@ -40,13 +41,9 @@ identifier_name: line_length: 200 -function_body_length: - - 80 - - 100 - type_body_length: - - 450 - - 600 + - 500 + - 700 file_length: - 1200 diff --git a/Kit/Widgets/BarChart.swift b/Kit/Widgets/BarChart.swift index e8ba5791..b65e2f7c 100644 --- a/Kit/Widgets/BarChart.swift +++ b/Kit/Widgets/BarChart.swift @@ -89,7 +89,6 @@ public class BarChart: WidgetWrapper { fatalError("init(coder:) has not been implemented") } - // swiftlint:disable function_body_length public override func draw(_ dirtyRect: NSRect) { super.draw(dirtyRect) diff --git a/Kit/Widgets/Battery.swift b/Kit/Widgets/Battery.swift index 7e5c854f..83825250 100644 --- a/Kit/Widgets/Battery.swift +++ b/Kit/Widgets/Battery.swift @@ -8,7 +8,6 @@ // // Copyright © 2020 Serhiy Mytrovtsiy. All rights reserved. // -// swiftlint:disable function_body_length import Cocoa diff --git a/Kit/Widgets/Speed.swift b/Kit/Widgets/Speed.swift index 16f27c9a..b982ce62 100644 --- a/Kit/Widgets/Speed.swift +++ b/Kit/Widgets/Speed.swift @@ -499,7 +499,7 @@ public class SpeedWidget: WidgetWrapper { Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_value", value: self.valueState) self.display() - if !self.valueState && self.icon == .none { + if !self.valueState && self.icon.isEmpty { NotificationCenter.default.post(name: .toggleModule, object: nil, userInfo: ["module": self.title, "state": false]) self.state = false } else if !self.state { diff --git a/Kit/helpers.swift b/Kit/helpers.swift index 9563d711..dfa3eaa1 100644 --- a/Kit/helpers.swift +++ b/Kit/helpers.swift @@ -728,8 +728,7 @@ public extension UnitTemperature { } } -// swiftlint:disable identifier_name -public func Temperature(_ value: Double, defaultUnit: UnitTemperature = UnitTemperature.celsius, fractionDigits: Int = 0) -> String { +public func temperature(_ value: Double, defaultUnit: UnitTemperature = UnitTemperature.celsius, fractionDigits: Int = 0) -> String { let formatter = MeasurementFormatter() formatter.locale = Locale.init(identifier: "en_US") formatter.numberFormatter.maximumFractionDigits = fractionDigits diff --git a/Kit/module/module.swift b/Kit/module/module.swift index 3d692a93..4651fa8d 100644 --- a/Kit/module/module.swift +++ b/Kit/module/module.swift @@ -139,6 +139,7 @@ open class Module: Module_p { // swiftlint:disable empty_count if self.config.widgetsConfig.count != 0 { + // swiftlint:enable empty_count self.initWidgets() } else { debug("Module started without widget", log: self.log) diff --git a/Kit/module/reader.swift b/Kit/module/reader.swift index a928aa0d..886a66ac 100644 --- a/Kit/module/reader.swift +++ b/Kit/module/reader.swift @@ -103,7 +103,7 @@ open class Reader: NSObject, ReaderInternal_p { self.ready = true self.readyCallback() debug("Reader is ready", log: self.log) - } else if self.value == nil && value != nil { + } else if self.value == nil && value == nil { if self.nilCallbackCounter > 5 { error("Callback receive nil value more than 5 times. Please check this reader!", log: self.log) self.stop() diff --git a/Kit/module/widget.swift b/Kit/module/widget.swift index 8d540df8..9bd52685 100644 --- a/Kit/module/widget.swift +++ b/Kit/module/widget.swift @@ -28,14 +28,12 @@ public enum widget_t: String { case state = "state" public func new(module: String, config: NSDictionary, defaultWidget: widget_t) -> Widget? { + guard let widgetConfig: NSDictionary = config[self.rawValue] as? NSDictionary else { return nil } + var image: NSImage? = nil var preview: widget_p? = nil var item: widget_p? = nil - guard let widgetConfig: NSDictionary = config[self.rawValue] as? NSDictionary else { - return nil - } - switch self { case .mini: preview = Mini(title: module, config: widgetConfig, preview: true) @@ -98,6 +96,8 @@ public enum widget_t: String { case is SensorsWidget: if module == "Sensors" { width = 25 + } else if module == "Clock" { + width = 114 } case is MemoryWidget: width = view.bounds.width + 8 + Constants.Widget.spacing*2 @@ -112,7 +112,6 @@ public enum widget_t: String { width: width - view.frame.origin.x, height: view.bounds.height ) - image = NSImage(data: view.dataWithPDF(inside: r)) } @@ -201,7 +200,7 @@ public class Widget { public var isActive: Bool { get { - return self.list.contains{ $0 == self.type } + self.list.contains{ $0 == self.type } } set { if newValue { @@ -216,11 +215,11 @@ public class Widget { public var sizeCallback: (() -> Void)? = nil public var log: NextLog { - return NextLog.shared.copy(category: self.module) + NextLog.shared.copy(category: self.module) } public var position: Int { get { - return Store.shared.int(key: "\(self.module)_\(self.type)_position", defaultValue: 0) + Store.shared.int(key: "\(self.module)_\(self.type)_position", defaultValue: 0) } set { Store.shared.set(key: "\(self.module)_\(self.type)_position", value: newValue) diff --git a/Kit/types.swift b/Kit/types.swift index efb57eb1..6540f80c 100644 --- a/Kit/types.swift +++ b/Kit/types.swift @@ -24,6 +24,7 @@ public struct ColorValue: Equatable { public static func ==(lhs: ColorValue, rhs: ColorValue) -> Bool { return lhs.value == rhs.value } + // swiftlint:enable operator_whitespace } public enum AppUpdateInterval: String { diff --git a/Modules/Battery/popup.swift b/Modules/Battery/popup.swift index 96b35145..5fe71352 100644 --- a/Modules/Battery/popup.swift +++ b/Modules/Battery/popup.swift @@ -315,7 +315,7 @@ internal class Popup: PopupWrapper { self.voltageField?.stringValue = "\(value.voltage.roundTo(decimalPlaces: 2)) V" let batteryPower = value.voltage * (Double(abs(value.amperage))/1000) self.batteryPowerField?.stringValue = "\(batteryPower.roundTo(decimalPlaces: 2)) W" - self.temperatureField?.stringValue = Temperature(value.temperature) + self.temperatureField?.stringValue = temperature(value.temperature) self.powerField?.stringValue = value.isBatteryPowered ? localizedString("Not connected") : "\(value.ACwatts) W" self.chargingStateField?.stringValue = value.isCharging ? localizedString("Yes") : localizedString("No") diff --git a/Modules/CPU/popup.swift b/Modules/CPU/popup.swift index f339193d..7c39cac6 100644 --- a/Modules/CPU/popup.swift +++ b/Modules/CPU/popup.swift @@ -396,7 +396,7 @@ internal class Popup: PopupWrapper { } self.temperatureCircle?.setValue(value) - self.temperatureCircle?.setText(Temperature(value)) + self.temperatureCircle?.setText(temperature(value)) self.initializedTemperature = true } }) diff --git a/Modules/CPU/readers.swift b/Modules/CPU/readers.swift index 6dc319c5..75b2dc75 100644 --- a/Modules/CPU/readers.swift +++ b/Modules/CPU/readers.swift @@ -283,7 +283,6 @@ public class TemperatureReader: Reader { } } -// swiftlint:disable identifier_name public class FrequencyReader: Reader { private typealias PGSample = UInt64 private typealias UDouble = UnsafeMutablePointer @@ -296,11 +295,11 @@ public class FrequencyReader: Reader { private var bundle: CFBundle? = nil - private var PG_Initialize: PG_InitializePointerFunction? = nil - private var PG_Shutdown: PG_ShutdownPointerFunction? = nil - private var PG_ReadSample: PG_ReadSamplePointerFunction? = nil - private var PGSample_GetIAFrequency: PGSample_GetIAFrequencyPointerFunction? = nil - private var PGSample_Release: PGSample_ReleasePointerFunction? = nil + private var pgIntialize: PG_InitializePointerFunction? = nil + private var pgShutdown: PG_ShutdownPointerFunction? = nil + private var pgReadSample: PG_ReadSamplePointerFunction? = nil + private var pgSampleGetIAFrequency: PGSample_GetIAFrequencyPointerFunction? = nil + private var pgSampleRelease: PGSample_ReleasePointerFunction? = nil private var sample: PGSample = 0 private var reconnectAttempt: Int = 0 @@ -328,34 +327,34 @@ public class FrequencyReader: Reader { return } - guard let PG_InitializePointer = CFBundleGetFunctionPointerForName(self.bundle, "PG_Initialize" as CFString) else { + guard let pgIntialize = CFBundleGetFunctionPointerForName(self.bundle, "PG_Initialize" as CFString) else { error("failed to find PG_Initialize", log: self.log) return } - guard let PG_ShutdownPointer = CFBundleGetFunctionPointerForName(self.bundle, "PG_Shutdown" as CFString) else { + guard let pgShutdown = CFBundleGetFunctionPointerForName(self.bundle, "PG_Shutdown" as CFString) else { error("failed to find PG_Shutdown", log: self.log) return } - guard let PG_ReadSamplePointer = CFBundleGetFunctionPointerForName(self.bundle, "PG_ReadSample" as CFString) else { + guard let pgReadSample = CFBundleGetFunctionPointerForName(self.bundle, "PG_ReadSample" as CFString) else { error("failed to find PG_ReadSample", log: self.log) return } - guard let PGSample_GetIAFrequencyPointer = CFBundleGetFunctionPointerForName(self.bundle, "PGSample_GetIAFrequency" as CFString) else { + guard let pgSampleGetIAFrequency = CFBundleGetFunctionPointerForName(self.bundle, "PGSample_GetIAFrequency" as CFString) else { error("failed to find PGSample_GetIAFrequency", log: self.log) return } - guard let PGSample_ReleasePointer = CFBundleGetFunctionPointerForName(self.bundle, "PGSample_Release" as CFString) else { + guard let pgSampleRelease = CFBundleGetFunctionPointerForName(self.bundle, "PGSample_Release" as CFString) else { error("failed to find PGSample_Release", log: self.log) return } - self.PG_Initialize = unsafeBitCast(PG_InitializePointer, to: PG_InitializePointerFunction.self) - self.PG_Shutdown = unsafeBitCast(PG_ShutdownPointer, to: PG_ShutdownPointerFunction.self) - self.PG_ReadSample = unsafeBitCast(PG_ReadSamplePointer, to: PG_ReadSamplePointerFunction.self) - self.PGSample_GetIAFrequency = unsafeBitCast(PGSample_GetIAFrequencyPointer, to: PGSample_GetIAFrequencyPointerFunction.self) - self.PGSample_Release = unsafeBitCast(PGSample_ReleasePointer, to: PGSample_ReleasePointerFunction.self) + self.pgIntialize = unsafeBitCast(pgIntialize, to: PG_InitializePointerFunction.self) + self.pgShutdown = unsafeBitCast(pgShutdown, to: PG_ShutdownPointerFunction.self) + self.pgReadSample = unsafeBitCast(pgReadSample, to: PG_ReadSamplePointerFunction.self) + self.pgSampleGetIAFrequency = unsafeBitCast(pgSampleGetIAFrequency, to: PGSample_GetIAFrequencyPointerFunction.self) + self.pgSampleRelease = unsafeBitCast(pgSampleRelease, to: PGSample_ReleasePointerFunction.self) - if let initialize = self.PG_Initialize { + if let initialize = self.pgIntialize { if !initialize() { error("IPG initialization failed", log: self.log) return @@ -370,14 +369,14 @@ public class FrequencyReader: Reader { } public override func terminate() { - if let shutdown = self.PG_Shutdown { + if let shutdown = self.pgShutdown { if !shutdown() { error("IPG shutdown failed", log: self.log) return } } - if let release = self.PGSample_Release { + if let release = self.pgSampleRelease { if self.sample != 0 { _ = release(self.sample) return @@ -392,7 +391,7 @@ public class FrequencyReader: Reader { self.sample = 0 self.terminate() - if let initialize = self.PG_Initialize { + if let initialize = self.pgIntialize { if !initialize() { error("IPG initialization failed", log: self.log) return @@ -403,13 +402,13 @@ public class FrequencyReader: Reader { } public override func read() { - if !self.isEnabled || self.PG_ReadSample == nil || self.PGSample_GetIAFrequency == nil || self.PGSample_Release == nil { + if !self.isEnabled || self.pgReadSample == nil || self.pgSampleGetIAFrequency == nil || self.pgSampleRelease == nil { return } // first sample initlialization if self.sample == 0 { - if !self.PG_ReadSample!(0, &self.sample) { + if !self.pgReadSample!(0, &self.sample) { error("read self.sample failed", log: self.log) } return @@ -420,20 +419,20 @@ public class FrequencyReader: Reader { var min: Double = 0 var max: Double = 0 - if !self.PG_ReadSample!(0, &local) { + if !self.pgReadSample!(0, &local) { self.reconnect() error("read local sample failed", log: self.log) return } defer { - if !self.PGSample_Release!(self.sample) { + if !self.pgSampleRelease!(self.sample) { error("release self.sample failed", log: self.log) } self.sample = local } - if !self.PGSample_GetIAFrequency!(self.sample, local, &value, &min, &max) { + if !self.pgSampleGetIAFrequency!(self.sample, local, &value, &min, &max) { error("read frequency failed", log: self.log) return } diff --git a/Modules/Disk/main.swift b/Modules/Disk/main.swift index 36b3c847..370fe377 100644 --- a/Modules/Disk/main.swift +++ b/Modules/Disk/main.swift @@ -52,8 +52,9 @@ public class Disks { // swiftlint:disable empty_count public var isEmpty: Bool { - return self.count == 0 + self.count == 0 } + // swiftlint:enable empty_count public func first(where predicate: (drive) -> Bool) -> drive? { var result: drive? diff --git a/Modules/Disk/portal.swift b/Modules/Disk/portal.swift index c05c8b40..f6bc3dee 100644 --- a/Modules/Disk/portal.swift +++ b/Modules/Disk/portal.swift @@ -13,15 +13,13 @@ import Cocoa import Kit internal class Portal: NSStackView, Portal_p { - var name: String + internal var name: String { Disk.name } private var circle: PieChartView? = nil private var initialized: Bool = false - init(_ name: String) { - self.name = name - + init() { super.init(frame: NSRect.zero) self.wantsLayer = true diff --git a/Modules/GPU/popup.swift b/Modules/GPU/popup.swift index 1e466037..eca0c3a3 100644 --- a/Modules/GPU/popup.swift +++ b/Modules/GPU/popup.swift @@ -227,7 +227,7 @@ private class GPUView: NSStackView { if id == "temperature" { circle.setValue(value) - circle.setText(Temperature(value)) + circle.setText(temperature(value)) chart.suffix = UnitTemperature.current.symbol if self.temperatureChart == nil { @@ -365,7 +365,7 @@ private class GPUDetails: NSView { } if let value = value.temperature { - let arr = keyValueRow("\(localizedString("Temperature")):", Temperature(Double(value))) + let arr = keyValueRow("\(localizedString("Temperature")):", Kit.temperature(Double(value))) self.temperature = arr.last grid.addRow(with: arr) num += 1 @@ -419,7 +419,7 @@ private class GPUDetails: NSView { } if let value = gpu.temperature { - self.temperature?.stringValue = Temperature(Double(value)) + self.temperature?.stringValue = Kit.temperature(Double(value)) } if let value = gpu.utilization { self.utilization?.stringValue = "\(Int(value*100))%" diff --git a/Modules/GPU/reader.swift b/Modules/GPU/reader.swift index 47700c07..ac2a7774 100644 --- a/Modules/GPU/reader.swift +++ b/Modules/GPU/reader.swift @@ -66,7 +66,6 @@ internal class InfoReader: Reader { } } - // swiftlint:disable function_body_length public override func read() { guard let accelerators = fetchIOService(kIOAcceleratorClassName) else { return diff --git a/Modules/Net/popup.swift b/Modules/Net/popup.swift index 88485458..f2636525 100644 --- a/Modules/Net/popup.swift +++ b/Modules/Net/popup.swift @@ -57,14 +57,10 @@ internal class Popup: PopupWrapper { private var processes: [NetworkProcessView] = [] private var base: DataSizeBase { - get { - return DataSizeBase(rawValue: Store.shared.string(key: "\(self.title)_base", defaultValue: "byte")) ?? .byte - } + DataSizeBase(rawValue: Store.shared.string(key: "\(self.title)_base", defaultValue: "byte")) ?? .byte } private var numberOfProcesses: Int { - get { - return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) - } + Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } private var processesHeight: CGFloat { get { @@ -163,12 +159,10 @@ internal class Popup: PopupWrapper { container.layer?.backgroundColor = NSColor.lightGray.withAlphaComponent(0.1).cgColor container.layer?.cornerRadius = 3 - let chart = NetworkChartView(frame: NSRect( - x: 0, - y: 1, - width: container.frame.width, - height: container.frame.height - 2 - ), num: 120, outColor: self.uploadColor, inColor: self.downloadColor) + let chart = NetworkChartView( + frame: NSRect(x: 0, y: 1, width: container.frame.width, height: container.frame.height - 2), + num: 120, outColor: self.uploadColor, inColor: self.downloadColor + ) chart.base = self.base container.addSubview(chart) self.chart = chart @@ -409,7 +403,6 @@ internal class Popup: PopupWrapper { if let v = value { text = v ? "UP" : "DOWN" } - self.connectivityField?.stringValue = localizedString(text) self.connectionInitialized = true } diff --git a/Modules/Net/readers.swift b/Modules/Net/readers.swift index 204ee3b2..9c8dcf43 100644 --- a/Modules/Net/readers.swift +++ b/Modules/Net/readers.swift @@ -8,7 +8,6 @@ // // Copyright © 2020 Serhiy Mytrovtsiy. All rights reserved. // -// swiftlint:disable control_statement import Cocoa import Kit @@ -21,6 +20,7 @@ struct ipResponse: Decodable { var cc: String } +// swiftlint:disable control_statement extension CWPHYMode: CustomStringConvertible { public var description: String { switch(self) { @@ -76,6 +76,7 @@ extension CWChannelBand: CustomStringConvertible { switch(self) { case .band2GHz: return "2 GHz" case .band5GHz: return "5 GHz" + case .band6GHz: return "6 GHz" case .bandUnknown: return "unknown" @unknown default: return "unknown" } @@ -94,6 +95,7 @@ extension CWChannelWidth: CustomStringConvertible { } } } +// swiftlint:enable control_statement extension CWChannel { override public var description: String { diff --git a/Modules/Sensors/values.swift b/Modules/Sensors/values.swift index 990e62cf..fe24c70b 100644 --- a/Modules/Sensors/values.swift +++ b/Modules/Sensors/values.swift @@ -84,7 +84,7 @@ internal struct Sensor: Sensor_p { get { switch self.type { case .temperature: - return Temperature(value) + return temperature(value) case .voltage: let val = value >= 100 ? "\(Int(value))" : String(format: "%.3f", value) return "\(val)\(unit)" @@ -103,7 +103,7 @@ internal struct Sensor: Sensor_p { get { switch self.type { case .temperature: - return Temperature(value, fractionDigits: 1) + return temperature(value, fractionDigits: 1) case .voltage: let val = value >= 100 ? "\(Int(value))" : String(format: "%.3f", value) return "\(val)\(unit)" @@ -122,7 +122,7 @@ internal struct Sensor: Sensor_p { get { switch self.type { case .temperature: - return Temperature(value).replacingOccurrences(of: "C", with: "").replacingOccurrences(of: "F", with: "") + return temperature(value).replacingOccurrences(of: "C", with: "").replacingOccurrences(of: "F", with: "") case .voltage, .power, .energy, .current: let val = value >= 9.95 ? "\(Int(round(value)))" : String(format: "%.1f", value) return "\(val)\(unit)" diff --git a/SMC/smc.swift b/SMC/smc.swift index 3f4f72c2..4ae8efa4 100644 --- a/SMC/smc.swift +++ b/SMC/smc.swift @@ -32,15 +32,14 @@ internal enum SMCDataType: String { case FDS = "{fds" } -// swiftlint:disable identifier_name internal enum SMCKeys: UInt8 { - case KERNEL_INDEX = 2 - case READ_BYTES = 5 - case WRITE_BYTES = 6 - case READ_INDEX = 8 - case READ_KEYINFO = 9 - case READ_PLIMIT = 11 - case READ_VERS = 12 + case kernelIndex = 2 + case readBytes = 5 + case writeBytes = 6 + case readIndex = 8 + case readKeyInfo = 9 + case readPLimit = 11 + case readVers = 12 } public enum FanMode: Int { @@ -319,10 +318,10 @@ public class SMC { input = SMCKeyData_t() output = SMCKeyData_t() - input.data8 = SMCKeys.READ_INDEX.rawValue + input.data8 = SMCKeys.readIndex.rawValue input.data32 = UInt32(i) - result = call(SMCKeys.KERNEL_INDEX.rawValue, input: &input, output: &output) + result = call(SMCKeys.kernelIndex.rawValue, input: &input, output: &output) if result != kIOReturnSuccess { continue } @@ -480,9 +479,9 @@ public class SMC { var output = SMCKeyData_t() input.key = FourCharCode(fromString: value.pointee.key) - input.data8 = SMCKeys.READ_KEYINFO.rawValue + input.data8 = SMCKeys.readKeyInfo.rawValue - result = call(SMCKeys.KERNEL_INDEX.rawValue, input: &input, output: &output) + result = call(SMCKeys.kernelIndex.rawValue, input: &input, output: &output) if result != kIOReturnSuccess { return result } @@ -490,9 +489,9 @@ public class SMC { value.pointee.dataSize = UInt32(output.keyInfo.dataSize) value.pointee.dataType = output.keyInfo.dataType.toString() input.keyInfo.dataSize = output.keyInfo.dataSize - input.data8 = SMCKeys.READ_BYTES.rawValue + input.data8 = SMCKeys.readBytes.rawValue - result = call(SMCKeys.KERNEL_INDEX.rawValue, input: &input, output: &output) + result = call(SMCKeys.kernelIndex.rawValue, input: &input, output: &output) if result != kIOReturnSuccess { return result } @@ -507,7 +506,7 @@ public class SMC { var output = SMCKeyData_t() input.key = FourCharCode(fromString: value.key) - input.data8 = SMCKeys.WRITE_BYTES.rawValue + input.data8 = SMCKeys.writeBytes.rawValue input.keyInfo.dataSize = IOByteCount32(value.dataSize) input.bytes = (value.bytes[0], value.bytes[1], value.bytes[2], value.bytes[3], value.bytes[4], value.bytes[5], value.bytes[6], value.bytes[7], value.bytes[8], value.bytes[9], value.bytes[10], value.bytes[11], @@ -516,7 +515,7 @@ public class SMC { value.bytes[24], value.bytes[25], value.bytes[26], value.bytes[27], value.bytes[28], value.bytes[29], value.bytes[30], value.bytes[31]) - let result = self.call(SMCKeys.KERNEL_INDEX.rawValue, input: &input, output: &output) + let result = self.call(SMCKeys.kernelIndex.rawValue, input: &input, output: &output) if result != kIOReturnSuccess { return result }