chore: align lint/format configs with peekaboo defaults
This commit is contained in:
56
.swiftformat
56
.swiftformat
@@ -1,11 +1,51 @@
|
|||||||
--swiftversion 5.10
|
# SwiftFormat configuration adapted from Peekaboo defaults (Swift 6 friendly)
|
||||||
|
|
||||||
|
--swiftversion 6.2
|
||||||
|
|
||||||
|
# Self handling
|
||||||
|
--self insert
|
||||||
|
--selfrequired
|
||||||
|
|
||||||
|
# Imports / extensions
|
||||||
|
--importgrouping testable-bottom
|
||||||
|
--extensionacl on-declarations
|
||||||
|
|
||||||
|
# Indentation
|
||||||
--indent 4
|
--indent 4
|
||||||
--decimalgrouping none
|
--indentcase false
|
||||||
--hexgrouping none
|
--ifdef no-indent
|
||||||
--wraparguments after-first
|
--xcodeindentation enabled
|
||||||
--wrapcollections before-first
|
|
||||||
|
# Line breaks
|
||||||
|
--linebreaks lf
|
||||||
|
--maxwidth 120
|
||||||
|
|
||||||
|
# Whitespace
|
||||||
--trimwhitespace always
|
--trimwhitespace always
|
||||||
|
--emptybraces no-space
|
||||||
|
--nospaceoperators ...,..<
|
||||||
|
--ranges no-space
|
||||||
|
--someAny true
|
||||||
|
--voidtype void
|
||||||
|
|
||||||
|
# Wrapping
|
||||||
|
--wraparguments before-first
|
||||||
|
--wrapparameters before-first
|
||||||
|
--wrapcollections before-first
|
||||||
|
--closingparen same-line
|
||||||
|
|
||||||
|
# Organization
|
||||||
|
--organizetypes class,struct,enum,extension
|
||||||
|
--extensionmark "MARK: - %t + %p"
|
||||||
|
--marktypes always
|
||||||
|
--markextensions always
|
||||||
|
--structthreshold 0
|
||||||
|
--enumthreshold 0
|
||||||
|
|
||||||
|
# Other
|
||||||
--stripunusedargs closure-only
|
--stripunusedargs closure-only
|
||||||
--self init-only
|
--header ignore
|
||||||
--disable redundantSelf
|
--allman false
|
||||||
--enable wrapMultilineStatementBraces
|
|
||||||
|
# Exclusions
|
||||||
|
--exclude .build,.swiftpm,DerivedData,node_modules,dist,coverage,xcuserdata
|
||||||
|
|||||||
140
.swiftlint.yml
140
.swiftlint.yml
@@ -1,20 +1,142 @@
|
|||||||
|
# SwiftLint configuration adapted from Peekaboo defaults (Swift 6 friendly)
|
||||||
|
|
||||||
included:
|
included:
|
||||||
- apps/macos/Sources
|
- apps/macos/Sources
|
||||||
|
|
||||||
excluded:
|
excluded:
|
||||||
- apps/macos/Tests
|
- .build
|
||||||
|
- DerivedData
|
||||||
|
- "**/.build"
|
||||||
|
- "**/.swiftpm"
|
||||||
|
- "**/DerivedData"
|
||||||
|
- "**/Generated"
|
||||||
|
- "**/Resources"
|
||||||
|
- "**/Package.swift"
|
||||||
|
- "**/Tests/Resources"
|
||||||
|
- node_modules
|
||||||
|
- dist
|
||||||
|
- coverage
|
||||||
|
- "*.playground"
|
||||||
|
|
||||||
disabled_rules:
|
analyzer_rules:
|
||||||
- trailing_whitespace
|
- unused_declaration
|
||||||
- todo
|
- unused_import
|
||||||
- line_length
|
|
||||||
- identifier_name
|
|
||||||
- type_body_length
|
|
||||||
- file_length
|
|
||||||
|
|
||||||
opt_in_rules:
|
opt_in_rules:
|
||||||
|
- array_init
|
||||||
|
- closure_spacing
|
||||||
|
- contains_over_first_not_nil
|
||||||
|
- empty_count
|
||||||
|
- empty_string
|
||||||
|
- explicit_init
|
||||||
|
- fallthrough
|
||||||
|
- fatal_error_message
|
||||||
|
- first_where
|
||||||
|
- joined_default_parameter
|
||||||
|
- last_where
|
||||||
|
- literal_expression_end_indentation
|
||||||
|
- multiline_arguments
|
||||||
|
- multiline_parameters
|
||||||
|
- operator_usage_whitespace
|
||||||
|
- overridden_super_call
|
||||||
|
- pattern_matching_keywords
|
||||||
|
- private_outlet
|
||||||
|
- prohibited_super_call
|
||||||
|
- redundant_nil_coalescing
|
||||||
|
- sorted_first_last
|
||||||
|
- switch_case_alignment
|
||||||
|
- unneeded_parentheses_in_closure_argument
|
||||||
|
- vertical_parameter_alignment_on_call
|
||||||
|
|
||||||
|
disabled_rules:
|
||||||
|
# SwiftFormat handles these
|
||||||
|
- trailing_whitespace
|
||||||
|
- trailing_newline
|
||||||
|
- trailing_comma
|
||||||
|
- vertical_whitespace
|
||||||
|
- indentation_width
|
||||||
|
|
||||||
|
# Style exclusions
|
||||||
- explicit_self
|
- explicit_self
|
||||||
- implicit_return
|
- identifier_name
|
||||||
|
- file_header
|
||||||
|
- explicit_top_level_acl
|
||||||
|
- explicit_acl
|
||||||
|
- explicit_type_interface
|
||||||
|
- missing_docs
|
||||||
|
- required_deinit
|
||||||
|
- prefer_nimble
|
||||||
|
- quick_discouraged_call
|
||||||
|
- quick_discouraged_focused_test
|
||||||
|
- quick_discouraged_pending_test
|
||||||
|
- anonymous_argument_in_multiline_closure
|
||||||
|
- no_extension_access_modifier
|
||||||
|
- no_grouping_extension
|
||||||
|
- switch_case_on_newline
|
||||||
|
- strict_fileprivate
|
||||||
|
- extension_access_modifier
|
||||||
|
- convenience_type
|
||||||
|
- no_magic_numbers
|
||||||
|
- one_declaration_per_file
|
||||||
- vertical_whitespace_between_cases
|
- vertical_whitespace_between_cases
|
||||||
|
- vertical_whitespace_closing_braces
|
||||||
|
- superfluous_else
|
||||||
|
- number_separator
|
||||||
|
- prefixed_toplevel_constant
|
||||||
|
- opening_brace
|
||||||
|
- trailing_closure
|
||||||
|
- contrasted_opening_brace
|
||||||
|
- sorted_imports
|
||||||
|
- redundant_type_annotation
|
||||||
|
- shorthand_optional_binding
|
||||||
|
- untyped_error_in_catch
|
||||||
|
- file_name
|
||||||
|
- todo
|
||||||
|
|
||||||
|
force_cast: warning
|
||||||
|
force_try: warning
|
||||||
|
|
||||||
|
type_name:
|
||||||
|
min_length:
|
||||||
|
warning: 2
|
||||||
|
error: 1
|
||||||
|
max_length:
|
||||||
|
warning: 60
|
||||||
|
error: 80
|
||||||
|
|
||||||
|
function_body_length:
|
||||||
|
warning: 150
|
||||||
|
error: 300
|
||||||
|
|
||||||
|
file_length:
|
||||||
|
warning: 1500
|
||||||
|
error: 2500
|
||||||
|
ignore_comment_only_lines: true
|
||||||
|
|
||||||
|
type_body_length:
|
||||||
|
warning: 800
|
||||||
|
error: 1200
|
||||||
|
|
||||||
|
cyclomatic_complexity:
|
||||||
|
warning: 20
|
||||||
|
error: 120
|
||||||
|
|
||||||
|
large_tuple:
|
||||||
|
warning: 4
|
||||||
|
error: 5
|
||||||
|
|
||||||
|
nesting:
|
||||||
|
type_level:
|
||||||
|
warning: 4
|
||||||
|
error: 6
|
||||||
|
function_level:
|
||||||
|
warning: 5
|
||||||
|
error: 7
|
||||||
|
|
||||||
|
line_length:
|
||||||
|
warning: 120
|
||||||
|
error: 250
|
||||||
|
ignores_comments: true
|
||||||
|
ignores_urls: true
|
||||||
|
|
||||||
reporter: "xcode"
|
reporter: "xcode"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,10 @@ struct ClawdisCLI {
|
|||||||
do {
|
do {
|
||||||
let request = try parseCommandLine()
|
let request = try parseCommandLine()
|
||||||
let response = try await send(request: request)
|
let response = try await send(request: request)
|
||||||
let payloadString: String? = if let payload = response.payload, let text = String(data: payload, encoding: .utf8) {
|
let payloadString: String? = if let payload = response.payload, let text = String(
|
||||||
|
data: payload,
|
||||||
|
encoding: .utf8)
|
||||||
|
{
|
||||||
text
|
text
|
||||||
} else {
|
} else {
|
||||||
nil
|
nil
|
||||||
@@ -22,7 +25,7 @@ struct ClawdisCLI {
|
|||||||
let output: [String: Any] = [
|
let output: [String: Any] = [
|
||||||
"ok": response.ok,
|
"ok": response.ok,
|
||||||
"message": response.message ?? "",
|
"message": response.message ?? "",
|
||||||
"payload": payloadString ?? ""
|
"payload": payloadString ?? "",
|
||||||
]
|
]
|
||||||
let json = try JSONSerialization.data(withJSONObject: output, options: [.prettyPrinted])
|
let json = try JSONSerialization.data(withJSONObject: output, options: [.prettyPrinted])
|
||||||
FileHandle.standardOutput.write(json)
|
FileHandle.standardOutput.write(json)
|
||||||
@@ -99,14 +102,21 @@ struct ClawdisCLI {
|
|||||||
if let pair = args.popFirst(), let eq = pair.firstIndex(of: "=") {
|
if let pair = args.popFirst(), let eq = pair.firstIndex(of: "=") {
|
||||||
let k = String(pair[..<eq]); let v = String(pair[pair.index(after: eq)...]); env[k] = v
|
let k = String(pair[..<eq]); let v = String(pair[pair.index(after: eq)...]); env[k] = v
|
||||||
}
|
}
|
||||||
|
|
||||||
case "--timeout": if let val = args.popFirst(), let dbl = Double(val) { timeout = dbl }
|
case "--timeout": if let val = args.popFirst(), let dbl = Double(val) { timeout = dbl }
|
||||||
|
|
||||||
case "--needs-screen-recording": needsSR = true
|
case "--needs-screen-recording": needsSR = true
|
||||||
|
|
||||||
default:
|
default:
|
||||||
cmd.append(arg)
|
cmd.append(arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return .runShell(command: cmd, cwd: cwd, env: env.isEmpty ? nil : env, timeoutSec: timeout, needsScreenRecording: needsSR)
|
return .runShell(
|
||||||
|
command: cmd,
|
||||||
|
cwd: cwd,
|
||||||
|
env: env.isEmpty ? nil : env,
|
||||||
|
timeoutSec: timeout,
|
||||||
|
needsScreenRecording: needsSR)
|
||||||
|
|
||||||
case "status":
|
case "status":
|
||||||
return .status
|
return .status
|
||||||
|
|||||||
@@ -16,7 +16,12 @@ public enum Request: Sendable {
|
|||||||
case notify(title: String, body: String, sound: String?)
|
case notify(title: String, body: String, sound: String?)
|
||||||
case ensurePermissions([Capability], interactive: Bool)
|
case ensurePermissions([Capability], interactive: Bool)
|
||||||
case screenshot(displayID: UInt32?, windowID: UInt32?, format: String)
|
case screenshot(displayID: UInt32?, windowID: UInt32?, format: String)
|
||||||
case runShell(command: [String], cwd: String?, env: [String: String]?, timeoutSec: Double?, needsScreenRecording: Bool)
|
case runShell(
|
||||||
|
command: [String],
|
||||||
|
cwd: String?,
|
||||||
|
env: [String: String]?,
|
||||||
|
timeoutSec: Double?,
|
||||||
|
needsScreenRecording: Bool)
|
||||||
case status
|
case status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user