public class MyClass { public func pub_method() @objc deinit } public protocol MyProto { associatedtype Assoc } @discardableResult public func pub_function() -> Int [ { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 1, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 8, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 14, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 29, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 36, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 41, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.id, key.offset: 59, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 65, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 75, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 82, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 91, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 99, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 113, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 128, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 137, key.length: 18 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 156, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 163, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 168, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 186, key.length: 3 } ] [ { key.kind: source.lang.swift.ref.associatedtype, key.offset: 99, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.offset: 186, key.length: 3, key.is_system: 1 } ] [ { key.kind: source.lang.swift.decl.class, key.accessibility: source.lang.swift.accessibility.public, key.name: "MyClass", key.offset: 8, key.length: 65, key.nameoffset: 14, key.namelength: 7, key.bodyoffset: 23, key.bodylength: 49, key.attributes: [ { key.offset: 1, key.length: 6, key.attribute: source.decl.attribute.public } ], key.substructure: [ { key.kind: source.lang.swift.decl.function.method.instance, key.accessibility: source.lang.swift.accessibility.public, key.name: "pub_method()", key.offset: 36, key.length: 17, key.nameoffset: 41, key.namelength: 12, key.attributes: [ { key.offset: 29, key.length: 6, key.attribute: source.decl.attribute.public } ] } ] }, { key.kind: source.lang.swift.decl.protocol, key.accessibility: source.lang.swift.accessibility.public, key.name: "MyProto", key.offset: 82, key.length: 53, key.nameoffset: 91, key.namelength: 7, key.bodyoffset: 107, key.bodylength: 27, key.attributes: [ { key.offset: 75, key.length: 6, key.attribute: source.decl.attribute.public } ], key.substructure: [ { key.kind: source.lang.swift.decl.associatedtype, key.accessibility: source.lang.swift.accessibility.public, key.name: "Assoc", key.offset: 113, key.length: 20, key.nameoffset: 128, key.namelength: 5 } ] }, { key.kind: source.lang.swift.decl.function.free, key.accessibility: source.lang.swift.accessibility.public, key.name: "pub_function()", key.offset: 163, key.length: 26, key.typename: "Int", key.nameoffset: 168, key.namelength: 14, key.attributes: [ { key.offset: 156, key.length: 6, key.attribute: source.decl.attribute.public }, { key.offset: 137, key.length: 18, key.attribute: source.decl.attribute.discardableResult } ] } ]