Skip to content

Macro exclusion for line_length missing #5648

@Craz1k0ek

Description

@Craz1k0ek

New Issue Checklist

Describe the bug

I have a specific setting in my .swiftlint.yml to exclude function declarations

line_length:
  warning: 120
  error: 200
  ignores_function_declarations: true

However, this ignores the macro definitions

// Line Length Violation: Line should be 120 characters or less; currently it has 126 characters (line_length)
@freestanding(expression)
public macro obfuscate(_ value: String) -> String = #externalMacro(module: "ObfuscatedStringMacros", type: "ObfuscationMacro")
Complete output when running SwiftLint, including the stack trace and command used
$ swiftlint lint

Gives me

Line Length Violation: Line should be 120 characters or less; currently it has 126 characters (line_length)

Environment

  • SwiftLint version (run swiftlint version to be sure)?
    0.55.1
  • Installation method used (Homebrew, CocoaPods, building from source, etc)?
    Homebrew
  • Paste your configuration file:
disabled_rules:
  - todo
  - trailing_comma
  - trailing_whitespace
opt_in_rules:
  - empty_count
line_length:
  warning: 120
  error: 200
  ignores_comments: true
  ignores_function_declarations: true
  ignores_interpolated_strings: true
  ignores_urls: true
  • Are you using nested configurations?
    If so, paste their relative paths and respective contents.
    No
  • Which Xcode version are you using (check xcodebuild -version)?
    Xcode 15.4
  • Do you have a sample that shows the issue? Run echo "[string here]" | swiftlint lint --no-cache --use-stdin --enable-all-rules
    to quickly test if your example is really demonstrating the issue. If your example is more
    complex, you can use swiftlint lint --path [file here] --no-cache --enable-all-rules.
    Create a macro using Xcode and run the linter to recreate the issue
// This triggers a violation:
@freestanding(expression)
public macro obfuscate(_ value: String) -> String = #externalMacro(module: "ObfuscatedStringMacros", type: "ObfuscationMacro")

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugUnexpected and reproducible misbehavior.sourcekit-issueIssues that are caused by a misbehavior in SourceKit and need to be fixed upstream.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions