function swift(hljs) {
    var SWIFT_KEYWORDS = {
        // override the pattern since the default of of /\w+/ is not sufficient to
        // capture the keywords that start with the character "#"
        $pattern: /[\w#]+/,
        keyword: '#available #colorLiteral #column #else #elseif #endif #file ' +
          '#fileLiteral #function #if #imageLiteral #line #selector #sourceLocation ' +
          '_ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype ' +
          'associativity break case catch class continue convenience default defer deinit didSet do ' +
          'dynamic dynamicType else enum extension fallthrough false fileprivate final for func ' +
          'get guard if import in indirect infix init inout internal is lazy left let ' +
          'mutating nil none nonmutating open operator optional override postfix precedence ' +
          'prefix private protocol Protocol public repeat required rethrows return ' +
          'right self Self set some static struct subscript super switch throw throws true ' +
          'try try! try? Type typealias unowned var weak where while willSet',
        literal: 'true false nil',
        built_in: 'abs advance alignof alignofValue anyGenerator assert assertionFailure ' +
          'bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC ' +
          'bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros ' +
          'debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords ' +
          'enumerate equal fatalError filter find getBridgedObjectiveCType getVaList ' +
          'indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC ' +
          'isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare ' +
          'map max maxElement min minElement numericCast overlaps partition posix ' +
          'precondition preconditionFailure print println quickSort readLine reduce reflect ' +
          'reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split ' +
          'startsWith stride strideof strideofValue swap toString transcode ' +
          'underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap ' +
          'unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer ' +
          'withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers ' +
          'withUnsafePointer withUnsafePointers withVaList zip'
      };

    var TYPE = {
      className: 'type',
      begin: '\\b[A-Z][\\w\u00C0-\u02B8\']*',
      relevance: 0
    };
    // slightly more special to swift
    var OPTIONAL_USING_TYPE = {
      className: 'type',
      begin: '\\b[A-Z][\\w\u00C0-\u02B8\']*[!?]'
    };
    var BLOCK_COMMENT = hljs.COMMENT(
      '/\\*',
      '\\*/',
      {
        contains: ['self']
      }
    );
    var SUBST = {
      className: 'subst',
      begin: /\\\(/, end: '\\)',
      keywords: SWIFT_KEYWORDS,
      contains: [] // assigned later
    };
    var STRING = {
      className: 'string',
      contains: [hljs.BACKSLASH_ESCAPE, SUBST],
      variants: [
        {begin: /"""/, end: /"""/},
        {begin: /"/, end: /"/},
      ]
    };

    // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal
    // TODO: Update for leading `-` after lookbehind is supported everywhere
    var decimalDigits = '([0-9]_*)+';
    var hexDigits = '([0-9a-fA-F]_*)+';
    var NUMBER = {
        className: 'number',
        relevance: 0,
        variants: [
          // decimal floating-point-literal (subsumes decimal-literal)
          { begin: `\\b(${decimalDigits})(\\.(${decimalDigits}))?` +
            `([eE][+-]?(${decimalDigits}))?\\b` },

          // hexadecimal floating-point-literal (subsumes hexadecimal-literal)
          { begin: `\\b0x(${hexDigits})(\\.(${hexDigits}))?` +
            `([pP][+-]?(${decimalDigits}))?\\b` },

          // octal-literal
          { begin: /\b0o([0-7]_*)+\b/ },

          // binary-literal
          { begin: /\b0b([01]_*)+\b/ },
        ]
    };
    SUBST.contains = [NUMBER];

    return {
      name: 'Swift',
      keywords: SWIFT_KEYWORDS,
      contains: [
        STRING,
        hljs.C_LINE_COMMENT_MODE,
        BLOCK_COMMENT,
        OPTIONAL_USING_TYPE,
        TYPE,
        NUMBER,
        {
          className: 'function',
          beginKeywords: 'func', end: /\{/, excludeEnd: true,
          contains: [
            hljs.inherit(hljs.TITLE_MODE, {
              begin: /[A-Za-z$_][0-9A-Za-z$_]*/
            }),
            {
              begin: /</, end: />/
            },
            {
              className: 'params',
              begin: /\(/, end: /\)/, endsParent: true,
              keywords: SWIFT_KEYWORDS,
              contains: [
                'self',
                NUMBER,
                STRING,
                hljs.C_BLOCK_COMMENT_MODE,
                {begin: ':'} // relevance booster
              ],
              illegal: /["']/
            }
          ],
          illegal: /\[|%/
        },
        {
          className: 'class',
          beginKeywords: 'struct protocol class extension enum',
          keywords: SWIFT_KEYWORDS,
          end: '\\{',
          excludeEnd: true,
          contains: [
            hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})
          ]
        },
        {
          className: 'meta', // @attributes
          begin: '(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|' +
                    '@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|' +
                    '@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|' +
                    '@infix|@prefix|@postfix|@autoclosure|@testable|@available|' +
                    '@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|' +
                    '@propertyWrapper|@main)\\b'

        },
        {
          beginKeywords: 'import', end: /$/,
          contains: [hljs.C_LINE_COMMENT_MODE, BLOCK_COMMENT],
          relevance: 0
        }
      ]
    };
  }
/*
  Language: Swift
  Description: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
  Author: Chris Eidhof <chris@eidhof.nl>
  Contributors: Nate Cook <natecook@gmail.com>, Alexander Lichter <manniL@gmx.net>
  Website: https://swift.org
  Category: common, system
  */
Swift
Description: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
Swift Description : Swift is a general - purpose programming language built using a modern approach to safety performance and software design patterns .
function swift(hljs) {
    var SWIFT_KEYWORDS = {
        $pattern: /[\w#]+/,
        keyword: '#available #colorLiteral #column #else #elseif #endif #file ' +
          '#fileLiteral #function #if #imageLiteral #line #selector #sourceLocation ' +
          '_ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype ' +
          'associativity break case catch class continue convenience default defer deinit didSet do ' +
          'dynamic dynamicType else enum extension fallthrough false fileprivate final for func ' +
          'get guard if import in indirect infix init inout internal is lazy left let ' +
          'mutating nil none nonmutating open operator optional override postfix precedence ' +
          'prefix private protocol Protocol public repeat required rethrows return ' +
          'right self Self set some static struct subscript super switch throw throws true ' +
          'try try! try? Type typealias unowned var weak where while willSet',
        literal: 'true false nil',
        built_in: 'abs advance alignof alignofValue anyGenerator assert assertionFailure ' +
          'bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC ' +
          'bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros ' +
          'debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords ' +
          'enumerate equal fatalError filter find getBridgedObjectiveCType getVaList ' +
          'indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC ' +
          'isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare ' +
          'map max maxElement min minElement numericCast overlaps partition posix ' +
          'precondition preconditionFailure print println quickSort readLine reduce reflect ' +
          'reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split ' +
          'startsWith stride strideof strideofValue swap toString transcode ' +
          'underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap ' +
          'unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer ' +
          'withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers ' +
          'withUnsafePointer withUnsafePointers withVaList zip'
      };
    var TYPE = {
      className: 'type',
      begin: '\\b[A-Z][\\w\u00C0-\u02B8\']*',
      relevance: 0
    };
    var OPTIONAL_USING_TYPE = {
      className: 'type',
      begin: '\\b[A-Z][\\w\u00C0-\u02B8\']*[!?]'
    };
    var BLOCK_COMMENT = hljs.COMMENT(
      '/\\*',
      '\\*/',
      {
        contains: ['self']
      }
    );
    var SUBST = {
      className: 'subst',
      begin: /\\\(/, end: '\\)',
      keywords: SWIFT_KEYWORDS,
      contains: [] 
    };
    var STRING = {
      className: 'string',
      contains: [hljs.BACKSLASH_ESCAPE, SUBST],
      variants: [
        {begin: /"""/, end: /"""/},
        {begin: /"/, end: /"/},
      ]
    };
    var decimalDigits = '([0-9]_*)+';
    var hexDigits = '([0-9a-fA-F]_*)+';
    var NUMBER = {
        className: 'number',
        relevance: 0,
        variants: [
          { begin: `\\b(${decimalDigits})(\\.(${decimalDigits}))?` +
            `([eE][+-]?(${decimalDigits}))?\\b` },
          { begin: `\\b0x(${hexDigits})(\\.(${hexDigits}))?` +
            `([pP][+-]?(${decimalDigits}))?\\b` },
          { begin: /\b0o([0-7]_*)+\b/ },
          { begin: /\b0b([01]_*)+\b/ },
        ]
    };
    SUBST.contains = [NUMBER];
    return {
      name: 'Swift',
      keywords: SWIFT_KEYWORDS,
      contains: [
        STRING,
        hljs.C_LINE_COMMENT_MODE,
        BLOCK_COMMENT,
        OPTIONAL_USING_TYPE,
        TYPE,
        NUMBER,
        {
          className: 'function',
          beginKeywords: 'func', end: /\{/, excludeEnd: true,
          contains: [
            hljs.inherit(hljs.TITLE_MODE, {
              begin: /[A-Za-z$_][0-9A-Za-z$_]*/
            }),
            {
              begin: /</, end: />/
            },
            {
              className: 'params',
              begin: /\(/, end: /\)/, endsParent: true,
              keywords: SWIFT_KEYWORDS,
              contains: [
                'self',
                NUMBER,
                STRING,
                hljs.C_BLOCK_COMMENT_MODE,
                {begin: ':'} 
              ],
              illegal: /["']/
            }
          ],
          illegal: /\[|%/
        },
        {
          className: 'class',
          beginKeywords: 'struct protocol class extension enum',
          keywords: SWIFT_KEYWORDS,
          end: '\\{',
          excludeEnd: true,
          contains: [
            hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})
          ]
        },
        {
          className: 'meta', 
          begin: '(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|' +
                    '@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|' +
                    '@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|' +
                    '@infix|@prefix|@postfix|@autoclosure|@testable|@available|' +
                    '@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|' +
                    '@propertyWrapper|@main)\\b'
        },
        {
          beginKeywords: 'import', end: /$/,
          contains: [hljs.C_LINE_COMMENT_MODE, BLOCK_COMMENT],
          relevance: 0
        }
      ]
    };
  }
function swift ( hljs ) { var SWIFT_KEYWORDS = { $pattern : / [\w#]+ / , keyword : '#available #colorLiteral #column #else #elseif #endif #file ' + '#fileLiteral #function #if #imageLiteral #line #selector #sourceLocation ' + '_ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype ' + 'associativity break case catch class continue convenience default defer deinit didSet do ' + 'dynamic dynamicType else enum extension fallthrough false fileprivate final for func ' + 'get guard if import in indirect infix init inout internal is lazy left let ' + 'mutating nil none nonmutating open operator optional override postfix precedence ' + 'prefix private protocol Protocol public repeat required rethrows return ' + 'right self Self set some static struct subscript super switch throw throws true ' + 'try try! try? Type typealias unowned var weak where while willSet' , literal : 'true false nil' , built_in : 'abs advance alignof alignofValue anyGenerator assert assertionFailure ' + 'bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC ' + 'bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros ' + 'debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords ' + 'enumerate equal fatalError filter find getBridgedObjectiveCType getVaList ' + 'indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC ' + 'isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare ' + 'map max maxElement min minElement numericCast overlaps partition posix ' + 'precondition preconditionFailure print println quickSort readLine reduce reflect ' + 'reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split ' + 'startsWith stride strideof strideofValue swap toString transcode ' + 'underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap ' + 'unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer ' + 'withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers ' + 'withUnsafePointer withUnsafePointers withVaList zip' } ; var TYPE = { className : 'type' , begin : '\\b[A-Z][\\w\u00C0-\u02B8\']*' , relevance : 0 } ; var OPTIONAL_USING_TYPE = { className : 'type' , begin : '\\b[A-Z][\\w\u00C0-\u02B8\']*[!?]' } ; var BLOCK_COMMENT = hljs . COMMENT ( '/\\*' , '\\*/' , { contains : [ 'self' ] } ) ; var SUBST = { className : 'subst' , begin : / \\\( / , end : '\\)' , keywords : SWIFT_KEYWORDS , contains : [ ] } ; var STRING = { className : 'string' , contains : [ hljs . BACKSLASH_ESCAPE , SUBST ] , variants : [ { begin : / """ / , end : / """ / } , { begin : / " / , end : / " / } , ] } ; var decimalDigits = '([0-9]_*)+' ; var hexDigits = '([0-9a-fA-F]_*)+' ; var NUMBER = { className : 'number' , relevance : 0 , variants : [ { begin : ` \\ ${ decimalDigits } \\ ${ decimalDigits } ` + ` ${ decimalDigits } \\ ` } , { begin : ` \\ ${ hexDigits } \\ ${ hexDigits } ` + ` ${ decimalDigits } \\ ` } , { begin : / \b0o([0-7]_*)+\b / } , { begin : / \b0b([01]_*)+\b / } , ] } ; SUBST . contains = [ NUMBER ] ; return { name : 'Swift' , keywords : SWIFT_KEYWORDS , contains : [ STRING , hljs . C_LINE_COMMENT_MODE , BLOCK_COMMENT , OPTIONAL_USING_TYPE , TYPE , NUMBER , { className : 'function' , beginKeywords : 'func' , end : / \{ / , excludeEnd : true , contains : [ hljs . inherit ( hljs . TITLE_MODE , { begin : / [A-Za-z$_][0-9A-Za-z$_]* / } ) , { begin : / < / , end : / > / } , { className : 'params' , begin : / \( / , end : / \) / , endsParent : true , keywords : SWIFT_KEYWORDS , contains : [ 'self' , NUMBER , STRING , hljs . C_BLOCK_COMMENT_MODE , { begin : ':' } ] , illegal : / ["'] / } ] , illegal : / \[|% / } , { className : 'class' , beginKeywords : 'struct protocol class extension enum' , keywords : SWIFT_KEYWORDS , end : '\\{' , excludeEnd : true , contains : [ hljs . inherit ( hljs . TITLE_MODE , { begin : / [A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]* / } ) ] } , { className : 'meta' , begin : '(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|' + '@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|' + '@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|' + '@infix|@prefix|@postfix|@autoclosure|@testable|@available|' + '@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|' + '@propertyWrapper|@main)\\b' } , { beginKeywords : 'import' , end : / $ / , contains : [ hljs . C_LINE_COMMENT_MODE , BLOCK_COMMENT ] , relevance : 0 } ] } ; }
Language: Swift
Description: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
Language : Swift Description : Swift is a general - purpose programming language built using a modern approach to safety performance and software design patterns .
// override the pattern since the default of of /\w+/ is not sufficient to // capture the keywords that start with the character "#" // slightly more special to swift // assigned later // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal // TODO: Update for leading `-` after lookbehind is supported everywhere // decimal floating-point-literal (subsumes decimal-literal) // hexadecimal floating-point-literal (subsumes hexadecimal-literal) // octal-literal // binary-literal // relevance booster // @attributes