From b04852167ec6b218d339364d68b12fd90379b1e0 Mon Sep 17 00:00:00 2001 From: Timofey Solonin Date: Thu, 20 Dec 2018 12:49:50 +0300 Subject: [PATCH] #2353 - Add offset and length to the ModifierDescription --- .../Rules/Style/ModifierOrderRule.swift | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Source/SwiftLintFramework/Rules/Style/ModifierOrderRule.swift b/Source/SwiftLintFramework/Rules/Style/ModifierOrderRule.swift index 6605d880f50..5e45c1feebd 100644 --- a/Source/SwiftLintFramework/Rules/Style/ModifierOrderRule.swift +++ b/Source/SwiftLintFramework/Rules/Style/ModifierOrderRule.swift @@ -108,16 +108,23 @@ private extension Dictionary where Key == String, Value == SourceKitRepresentabl return rhsOffset < lhsOffset } .compactMap { + guard let offset = $0.offset else { return nil } if let attribute = $0.attribute, - let modifierGroup = SwiftDeclarationAttributeKind.ModifierGroup(rawAttribute: attribute) { + let modifierGroup = SwiftDeclarationAttributeKind.ModifierGroup(rawAttribute: attribute), + let length = $0.length { return ModifierDescription( keyword: attribute.lastComponentAfter("."), - group: modifierGroup + group: modifierGroup, + offset: offset, + length: length ) } else if let kind = $0.kind { + let keyword = kind.lastComponentAfter(".") return ModifierDescription( - keyword: kind.lastComponentAfter("."), - group: .typeMethods + keyword: keyword, + group: .typeMethods, + offset: offset, + length: keyword.count ) } return nil @@ -144,4 +151,6 @@ private extension String { private struct ModifierDescription: Equatable { let keyword: String let group: SwiftDeclarationAttributeKind.ModifierGroup + let offset: Int + let length: Int }