diff --git a/.nvim/xcodebuild/coverage.json b/.nvim/xcodebuild/coverage.json new file mode 100644 index 0000000..d4e0a10 --- /dev/null +++ b/.nvim/xcodebuild/coverage.json @@ -0,0 +1 @@ +{"coveredLines":622,"executableLines":928,"lineCoverage":0.67025862068965514,"targets":[{"buildProductPath":"\/Users\/michael\/Library\/Developer\/Xcode\/DerivedData\/swift-cli-doc-dgihrbuebwxquzdknevkczbenunz\/Build\/Products\/Debug\/PackageFrameworks\/CliDoc_17A221B71A2434_PackageProduct.framework\/CliDoc_17A221B71A2434_PackageProduct","coveredLines":253,"executableLines":406,"files":[{"coveredLines":6,"executableLines":9,"functions":[{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":6,"name":"Label.init(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":4,"lineCoverage":1,"lineNumber":11,"name":"Label.init(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":4,"lineCoverage":1,"lineNumber":16,"name":"Label.body.getter"}],"lineCoverage":0.66666666666666663,"name":"Label.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Label.swift"},{"coveredLines":6,"executableLines":32,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":27,"lineCoverage":1,"lineNumber":15,"name":"TextNode.render()"},{"coveredLines":3,"executableLines":3,"executionCount":65,"lineCoverage":1,"lineNumber":21,"name":"String.render()"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":27,"name":"String.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":35,"name":"AnyTextNode.init(_:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":36,"name":"implicit closure #1 in AnyTextNode.init(_:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":39,"name":"AnyTextNode.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":43,"name":"TextNode.eraseToAnyTextNode()"},{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":49,"name":"Optional.body.getter"},{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":57,"name":"Optional.render()"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":64,"name":"Array.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":70,"name":"Array.render()"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":71,"name":"closure #1 in Array.render()"}],"lineCoverage":0.1875,"name":"TextNode.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/TextNode.swift"},{"coveredLines":14,"executableLines":17,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":5,"lineCoverage":1,"lineNumber":5,"name":"TextNode.textStyle(_:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":10,"name":"TextNode.textStyle(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":5,"lineCoverage":1,"lineNumber":22,"name":"StyleModifier.init(styles:)"},{"coveredLines":5,"executableLines":5,"executionCount":5,"lineCoverage":1,"lineNumber":27,"name":"StyleModifier.render(content:)"},{"coveredLines":3,"executableLines":3,"executionCount":5,"lineCoverage":1,"lineNumber":28,"name":"closure #1 in StyleModifier.render(content:)"}],"lineCoverage":0.82352941176470584,"name":"TextStyleModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/TextStyleModifier.swift"},{"coveredLines":14,"executableLines":14,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":4,"lineCoverage":1,"lineNumber":9,"name":"ShellCommand.style(_:)"},{"coveredLines":1,"executableLines":1,"executionCount":4,"lineCoverage":1,"lineNumber":17,"name":"static ShellCommandStyle<>.default.getter"},{"coveredLines":6,"executableLines":6,"executionCount":4,"lineCoverage":1,"lineNumber":22,"name":"DefaultShellCommandStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":4,"lineCoverage":1,"lineNumber":23,"name":"closure #1 in DefaultShellCommandStyle.render(content:)"}],"lineCoverage":1,"name":"ShellCommandStyle.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/ShellCommandStyle.swift"},{"coveredLines":0,"executableLines":19,"functions":[{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":4,"name":"TextNode.labelStyle(color:styles:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":8,"name":"TextNode.labelStyle(color:styles:)"},{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":21,"name":"LabelStyle.init(color:styles:)"},{"coveredLines":0,"executableLines":8,"executionCount":0,"lineCoverage":0,"lineNumber":27,"name":"LabelStyle.render(content:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":33,"name":"closure #1 in LabelStyle.render(content:)"}],"lineCoverage":0,"name":"LabelStyleModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/LabelStyleModifier.swift"},{"coveredLines":7,"executableLines":11,"functions":[{"coveredLines":4,"executableLines":4,"executionCount":4,"lineCoverage":1,"lineNumber":13,"name":"ShellCommand.init(symbol:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":2,"lineCoverage":1,"lineNumber":19,"name":"ShellCommand.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":29,"name":"ShellCommand<>.init(_:symbol:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":30,"name":"closure #1 in ShellCommand<>.init(_:symbol:)"}],"lineCoverage":0.63636363636363635,"name":"ShellCommand.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/ShellCommand.swift"},{"coveredLines":8,"executableLines":8,"functions":[{"coveredLines":4,"executableLines":4,"executionCount":8,"lineCoverage":1,"lineNumber":13,"name":"HStack.init(spacing:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":8,"lineCoverage":1,"lineNumber":19,"name":"HStack.body.getter"},{"coveredLines":1,"executableLines":1,"executionCount":16,"lineCoverage":1,"lineNumber":20,"name":"closure #1 in HStack.body.getter"}],"lineCoverage":1,"name":"HStack.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/HStack.swift"},{"coveredLines":25,"executableLines":47,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":42,"lineCoverage":1,"lineNumber":5,"name":"static TextBuilder.buildPartialBlock(first:)"},{"coveredLines":3,"executableLines":3,"executionCount":16,"lineCoverage":1,"lineNumber":10,"name":"static TextBuilder.buildPartialBlock(accumulated:next:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":15,"name":"static TextBuilder.buildArray(_:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":20,"name":"static TextBuilder.buildBlock(_:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":25,"name":"static TextBuilder.buildEither(first:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":30,"name":"static TextBuilder.buildEither(second:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":35,"name":"static TextBuilder.buildOptional(_:)"},{"coveredLines":0,"executableLines":6,"executionCount":0,"lineCoverage":0,"lineNumber":45,"name":"EitherNode.body.getter"},{"coveredLines":9,"executableLines":9,"executionCount":16,"lineCoverage":1,"lineNumber":59,"name":"NodeContainer.init(nodes:)"},{"coveredLines":6,"executableLines":7,"executionCount":32,"lineCoverage":0.8571428571428571,"lineNumber":60,"name":"closure #1 in NodeContainer.init(nodes:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":70,"name":"NodeContainer.body.getter"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":71,"name":"closure #1 in NodeContainer.body.getter"}],"lineCoverage":0.53191489361702127,"name":"Builder.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Builder.swift"},{"coveredLines":0,"executableLines":16,"functions":[{"coveredLines":0,"executableLines":5,"executionCount":0,"lineCoverage":0,"lineNumber":17,"name":"Section.init(header:content:footer:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":23,"name":"Section.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":33,"name":"Section<>.init(header:content:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":34,"name":"closure #1 in Section<>.init(header:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":43,"name":"Section<>.init(content:footer:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":44,"name":"closure #1 in Section<>.init(content:footer:)"}],"lineCoverage":0,"name":"Section.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Section.swift"},{"coveredLines":11,"executableLines":27,"functions":[{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":14,"name":"Note.init(_:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":20,"name":"Note.body.getter"},{"coveredLines":4,"executableLines":4,"executionCount":1,"lineCoverage":1,"lineNumber":31,"name":"Note<>.init(_:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":39,"name":"static Note<>.important(_:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":46,"name":"static Note<>.seeAlso(_:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":57,"name":"Note<>.init(_:content:)"},{"coveredLines":1,"executableLines":1,"executionCount":1,"lineCoverage":1,"lineNumber":58,"name":"closure #1 in Note<>.init(_:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":64,"name":"static Note<>.important(_:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":71,"name":"static Note<>.seeAlso(_:content:)"}],"lineCoverage":0.40740740740740738,"name":"Note.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Note.swift"},{"coveredLines":16,"executableLines":16,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":9,"name":"Note.noteStyle(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":17,"name":"static NoteStyleModifier<>.default.getter"},{"coveredLines":6,"executableLines":6,"executionCount":1,"lineCoverage":1,"lineNumber":24,"name":"DefaultNoteStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":1,"lineCoverage":1,"lineNumber":25,"name":"closure #1 in DefaultNoteStyle.render(content:)"}],"lineCoverage":1,"name":"NoteStyleModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/NoteStyleModifier.swift"},{"coveredLines":13,"executableLines":23,"functions":[{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":17,"name":"NodeModifier.concat(_:)"},{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":26,"name":"ConcatModifier.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":6,"lineCoverage":1,"lineNumber":40,"name":"ModifiedNode.init(content:modifier:)"},{"coveredLines":3,"executableLines":3,"executionCount":6,"lineCoverage":1,"lineNumber":47,"name":"ModifiedNode<>.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":52,"name":"ModifiedNode<>.apply(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":6,"lineCoverage":1,"lineNumber":58,"name":"ModifiedNode<>.render()"},{"coveredLines":3,"executableLines":3,"executionCount":6,"lineCoverage":1,"lineNumber":65,"name":"TextNode.modifier(_:)"}],"lineCoverage":0.56521739130434778,"name":"NodeModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/NodeModifier.swift"},{"coveredLines":8,"executableLines":8,"functions":[{"coveredLines":4,"executableLines":4,"executionCount":9,"lineCoverage":1,"lineNumber":13,"name":"VStack.init(spacing:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":9,"lineCoverage":1,"lineNumber":19,"name":"VStack.body.getter"},{"coveredLines":1,"executableLines":1,"executionCount":18,"lineCoverage":1,"lineNumber":20,"name":"closure #1 in VStack.body.getter"}],"lineCoverage":1,"name":"VStack.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/VStack.swift"},{"coveredLines":17,"executableLines":20,"functions":[{"coveredLines":7,"executableLines":9,"executionCount":17,"lineCoverage":0.77777777777777779,"lineNumber":2,"name":"array(from:)"},{"coveredLines":9,"executableLines":9,"executionCount":17,"lineCoverage":1,"lineNumber":13,"name":"seperator(_:count:)"},{"coveredLines":1,"executableLines":1,"executionCount":17,"lineCoverage":1,"lineNumber":14,"name":"implicit closure #1 in seperator(_:count:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":14,"name":"implicit closure #2 in seperator(_:count:)"}],"lineCoverage":0.84999999999999998,"name":"Utils.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Utils.swift"},{"coveredLines":80,"executableLines":83,"functions":[{"coveredLines":7,"executableLines":7,"executionCount":1,"lineCoverage":1,"lineNumber":5,"name":"ExampleSection.style(_:)"},{"coveredLines":7,"executableLines":7,"executionCount":1,"lineCoverage":1,"lineNumber":13,"name":"ExampleSection.exampleStyle(_:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":23,"name":"Array.exampleStyle(_:)"},{"coveredLines":5,"executableLines":5,"executionCount":2,"lineCoverage":1,"lineNumber":39,"name":"ExampleSectionConfiguration.init(header:label:examples:)"},{"coveredLines":3,"executableLines":3,"executionCount":2,"lineCoverage":1,"lineNumber":51,"name":"ExampleConfiguration.init(examples:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":60,"name":"static ExampleSectionStyle<>.default(exampleStyle:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":66,"name":"static ExampleStyle<>.default.getter"},{"coveredLines":3,"executableLines":3,"executionCount":2,"lineCoverage":1,"lineNumber":77,"name":"DefaultExamplesStyle.init(exampleStyle:)"},{"coveredLines":9,"executableLines":9,"executionCount":2,"lineCoverage":1,"lineNumber":82,"name":"DefaultExamplesStyle.render(content:)"},{"coveredLines":7,"executableLines":7,"executionCount":2,"lineCoverage":1,"lineNumber":83,"name":"closure #1 in DefaultExamplesStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":2,"lineCoverage":1,"lineNumber":84,"name":"closure #1 in closure #1 in DefaultExamplesStyle.render(content:)"},{"coveredLines":10,"executableLines":10,"executionCount":1,"lineCoverage":1,"lineNumber":95,"name":"DefaultExampleStyle.render(content:)"},{"coveredLines":8,"executableLines":8,"executionCount":1,"lineCoverage":1,"lineNumber":96,"name":"closure #1 in DefaultExampleStyle.render(content:)"},{"coveredLines":6,"executableLines":6,"executionCount":2,"lineCoverage":1,"lineNumber":97,"name":"closure #1 in closure #1 in DefaultExampleStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":2,"lineCoverage":1,"lineNumber":98,"name":"closure #1 in closure #1 in closure #1 in DefaultExampleStyle.render(content:)"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":100,"name":"closure #1 in closure #1 in closure #1 in closure #1 in DefaultExampleStyle.render(content:)"}],"lineCoverage":0.96385542168674698,"name":"ExamplesStyle.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/ExamplesStyle.swift"},{"coveredLines":13,"executableLines":16,"functions":[{"coveredLines":5,"executableLines":5,"executionCount":2,"lineCoverage":1,"lineNumber":20,"name":"ExampleSection.init(examples:header:label:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":27,"name":"ExampleSection.body.getter"},{"coveredLines":3,"executableLines":3,"executionCount":2,"lineCoverage":1,"lineNumber":38,"name":"ExampleSection<>.init(header:label:examples:)"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":39,"name":"closure #1 in ExampleSection<>.init(header:label:examples:)"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":39,"name":"closure #2 in ExampleSection<>.init(header:label:examples:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":47,"name":"ExampleSection<>.init(header:label:examples:)"}],"lineCoverage":0.8125,"name":"ExampleSection.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/ExampleSection.swift"},{"coveredLines":6,"executableLines":6,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":8,"name":"Group.init(content:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":13,"name":"Group.body.getter"}],"lineCoverage":1,"name":"Group.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Group.swift"},{"coveredLines":0,"executableLines":4,"functions":[{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":5,"name":"Empty.init()"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":8,"name":"Empty.body.getter"}],"lineCoverage":0,"name":"Empty.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Empty.swift"},{"coveredLines":9,"executableLines":9,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":5,"name":"TextNode.color(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":16,"name":"ColorModifier.init(color:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":21,"name":"ColorModifier.render(content:)"}],"lineCoverage":1,"name":"ColorModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/ColorModifier.swift"},{"coveredLines":0,"executableLines":21,"functions":[{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":4,"name":"Section.style(_:)"},{"coveredLines":0,"executableLines":5,"executionCount":0,"lineCoverage":0,"lineNumber":15,"name":"SectionConfiguration.init(header:content:footer:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":25,"name":"static SectionStyle<>.default.getter"},{"coveredLines":0,"executableLines":7,"executionCount":0,"lineCoverage":0,"lineNumber":30,"name":"DefaultSectionStyle.render(content:)"},{"coveredLines":0,"executableLines":5,"executionCount":0,"lineCoverage":0,"lineNumber":31,"name":"closure #1 in DefaultSectionStyle.render(content:)"}],"lineCoverage":0,"name":"SectionStyle.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/SectionStyle.swift"}],"lineCoverage":0.62315270935960587,"name":"CliDoc"},{"buildProductPath":"\/Users\/michael\/Library\/Developer\/Xcode\/DerivedData\/swift-cli-doc-dgihrbuebwxquzdknevkczbenunz\/Build\/Products\/Debug\/CliDocTests.xctest\/Contents\/MacOS\/CliDocTests","coveredLines":369,"executableLines":522,"files":[{"coveredLines":6,"executableLines":9,"functions":[{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":6,"name":"Label.init(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":4,"lineCoverage":1,"lineNumber":11,"name":"Label.init(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":4,"lineCoverage":1,"lineNumber":16,"name":"Label.body.getter"}],"lineCoverage":0.66666666666666663,"name":"Label.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Label.swift"},{"coveredLines":6,"executableLines":32,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":27,"lineCoverage":1,"lineNumber":15,"name":"TextNode.render()"},{"coveredLines":3,"executableLines":3,"executionCount":65,"lineCoverage":1,"lineNumber":21,"name":"String.render()"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":27,"name":"String.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":35,"name":"AnyTextNode.init(_:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":36,"name":"implicit closure #1 in AnyTextNode.init(_:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":39,"name":"AnyTextNode.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":43,"name":"TextNode.eraseToAnyTextNode()"},{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":49,"name":"Optional.body.getter"},{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":57,"name":"Optional.render()"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":64,"name":"Array.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":70,"name":"Array.render()"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":71,"name":"closure #1 in Array.render()"}],"lineCoverage":0.1875,"name":"TextNode.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/TextNode.swift"},{"coveredLines":14,"executableLines":17,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":5,"lineCoverage":1,"lineNumber":5,"name":"TextNode.textStyle(_:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":10,"name":"TextNode.textStyle(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":5,"lineCoverage":1,"lineNumber":22,"name":"StyleModifier.init(styles:)"},{"coveredLines":5,"executableLines":5,"executionCount":5,"lineCoverage":1,"lineNumber":27,"name":"StyleModifier.render(content:)"},{"coveredLines":3,"executableLines":3,"executionCount":5,"lineCoverage":1,"lineNumber":28,"name":"closure #1 in StyleModifier.render(content:)"}],"lineCoverage":0.82352941176470584,"name":"TextStyleModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/TextStyleModifier.swift"},{"coveredLines":116,"executableLines":116,"functions":[{"coveredLines":5,"executableLines":5,"executionCount":1,"lineCoverage":1,"lineNumber":6,"name":"closure #1 in variable initialization expression of setupRainbow"},{"coveredLines":8,"executableLines":8,"executionCount":1,"lineCoverage":1,"lineNumber":13,"name":"testGroup()"},{"coveredLines":4,"executableLines":4,"executionCount":1,"lineCoverage":1,"lineNumber":15,"name":"closure #1 in testGroup()"},{"coveredLines":8,"executableLines":8,"executionCount":1,"lineCoverage":1,"lineNumber":23,"name":"testHStack()"},{"coveredLines":4,"executableLines":4,"executionCount":1,"lineCoverage":1,"lineNumber":25,"name":"closure #1 in testHStack()"},{"coveredLines":11,"executableLines":11,"executionCount":1,"lineCoverage":1,"lineNumber":33,"name":"testVStack()"},{"coveredLines":4,"executableLines":4,"executionCount":1,"lineCoverage":1,"lineNumber":35,"name":"closure #1 in testVStack()"},{"coveredLines":8,"executableLines":8,"executionCount":1,"lineCoverage":1,"lineNumber":46,"name":"testNote()"},{"coveredLines":17,"executableLines":17,"executionCount":1,"lineCoverage":1,"lineNumber":56,"name":"testExamples()"},{"coveredLines":18,"executableLines":18,"executionCount":1,"lineCoverage":1,"lineNumber":75,"name":"testExamplesWithCustomExampleOnlyStyle()"},{"coveredLines":10,"executableLines":10,"executionCount":1,"lineCoverage":1,"lineNumber":95,"name":"CustomExampleOnlyStyle.render(content:)"},{"coveredLines":8,"executableLines":8,"executionCount":1,"lineCoverage":1,"lineNumber":96,"name":"closure #1 in CustomExampleOnlyStyle.render(content:)"},{"coveredLines":6,"executableLines":6,"executionCount":2,"lineCoverage":1,"lineNumber":97,"name":"closure #1 in closure #1 in CustomExampleOnlyStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":2,"lineCoverage":1,"lineNumber":98,"name":"closure #1 in closure #1 in closure #1 in CustomExampleOnlyStyle.render(content:)"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":100,"name":"closure #1 in closure #1 in closure #1 in closure #1 in CustomExampleOnlyStyle.render(content:)"}],"lineCoverage":1,"name":"CliDocTests.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Tests\/CliDocTests\/CliDocTests.swift"},{"coveredLines":14,"executableLines":14,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":4,"lineCoverage":1,"lineNumber":9,"name":"ShellCommand.style(_:)"},{"coveredLines":1,"executableLines":1,"executionCount":4,"lineCoverage":1,"lineNumber":17,"name":"static ShellCommandStyle<>.default.getter"},{"coveredLines":6,"executableLines":6,"executionCount":4,"lineCoverage":1,"lineNumber":22,"name":"DefaultShellCommandStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":4,"lineCoverage":1,"lineNumber":23,"name":"closure #1 in DefaultShellCommandStyle.render(content:)"}],"lineCoverage":1,"name":"ShellCommandStyle.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/ShellCommandStyle.swift"},{"coveredLines":0,"executableLines":19,"functions":[{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":4,"name":"TextNode.labelStyle(color:styles:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":8,"name":"TextNode.labelStyle(color:styles:)"},{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":21,"name":"LabelStyle.init(color:styles:)"},{"coveredLines":0,"executableLines":8,"executionCount":0,"lineCoverage":0,"lineNumber":27,"name":"LabelStyle.render(content:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":33,"name":"closure #1 in LabelStyle.render(content:)"}],"lineCoverage":0,"name":"LabelStyleModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/LabelStyleModifier.swift"},{"coveredLines":7,"executableLines":11,"functions":[{"coveredLines":4,"executableLines":4,"executionCount":4,"lineCoverage":1,"lineNumber":13,"name":"ShellCommand.init(symbol:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":2,"lineCoverage":1,"lineNumber":19,"name":"ShellCommand.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":29,"name":"ShellCommand<>.init(_:symbol:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":30,"name":"closure #1 in ShellCommand<>.init(_:symbol:)"}],"lineCoverage":0.63636363636363635,"name":"ShellCommand.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/ShellCommand.swift"},{"coveredLines":8,"executableLines":8,"functions":[{"coveredLines":4,"executableLines":4,"executionCount":8,"lineCoverage":1,"lineNumber":13,"name":"HStack.init(spacing:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":8,"lineCoverage":1,"lineNumber":19,"name":"HStack.body.getter"},{"coveredLines":1,"executableLines":1,"executionCount":16,"lineCoverage":1,"lineNumber":20,"name":"closure #1 in HStack.body.getter"}],"lineCoverage":1,"name":"HStack.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/HStack.swift"},{"coveredLines":0,"executableLines":16,"functions":[{"coveredLines":0,"executableLines":5,"executionCount":0,"lineCoverage":0,"lineNumber":17,"name":"Section.init(header:content:footer:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":23,"name":"Section.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":33,"name":"Section<>.init(header:content:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":34,"name":"closure #1 in Section<>.init(header:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":43,"name":"Section<>.init(content:footer:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":44,"name":"closure #1 in Section<>.init(content:footer:)"}],"lineCoverage":0,"name":"Section.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Section.swift"},{"coveredLines":25,"executableLines":47,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":42,"lineCoverage":1,"lineNumber":5,"name":"static TextBuilder.buildPartialBlock(first:)"},{"coveredLines":3,"executableLines":3,"executionCount":16,"lineCoverage":1,"lineNumber":10,"name":"static TextBuilder.buildPartialBlock(accumulated:next:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":15,"name":"static TextBuilder.buildArray(_:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":20,"name":"static TextBuilder.buildBlock(_:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":25,"name":"static TextBuilder.buildEither(first:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":30,"name":"static TextBuilder.buildEither(second:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":35,"name":"static TextBuilder.buildOptional(_:)"},{"coveredLines":0,"executableLines":6,"executionCount":0,"lineCoverage":0,"lineNumber":45,"name":"EitherNode.body.getter"},{"coveredLines":9,"executableLines":9,"executionCount":16,"lineCoverage":1,"lineNumber":59,"name":"NodeContainer.init(nodes:)"},{"coveredLines":6,"executableLines":7,"executionCount":32,"lineCoverage":0.8571428571428571,"lineNumber":60,"name":"closure #1 in NodeContainer.init(nodes:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":70,"name":"NodeContainer.body.getter"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":71,"name":"closure #1 in NodeContainer.body.getter"}],"lineCoverage":0.53191489361702127,"name":"Builder.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Builder.swift"},{"coveredLines":11,"executableLines":27,"functions":[{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":14,"name":"Note.init(_:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":20,"name":"Note.body.getter"},{"coveredLines":4,"executableLines":4,"executionCount":1,"lineCoverage":1,"lineNumber":31,"name":"Note<>.init(_:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":39,"name":"static Note<>.important(_:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":46,"name":"static Note<>.seeAlso(_:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":57,"name":"Note<>.init(_:content:)"},{"coveredLines":1,"executableLines":1,"executionCount":1,"lineCoverage":1,"lineNumber":58,"name":"closure #1 in Note<>.init(_:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":64,"name":"static Note<>.important(_:content:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":71,"name":"static Note<>.seeAlso(_:content:)"}],"lineCoverage":0.40740740740740738,"name":"Note.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Note.swift"},{"coveredLines":16,"executableLines":16,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":9,"name":"Note.noteStyle(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":17,"name":"static NoteStyleModifier<>.default.getter"},{"coveredLines":6,"executableLines":6,"executionCount":1,"lineCoverage":1,"lineNumber":24,"name":"DefaultNoteStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":1,"lineCoverage":1,"lineNumber":25,"name":"closure #1 in DefaultNoteStyle.render(content:)"}],"lineCoverage":1,"name":"NoteStyleModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/NoteStyleModifier.swift"},{"coveredLines":8,"executableLines":8,"functions":[{"coveredLines":4,"executableLines":4,"executionCount":9,"lineCoverage":1,"lineNumber":13,"name":"VStack.init(spacing:content:)"},{"coveredLines":3,"executableLines":3,"executionCount":9,"lineCoverage":1,"lineNumber":19,"name":"VStack.body.getter"},{"coveredLines":1,"executableLines":1,"executionCount":18,"lineCoverage":1,"lineNumber":20,"name":"closure #1 in VStack.body.getter"}],"lineCoverage":1,"name":"VStack.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/VStack.swift"},{"coveredLines":13,"executableLines":23,"functions":[{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":17,"name":"NodeModifier.concat(_:)"},{"coveredLines":0,"executableLines":4,"executionCount":0,"lineCoverage":0,"lineNumber":26,"name":"ConcatModifier.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":6,"lineCoverage":1,"lineNumber":40,"name":"ModifiedNode.init(content:modifier:)"},{"coveredLines":3,"executableLines":3,"executionCount":6,"lineCoverage":1,"lineNumber":47,"name":"ModifiedNode<>.body.getter"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":52,"name":"ModifiedNode<>.apply(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":6,"lineCoverage":1,"lineNumber":58,"name":"ModifiedNode<>.render()"},{"coveredLines":3,"executableLines":3,"executionCount":6,"lineCoverage":1,"lineNumber":65,"name":"TextNode.modifier(_:)"}],"lineCoverage":0.56521739130434778,"name":"NodeModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/NodeModifier.swift"},{"coveredLines":9,"executableLines":9,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":5,"name":"TextNode.color(_:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":16,"name":"ColorModifier.init(color:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":21,"name":"ColorModifier.render(content:)"}],"lineCoverage":1,"name":"ColorModifier.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/ColorModifier.swift"},{"coveredLines":13,"executableLines":16,"functions":[{"coveredLines":5,"executableLines":5,"executionCount":2,"lineCoverage":1,"lineNumber":20,"name":"ExampleSection.init(examples:header:label:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":27,"name":"ExampleSection.body.getter"},{"coveredLines":3,"executableLines":3,"executionCount":2,"lineCoverage":1,"lineNumber":38,"name":"ExampleSection<>.init(header:label:examples:)"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":39,"name":"closure #1 in ExampleSection<>.init(header:label:examples:)"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":39,"name":"closure #2 in ExampleSection<>.init(header:label:examples:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":47,"name":"ExampleSection<>.init(header:label:examples:)"}],"lineCoverage":0.8125,"name":"ExampleSection.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/ExampleSection.swift"},{"coveredLines":0,"executableLines":4,"functions":[{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":5,"name":"Empty.init()"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":8,"name":"Empty.body.getter"}],"lineCoverage":0,"name":"Empty.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Empty.swift"},{"coveredLines":0,"executableLines":21,"functions":[{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":4,"name":"Section.style(_:)"},{"coveredLines":0,"executableLines":5,"executionCount":0,"lineCoverage":0,"lineNumber":15,"name":"SectionConfiguration.init(header:content:footer:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":25,"name":"static SectionStyle<>.default.getter"},{"coveredLines":0,"executableLines":7,"executionCount":0,"lineCoverage":0,"lineNumber":30,"name":"DefaultSectionStyle.render(content:)"},{"coveredLines":0,"executableLines":5,"executionCount":0,"lineCoverage":0,"lineNumber":31,"name":"closure #1 in DefaultSectionStyle.render(content:)"}],"lineCoverage":0,"name":"SectionStyle.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/SectionStyle.swift"},{"coveredLines":6,"executableLines":6,"functions":[{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":8,"name":"Group.init(content:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":13,"name":"Group.body.getter"}],"lineCoverage":1,"name":"Group.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Nodes\/Group.swift"},{"coveredLines":80,"executableLines":83,"functions":[{"coveredLines":7,"executableLines":7,"executionCount":1,"lineCoverage":1,"lineNumber":5,"name":"ExampleSection.style(_:)"},{"coveredLines":7,"executableLines":7,"executionCount":1,"lineCoverage":1,"lineNumber":13,"name":"ExampleSection.exampleStyle(_:)"},{"coveredLines":0,"executableLines":3,"executionCount":0,"lineCoverage":0,"lineNumber":23,"name":"Array.exampleStyle(_:)"},{"coveredLines":5,"executableLines":5,"executionCount":2,"lineCoverage":1,"lineNumber":39,"name":"ExampleSectionConfiguration.init(header:label:examples:)"},{"coveredLines":3,"executableLines":3,"executionCount":2,"lineCoverage":1,"lineNumber":51,"name":"ExampleConfiguration.init(examples:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":60,"name":"static ExampleSectionStyle<>.default(exampleStyle:)"},{"coveredLines":3,"executableLines":3,"executionCount":1,"lineCoverage":1,"lineNumber":66,"name":"static ExampleStyle<>.default.getter"},{"coveredLines":3,"executableLines":3,"executionCount":2,"lineCoverage":1,"lineNumber":77,"name":"DefaultExamplesStyle.init(exampleStyle:)"},{"coveredLines":9,"executableLines":9,"executionCount":2,"lineCoverage":1,"lineNumber":82,"name":"DefaultExamplesStyle.render(content:)"},{"coveredLines":7,"executableLines":7,"executionCount":2,"lineCoverage":1,"lineNumber":83,"name":"closure #1 in DefaultExamplesStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":2,"lineCoverage":1,"lineNumber":84,"name":"closure #1 in closure #1 in DefaultExamplesStyle.render(content:)"},{"coveredLines":10,"executableLines":10,"executionCount":1,"lineCoverage":1,"lineNumber":95,"name":"DefaultExampleStyle.render(content:)"},{"coveredLines":8,"executableLines":8,"executionCount":1,"lineCoverage":1,"lineNumber":96,"name":"closure #1 in DefaultExampleStyle.render(content:)"},{"coveredLines":6,"executableLines":6,"executionCount":2,"lineCoverage":1,"lineNumber":97,"name":"closure #1 in closure #1 in DefaultExampleStyle.render(content:)"},{"coveredLines":4,"executableLines":4,"executionCount":2,"lineCoverage":1,"lineNumber":98,"name":"closure #1 in closure #1 in closure #1 in DefaultExampleStyle.render(content:)"},{"coveredLines":1,"executableLines":1,"executionCount":2,"lineCoverage":1,"lineNumber":100,"name":"closure #1 in closure #1 in closure #1 in closure #1 in DefaultExampleStyle.render(content:)"}],"lineCoverage":0.96385542168674698,"name":"ExamplesStyle.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Modifiers\/ExamplesStyle.swift"},{"coveredLines":17,"executableLines":20,"functions":[{"coveredLines":7,"executableLines":9,"executionCount":17,"lineCoverage":0.77777777777777779,"lineNumber":2,"name":"array(from:)"},{"coveredLines":9,"executableLines":9,"executionCount":17,"lineCoverage":1,"lineNumber":13,"name":"seperator(_:count:)"},{"coveredLines":1,"executableLines":1,"executionCount":17,"lineCoverage":1,"lineNumber":14,"name":"implicit closure #1 in seperator(_:count:)"},{"coveredLines":0,"executableLines":1,"executionCount":0,"lineCoverage":0,"lineNumber":14,"name":"implicit closure #2 in seperator(_:count:)"}],"lineCoverage":0.84999999999999998,"name":"Utils.swift","path":"\/Volumes\/Bucket\/Repos\/swift-cli-doc\/Sources\/CliDoc\/Utils.swift"}],"lineCoverage":0.7068965517241379,"name":"CliDocTests"}]} diff --git a/.nvim/xcodebuild/devices.json b/.nvim/xcodebuild/devices.json new file mode 100644 index 0000000..b1afe3e --- /dev/null +++ b/.nvim/xcodebuild/devices.json @@ -0,0 +1 @@ +{"projectFile": "/Volumes/Bucket/Repos/swift-cli-doc/Package.swift", "scheme": "swift-cli-doc", "devices": [{"platform": "macOS", "name": "My Mac", "arch": "arm64e", "id": "00008103-000E79D011EA001E"}]} diff --git a/.nvim/xcodebuild/report.json b/.nvim/xcodebuild/report.json new file mode 100644 index 0000000..b8abde3 --- /dev/null +++ b/.nvim/xcodebuild/report.json @@ -0,0 +1 @@ +{"testsCount": 6, "xcresultFilepath": "/Users/michael/Library/Developer/Xcode/DerivedData/swift-cli-doc-dgihrbuebwxquzdknevkczbenunz/Logs/Test/Test-swift-cli-doc-2024.12.04_17-02-40--0500.xcresult", "failedTestsCount": 0, "tests": {"CliDocTests:_Global": [{"target": "CliDocTests", "name": "testGroup", "testResult": "passed", "swiftTestingId": "CliDocTests/testGroup", "class": "_Global", "time": "0.00031 seconds", "success": true}, {"target": "CliDocTests", "name": "testHStack", "testResult": "passed", "swiftTestingId": "CliDocTests/testHStack", "class": "_Global", "time": "0.000081 seconds", "success": true}, {"target": "CliDocTests", "name": "testVStack", "testResult": "passed", "swiftTestingId": "CliDocTests/testVStack", "class": "_Global", "time": "0.000049 seconds", "success": true}, {"target": "CliDocTests", "name": "testNote", "testResult": "passed", "swiftTestingId": "CliDocTests/testNote", "class": "_Global", "time": "0.00027 seconds", "success": true}, {"target": "CliDocTests", "name": "testExamples", "testResult": "passed", "swiftTestingId": "CliDocTests/testExamples", "class": "_Global", "time": "0.00027 seconds", "success": true}, {"target": "CliDocTests", "name": "testExamplesWithCustomExampleOnlyStyle", "testResult": "passed", "swiftTestingId": "CliDocTests/testExamplesWithCustomExampleOnlyStyle", "class": "_Global", "time": "0.00016 seconds", "success": true}]}, "buildWarnings": [], "usesSwiftTesting": true, "testErrors": [], "buildErrors": []} diff --git a/.nvim/xcodebuild/settings.json b/.nvim/xcodebuild/settings.json new file mode 100644 index 0000000..724065b --- /dev/null +++ b/.nvim/xcodebuild/settings.json @@ -0,0 +1 @@ +{"platform": "macOS", "workingDirectory": "/Volumes/Bucket/Repos/swift-cli-doc", "swiftPackage": "/Volumes/Bucket/Repos/swift-cli-doc/Package.swift", "deviceName": "My Mac", "destination": "00008103-000E79D011EA001E", "lastBuildTime": 7, "scheme": "swift-cli-doc"} diff --git a/.nvim/xcodebuild/test-explorer.json b/.nvim/xcodebuild/test-explorer.json new file mode 100644 index 0000000..bc70a22 --- /dev/null +++ b/.nvim/xcodebuild/test-explorer.json @@ -0,0 +1 @@ +[{"status": "passed", "hidden": false, "name": "CliDocTests", "classes": [{"status": "passed", "hidden": false, "id": "CliDocTests/_Global", "name": "_Global", "tests": [{"status": "passed", "hidden": false, "name": "testExamples", "id": "CliDocTests/_Global/testExamples", "swiftTestingId": "CliDocTests/testExamples", "kind": "test"}, {"status": "passed", "hidden": false, "name": "testExamplesWithCustomExampleOnlyStyle", "id": "CliDocTests/_Global/testExamplesWithCustomExampleOnlyStyle", "swiftTestingId": "CliDocTests/testExamplesWithCustomExampleOnlyStyle", "kind": "test"}, {"status": "passed", "hidden": false, "name": "testGroup", "id": "CliDocTests/_Global/testGroup", "swiftTestingId": "CliDocTests/testGroup", "kind": "test"}, {"status": "passed", "hidden": false, "name": "testHStack", "id": "CliDocTests/_Global/testHStack", "swiftTestingId": "CliDocTests/testHStack", "kind": "test"}, {"status": "passed", "hidden": false, "name": "testNote", "id": "CliDocTests/_Global/testNote", "swiftTestingId": "CliDocTests/testNote", "kind": "test"}, {"status": "passed", "hidden": false, "name": "testVStack", "id": "CliDocTests/_Global/testVStack", "swiftTestingId": "CliDocTests/testVStack", "kind": "test"}], "swiftTestingId": "CliDocTests", "kind": "class"}], "id": "CliDocTests", "kind": "target"}] diff --git a/Sources/CliDoc/Modifiers/ExamplesStyle.swift b/Sources/CliDoc/Modifiers/ExamplesStyle.swift index 0b12c50..74b9bfb 100644 --- a/Sources/CliDoc/Modifiers/ExamplesStyle.swift +++ b/Sources/CliDoc/Modifiers/ExamplesStyle.swift @@ -11,7 +11,7 @@ public extension ExampleSection { } func exampleStyle(_ style: S) -> some TextNode { - DefaultExamplesStyle().render(content: .init( + DefaultExamplesStyle(exampleStyle: style).render(content: .init( header: header, label: label, examples: examples diff --git a/Sources/CliDoc/Modifiers/SectionStyle.swift b/Sources/CliDoc/Modifiers/SectionStyle.swift new file mode 100644 index 0000000..a38d39b --- /dev/null +++ b/Sources/CliDoc/Modifiers/SectionStyle.swift @@ -0,0 +1,37 @@ +public extension Section { + + @inlinable + func style(_ style: S) -> some TextNode { + style.render(content: .init(header: header, content: content, footer: footer)) + } +} + +public struct SectionConfiguration { + public let header: any TextNode + public let content: any TextNode + public let footer: any TextNode + + @usableFromInline + init(header: any TextNode, content: any TextNode, footer: any TextNode) { + self.header = header + self.content = content + self.footer = footer + } +} + +public protocol SectionStyle: NodeModifier where Content == SectionConfiguration {} + +public extension SectionStyle where Self == DefaultSectionStyle { + static var `default`: Self { DefaultSectionStyle() } +} + +public struct DefaultSectionStyle: SectionStyle { + + public func render(content: SectionConfiguration) -> some TextNode { + VStack { + content.header + content.content + content.footer.textStyle(.italic) + } + } +} diff --git a/Sources/CliDoc/Nodes/Examples.swift b/Sources/CliDoc/Nodes/ExampleSection.swift similarity index 100% rename from Sources/CliDoc/Nodes/Examples.swift rename to Sources/CliDoc/Nodes/ExampleSection.swift diff --git a/Sources/CliDoc/Nodes/Section.swift b/Sources/CliDoc/Nodes/Section.swift new file mode 100644 index 0000000..243e257 --- /dev/null +++ b/Sources/CliDoc/Nodes/Section.swift @@ -0,0 +1,46 @@ +public struct Section: TextNode { + + @usableFromInline + let header: Header + + @usableFromInline + let content: Content + + @usableFromInline + let footer: Footer + + @inlinable + public init( + @TextBuilder header: () -> Header, + @TextBuilder content: () -> Content, + @TextBuilder footer: () -> Footer + ) { + self.header = header() + self.content = content() + self.footer = footer() + } + + public var body: some TextNode { + style(.default) + } +} + +public extension Section where Footer == Empty { + @inlinable + init( + @TextBuilder header: () -> Header, + @TextBuilder content: () -> Content + ) { + self.init(header: header, content: content) { Empty() } + } +} + +public extension Section where Header == Empty { + @inlinable + init( + @TextBuilder content: () -> Content, + @TextBuilder footer: () -> Footer + ) { + self.init(header: { Empty() }, content: content, footer: footer) + } +}