├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── feature_request.yml └── pull_request_template.md ├── .gitignore ├── Package.resolved ├── Package.swift ├── README.md ├── Sources └── CodeEditSymbols │ ├── CodeEditSymbols.swift │ ├── Documentation.docc │ ├── Add Custom Symbols.md │ ├── Documentation.md │ └── Resources │ │ ├── annotating.png │ │ └── fill_variant.png │ └── Symbols.xcassets │ ├── Contents.json │ ├── branch.symbolset │ ├── Contents.json │ └── branch.svg │ ├── breakpoint.fill.symbolset │ ├── Contents.json │ └── breakpoint.fill.svg │ ├── breakpoint.symbolset │ ├── Contents.json │ └── breakpoint.svg │ ├── checkout.symbolset │ ├── Contents.json │ └── checkout.svg │ ├── chevron.up.chevron.down.symbolset │ ├── Contents.json │ └── chevron.up.chevron.down.svg │ ├── commit.symbolset │ ├── Contents.json │ └── commit.svg │ ├── doc.java.symbolset │ ├── Contents.json │ └── doc.java.svg │ ├── doc.javascript.symbolset │ ├── Contents.json │ └── doc.javascript.svg │ ├── doc.json.symbolset │ ├── Contents.json │ └── doc.json.svg │ ├── doc.python.symbolset │ ├── Contents.json │ └── doc.python.svg │ ├── doc.ruby.symbolset │ ├── Contents.json │ └── doc.ruby.svg │ ├── github.symbolset │ ├── Contents.json │ └── github.svg │ ├── square.split.horizontal.plus.symbolset │ ├── Contents.json │ └── square.split.horizontal.plus.svg │ ├── square.split.vertical.plus.symbolset │ ├── Contents.json │ └── square.split.vertical.plus.svg │ ├── vault.fill.symbolset │ ├── Contents.json │ └── vault.fill.svg │ └── vault.symbolset │ ├── Contents.json │ └── vault.svg └── Tests └── CodeEditSymbolsTests ├── CodeEditSymbolsTests.swift └── __Snapshots__ └── CodeEditSymbolsTests ├── testCreateImageBreakpoint.1.png ├── testCreateImageBreakpointFill.1.png ├── testCreateImageCheckout.1.png ├── testCreateImageCommit.1.png ├── testCreateImageGitHub.1.png ├── testCreateImageVault.1.png ├── testCreateImageVaultFill.1.png ├── testCreateNSImageBreakpoint.1.png ├── testCreateNSImageBreakpointFill.1.png ├── testCreateNSImageCheckout.1.png ├── testCreateNSImageCommit.1.png ├── testCreateNSImageGitHub.1.png ├── testCreateNSImageVault.1.png └── testCreateNSImageVaultFill.1.png /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: 🐞 Bug report 2 | description: Something is not working as expected. 3 | title: 🐞 4 | labels: bug 5 | 6 | body: 7 | - type: textarea 8 | attributes: 9 | label: Description 10 | placeholder: >- 11 | A clear and concise description of what the bug is... 12 | validations: 13 | required: true 14 | 15 | - type: textarea 16 | attributes: 17 | label: To Reproduce 18 | description: >- 19 | Steps to reliably reproduce the behavior. 20 | placeholder: | 21 | 1. Go to '...' 22 | 2. Click on '....' 23 | 3. Scroll down to '....' 24 | 4. See error 25 | validations: 26 | required: true 27 | 28 | - type: textarea 29 | attributes: 30 | label: Expected Behavior 31 | placeholder: >- 32 | A clear and concise description of what you expected to happen... 33 | validations: 34 | required: true 35 | 36 | - type: textarea 37 | attributes: 38 | label: Version Information 39 | description: >- 40 | click on the version number on the welcome screen 41 | value: | 42 | CodeEditSymbols: [e.g. 0.0.x-alpha.y] 43 | macOS: [e.g. 13.2.1] 44 | Xcode: [e.g. 14.2] 45 | 46 | - type: textarea 47 | attributes: 48 | label: Additional Context 49 | placeholder: >- 50 | Any other context or considerations about the bug... 51 | 52 | - type: textarea 53 | attributes: 54 | label: Screenshots 55 | placeholder: >- 56 | If applicable, please provide relevant screenshots or screen recordings... 57 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: ✨ Feature request 2 | description: Suggest an idea for this project 3 | title: ✨ 4 | labels: enhancement 5 | 6 | body: 7 | - type: textarea 8 | attributes: 9 | label: Description 10 | placeholder: >- 11 | A clear and concise description of what you would like to happen... 12 | validations: 13 | required: true 14 | 15 | - type: textarea 16 | attributes: 17 | label: Alternatives Considered 18 | placeholder: >- 19 | Any alternative solutions or features you've considered... 20 | 21 | - type: textarea 22 | attributes: 23 | label: Additional Context 24 | placeholder: >- 25 | Any other context or considerations about the feature request... 26 | 27 | - type: textarea 28 | attributes: 29 | label: Screenshots 30 | placeholder: >- 31 | If applicable, please provide relevant screenshots or screen recordings... 32 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ### Description 4 | 5 | 6 | 7 | ### Related Issues 8 | 9 | 10 | 11 | 12 | 13 | * #ISSUE_NUMBER 14 | 15 | ### Checklist 16 | 17 | 18 | 19 | - [ ] I read and understood the [contributing guide](https://github.com/CodeEditApp/CodeEdit/blob/main/CONTRIBUTING.md) as well as the [code of conduct](https://github.com/CodeEditApp/CodeEdit/blob/main/CODE_OF_CONDUCT.md) 20 | - [ ] The issues this PR addresses are related to each other 21 | - [ ] My changes generate no new warnings 22 | - [ ] My code builds and runs on my machine 23 | - [ ] My changes are all related to the related issue above 24 | - [ ] I documented my code 25 | 26 | ### Screenshots 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## User settings 6 | xcuserdata/ 7 | 8 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 9 | *.xcscmblueprint 10 | *.xccheckout 11 | 12 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 13 | build/ 14 | DerivedData/ 15 | *.moved-aside 16 | *.pbxuser 17 | !default.pbxuser 18 | *.mode1v3 19 | !default.mode1v3 20 | *.mode2v3 21 | !default.mode2v3 22 | *.perspectivev3 23 | !default.perspectivev3 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | 28 | ## App packaging 29 | *.ipa 30 | *.dSYM.zip 31 | *.dSYM 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | # 39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 40 | # Packages/ 41 | # Package.pins 42 | # Package.resolved 43 | # *.xcodeproj 44 | # 45 | # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata 46 | # hence it is not needed unless you have added a package configuration file to your project 47 | .swiftpm 48 | 49 | .build/ 50 | 51 | # CocoaPods 52 | # 53 | # We recommend against adding the Pods directory to your .gitignore. However 54 | # you should judge for yourself, the pros and cons are mentioned at: 55 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 56 | # 57 | # Pods/ 58 | # 59 | # Add this line if you want to avoid checking in source code from the Xcode workspace 60 | # *.xcworkspace 61 | 62 | # Carthage 63 | # 64 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 65 | # Carthage/Checkouts 66 | 67 | Carthage/Build/ 68 | 69 | # Accio dependency management 70 | Dependencies/ 71 | .accio/ 72 | 73 | # fastlane 74 | # 75 | # It is recommended to not store the screenshots in the git repo. 76 | # Instead, use fastlane to re-generate the screenshots whenever they are needed. 77 | # For more information about the recommended setup visit: 78 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 79 | 80 | fastlane/report.xml 81 | fastlane/Preview.html 82 | fastlane/screenshots/**/*.png 83 | fastlane/test_output 84 | 85 | # Code Injection 86 | # 87 | # After new code Injection tools there's a generated folder /iOSInjectionProject 88 | # https://github.com/johnno1962/injectionforxcode 89 | 90 | iOSInjectionProject/ 91 | -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "SnapshotTesting", 6 | "repositoryURL": "https://github.com/pointfreeco/swift-snapshot-testing.git", 7 | "state": { 8 | "branch": null, 9 | "revision": "f8a9c997c3c1dab4e216a8ec9014e23144cbab37", 10 | "version": "1.9.0" 11 | } 12 | } 13 | ] 14 | }, 15 | "version": 1 16 | } 17 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.5 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "CodeEditSymbols", 7 | platforms: [ 8 | .macOS(.v12), 9 | ], 10 | products: [ 11 | // Products define the executables and libraries a package produces, and make them visible to other packages. 12 | .library( 13 | name: "CodeEditSymbols", 14 | targets: ["CodeEditSymbols"]), 15 | ], 16 | dependencies: [ 17 | .package( 18 | name: "SnapshotTesting", 19 | url: "https://github.com/pointfreeco/swift-snapshot-testing.git", 20 | from: "1.9.0" 21 | ), 22 | ], 23 | targets: [ 24 | .target( 25 | name: "CodeEditSymbols", 26 | dependencies: [] 27 | ), 28 | .testTarget( 29 | name: "CodeEditSymbolsTests", 30 | dependencies: [ 31 | "CodeEditSymbols", 32 | "SnapshotTesting" 33 | ] 34 | ), 35 | ] 36 | ) 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CodeEditSymbols 2 | 3 | A package containing all custom assets for CodeEdit. These are mostly custom [SF Symbols](https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/#creating-custom-symbols). 4 | 5 | ## How to use 6 | 7 | ### `NSImage`: 8 | 9 | ```swift 10 | import CodeEditSymbols 11 | 12 | let nsImage = NSImage.symbol(named: "name_of_the_symbol") 13 | 14 | // or using the static property: 15 | 16 | let nsImage1 = NSImage.name_of_the_symbol 17 | ``` 18 | 19 | ### `Image`: 20 | 21 | ```swift 22 | import CodeEditSymbols 23 | 24 | let image = Image(symbol: "name_of_the_symbol") 25 | 26 | // or using the static property: 27 | 28 | let image1 = Image.name_of_the_symbol 29 | ``` 30 | 31 | ## Creating a new Asset 32 | 33 | To create a new asset, follow the guide on [Apple's developer website](https://developer.apple.com/documentation/uikit/uiimage/creating_custom_symbol_images_for_your_app). 34 | 35 | Add the `.svg` you exported from `SF Symbols.app` to the `Symbols.xcassets` catalog. 36 | 37 | Also add a static property to the `Image` and `NSImage` extension like so: 38 | 39 | ```swift 40 | // Image Extension 41 | static let your_symbol_name: Image = .init(symbol: "your_symbol_name") 42 | 43 | // NSImage Extension 44 | static let your_symbol_name: NSImage = .symbol(named: "your_symbol_name") 45 | ``` 46 | 47 | > **Important:** Make sure your symbol looks great in every font weight. 48 | 49 | ## Tests 50 | 51 | Also include snapshot tests for each symbol for `Image` as well as `NSImage`: 52 | 53 | ### `NSImage`: 54 | 55 | ```swift 56 | // MARK: YOUR_SYMBOL_NAME 57 | 58 | func testCreateNSImageYourSymbolName() { 59 | let image = NSImage.your_symbol_name 60 | let view = NSImageView(image: image) 61 | view.appearance = .init(named: .aqua) 62 | assertSnapshot(matching: view, as: .image, record: record) 63 | } 64 | ``` 65 | 66 | ### `Image`: 67 | 68 | ```swift 69 | // MARK: YOUR_SYMBOL_NAME 70 | 71 | func testCreateImageYourSymbolName() { 72 | let image = Image.your_symbol_name 73 | let view: NSView = NSHostingController(rootView: image).view 74 | view.appearance = .init(named: .aqua) 75 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize)) 76 | } 77 | ``` 78 | 79 | ## Variants 80 | 81 | Keep different variants of a symbol in the same parent folder and name them appropriately (see Apple's own symbols for reference). 82 | 83 | You might have a symbol called `lock` and one where the symbol is inside a square where you would call that file `lock.square`. Also keep in mind to also provide a `.fill` variant if appropriate (`lock.fill`, `lock.square.fill`) 84 | 85 | ### Example of a `.fill` Variant 86 | 87 | Screen Shot 2022-04-18 at 00 29 57 88 | 89 | ## Annotate the Symbol 90 | 91 | As of version 3 of `SF Symbols` it is possible to create `multi-color`, `hierarchical` and `palette` annotations inside the `SF Symbols.app`. Be sure to annotate it accordingly if appropriate. 92 | 93 | Screen Shot 2022-04-18 at 00 40 26 94 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/CodeEditSymbols.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CodeEditSymbols.swift 3 | // 4 | // Created by Lukas Pistrol on 18.04.22. 5 | // 6 | 7 | import SwiftUI 8 | 9 | public extension Image { 10 | 11 | /// Creates an Image representing a custom SF Symbol 12 | /// - Parameter symbol: The name of the symbol in `Symbols.xcassets` 13 | init(symbol: String) { 14 | self.init(symbol, bundle: Bundle.module) 15 | } 16 | 17 | // MARK: - Symbols 18 | 19 | static let vault: Image = .init(symbol: "vault") 20 | static let vaultFill: Image = .init(symbol: "vault.fill") 21 | static let commit: Image = .init(symbol: "commit") 22 | static let checkout: Image = .init(symbol: "checkout") 23 | static let branch: Image = .init(symbol: "branch") 24 | static let breakpoint: Image = .init(symbol: "breakpoint") 25 | static let breakpointFill: Image = .init(symbol: "breakpoint.fill") 26 | static let chevronUpChevronDown: Image = .init(symbol: "chevron.up.chevron.down") 27 | static let github: Image = .init(symbol: "github") 28 | static let docJava: Image = .init(symbol: "doc.java") 29 | static let docJavascript: Image = .init(symbol: "doc.javascript") 30 | static let docJson: Image = .init(symbol: "doc.json") 31 | static let docPython: Image = .init(symbol: "doc.python") 32 | static let docRuby: Image = .init(symbol: "doc.ruby") 33 | static let squareSplitHorizontalPlus: Image = .init(symbol: "square.split.horizontal.plus") 34 | static let squareSplitVerticalPlus: Image = .init(symbol: "square.split.vertical.plus") 35 | 36 | // add static properties for your symbols above this line 37 | 38 | } 39 | 40 | 41 | public extension NSImage { 42 | 43 | /// Returns a NSImage representing a custom SF Symbol 44 | /// - Parameter named: The name of the symbol in `Symbols.xcassets` 45 | /// - Returns: a NSImage 46 | static func symbol(named: String) -> NSImage? { 47 | Bundle.module.image(forResource: named) 48 | } 49 | 50 | // MARK: - Symbols 51 | 52 | static let vault: NSImage? = .symbol(named: "vault") 53 | static let vaultFill: NSImage? = .symbol(named: "vault.fill") 54 | static let commit: NSImage? = .symbol(named: "commit") 55 | static let checkout: NSImage? = .symbol(named: "checkout") 56 | static let branch: NSImage? = .symbol(named: "branch") 57 | static let breakpoint: NSImage? = .symbol(named: "breakpoint") 58 | static let breakpointFill: NSImage? = .symbol(named: "breakpoint.fill") 59 | static let chevronUpChevronDown: NSImage? = .symbol(named: "chevron.up.chevron.down") 60 | static let github: NSImage? = .symbol(named: "github") 61 | static let docJava: NSImage? = .symbol(named: "doc.java") 62 | static let docJavascript: NSImage? = .symbol(named: "doc.javascript") 63 | static let docJson: NSImage? = .symbol(named: "doc.json") 64 | static let docPython: NSImage? = .symbol(named: "doc.python") 65 | static let docRuby: NSImage? = .symbol(named: "doc.ruby") 66 | static let squareSplitHorizontalPlus: NSImage? = .symbol(named: "square.split.horizontal.plus") 67 | static let squareSplitVerticalPlus: NSImage? = .symbol(named: "square.split.vertical.plus") 68 | 69 | // add static properties for your symbols above this line 70 | 71 | } 72 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Documentation.docc/Add Custom Symbols.md: -------------------------------------------------------------------------------- 1 | # Add Custom Symbols 2 | 3 | To create a new asset, follow the guide on [Apple's developer website](https://developer.apple.com/documentation/uikit/uiimage/creating_custom_symbol_images_for_your_app). 4 | 5 | ## Overview 6 | 7 | Add the `.svg` you exported from `SF Symbols.app` to the `Symbols.xcassets` catalog. 8 | 9 | Also add a static property to the `Image` and `NSImage` extension like so: 10 | 11 | ```swift 12 | // Image Extension 13 | static let your_symbol_name: Image = .init(symbol: "your_symbol_name") 14 | 15 | // NSImage Extension 16 | static let your_symbol_name: NSImage = .symbol(named: "your_symbol_name") 17 | ``` 18 | 19 | > **Important:** Make sure your symbol looks great in every font weight. 20 | 21 | 22 | ## Tests 23 | 24 | Also include snapshot tests for each symbol for `Image` as well as `NSImage`: 25 | 26 | ### NSImage: 27 | 28 | ```swift 29 | // MARK: YOUR_SYMBOL_NAME 30 | 31 | func testCreateNSImageYourSymbolName() { 32 | let image = NSImage.your_symbol_name 33 | let view = NSImageView(image: image) 34 | view.appearance = .init(named: .aqua) 35 | assertSnapshot(matching: view, as: .image, record: record) 36 | } 37 | ``` 38 | 39 | ### Image: 40 | 41 | ```swift 42 | // MARK: YOUR_SYMBOL_NAME 43 | 44 | func testCreateImageYourSymbolName() { 45 | let image = Image.your_symbol_name 46 | let view: NSView = NSHostingController(rootView: image).view 47 | view.appearance = .init(named: .aqua) 48 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize)) 49 | } 50 | ``` 51 | 52 | ## Variants 53 | 54 | Keep different variants of a symbol in the same parent folder and name them appropriately (see Apple's own symbols for reference). 55 | 56 | You might have a symbol called `lock` and one where the symbol is inside a square where you would call that file `lock.square`. Also keep in mind to also provide a `.fill` variant if appropriate (`lock.fill`, `lock.square.fill`) 57 | 58 | ### Example of a `.fill` Variant 59 | 60 | ![Fill Variant](fill_variant.png) 61 | 62 | ## Annotate the Symbol 63 | 64 | As of version 3 of `SF Symbols` it is possible to create `multi-color`, `hierarchical` and `palette` annotations inside the `SF Symbols.app`. Be sure to annotate it accordingly if appropriate. 65 | 66 | ![Annotating](annotating.png) 67 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Documentation.docc/Documentation.md: -------------------------------------------------------------------------------- 1 | # ``CodeEditSymbols`` 2 | 3 | A package containing all custom assets for CodeEdit. These are mostly custom [SF Symbols](https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/#creating-custom-symbols). 4 | 5 | ## How to use 6 | 7 | ### NSImage: 8 | 9 | ```swift 10 | import CodeEditSymbols 11 | 12 | let nsImage = NSImage.symbol(named: "name_of_the_symbol") 13 | 14 | // or using the static property: 15 | 16 | let nsImage1 = NSImage.name_of_the_symbol 17 | ``` 18 | 19 | ### Image: 20 | 21 | ```swift 22 | import CodeEditSymbols 23 | 24 | let image = Image(symbol: "name_of_the_symbol") 25 | 26 | // or using the static property: 27 | 28 | let image1 = Image.name_of_the_symbol 29 | ``` 30 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Documentation.docc/Resources/annotating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Sources/CodeEditSymbols/Documentation.docc/Resources/annotating.png -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Documentation.docc/Resources/fill_variant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Sources/CodeEditSymbols/Documentation.docc/Resources/fill_variant.png -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/branch.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "branch.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/branch.symbolset/branch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 14 | 15 | 16 | 17 | Weight/Scale Variations 18 | Ultralight 19 | Thin 20 | Light 21 | Regular 22 | Medium 23 | Semibold 24 | Bold 25 | Heavy 26 | Black 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | Design Variations 38 | Symbols are supported in up to nine weights and three scales. 39 | For optimal layout with text and other symbols, vertically align 40 | symbols with the adjacent text. 41 | 42 | 43 | 44 | 45 | 46 | Margins 47 | Leading and trailing margins on the left and right side of each symbol 48 | can be adjusted by modifying the x-location of the margin guidelines. 49 | Modifications are automatically applied proportionally to all 50 | scales and weights. 51 | 52 | 53 | 54 | Exporting 55 | Symbols should be outlined when exporting to ensure the 56 | design is preserved when submitting to Xcode. 57 | Template v.4.0 58 | Requires Xcode 14 or greater 59 | Generated from branch 60 | Typeset at 100.0 points 61 | Small 62 | Medium 63 | Large 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/breakpoint.fill.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "breakpoint.fill.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/breakpoint.fill.symbolset/breakpoint.fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | Weight/Scale Variations 12 | Ultralight 13 | Thin 14 | Light 15 | Regular 16 | Medium 17 | Semibold 18 | Bold 19 | Heavy 20 | Black 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Design Variations 32 | Symbols are supported in up to nine weights and three scales. 33 | For optimal layout with text and other symbols, vertically align 34 | symbols with the adjacent text. 35 | 36 | 37 | 38 | 39 | 40 | Margins 41 | Leading and trailing margins on the left and right side of each symbol 42 | can be adjusted by modifying the x-location of the margin guidelines. 43 | Modifications are automatically applied proportionally to all 44 | scales and weights. 45 | 46 | 47 | 48 | Exporting 49 | Symbols should be outlined when exporting to ensure the 50 | design is preserved when submitting to Xcode. 51 | Template v.3.0 52 | Requires Xcode 13 or greater 53 | Generated from breakpoint.fill 54 | Typeset at 100 points 55 | Small 56 | Medium 57 | Large 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/breakpoint.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "breakpoint.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/checkout.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "checkout.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/checkout.symbolset/checkout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 17 | 18 | 19 | 20 | Weight/Scale Variations 21 | Ultralight 22 | Thin 23 | Light 24 | Regular 25 | Medium 26 | Semibold 27 | Bold 28 | Heavy 29 | Black 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | Design Variations 41 | Symbols are supported in up to nine weights and three scales. 42 | For optimal layout with text and other symbols, vertically align 43 | symbols with the adjacent text. 44 | 45 | 46 | 47 | 48 | 49 | Margins 50 | Leading and trailing margins on the left and right side of each symbol 51 | can be adjusted by modifying the x-location of the margin guidelines. 52 | Modifications are automatically applied proportionally to all 53 | scales and weights. 54 | 55 | 56 | 57 | Exporting 58 | Symbols should be outlined when exporting to ensure the 59 | design is preserved when submitting to Xcode. 60 | Template v.3.0 61 | Requires Xcode 13 or greater 62 | Generated from branch 63 | Typeset at 100 points 64 | Small 65 | Medium 66 | Large 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/chevron.up.chevron.down.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "chevron.up.chevron.down.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/commit.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "commit.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/commit.symbolset/commit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 17 | 18 | 19 | 20 | Weight/Scale Variations 21 | Ultralight 22 | Thin 23 | Light 24 | Regular 25 | Medium 26 | Semibold 27 | Bold 28 | Heavy 29 | Black 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | Design Variations 41 | Symbols are supported in up to nine weights and three scales. 42 | For optimal layout with text and other symbols, vertically align 43 | symbols with the adjacent text. 44 | 45 | 46 | 47 | 48 | 49 | Margins 50 | Leading and trailing margins on the left and right side of each symbol 51 | can be adjusted by modifying the x-location of the margin guidelines. 52 | Modifications are automatically applied proportionally to all 53 | scales and weights. 54 | 55 | 56 | 57 | Exporting 58 | Symbols should be outlined when exporting to ensure the 59 | design is preserved when submitting to Xcode. 60 | Template v.3.0 61 | Requires Xcode 13 or greater 62 | Generated from commit 63 | Typeset at 100 points 64 | Small 65 | Medium 66 | Large 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/doc.java.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "xcode", 4 | "version": 1 5 | }, 6 | "symbols": [ 7 | { 8 | "filename": "doc.java.svg", 9 | "idiom": "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/doc.javascript.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "xcode", 4 | "version": 1 5 | }, 6 | "symbols": [ 7 | { 8 | "filename": "doc.javascript.svg", 9 | "idiom": "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/doc.json.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "xcode", 4 | "version": 1 5 | }, 6 | "symbols": [ 7 | { 8 | "filename": "doc.json.svg", 9 | "idiom": "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/doc.python.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "xcode", 4 | "version": 1 5 | }, 6 | "symbols": [ 7 | { 8 | "filename": "doc.python.svg", 9 | "idiom": "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/doc.ruby.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "xcode", 4 | "version": 1 5 | }, 6 | "symbols": [ 7 | { 8 | "filename": "doc.ruby.svg", 9 | "idiom": "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/github.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "github.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/github.symbolset/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 12 | 13 | 14 | 15 | Weight/Scale Variations 16 | Ultralight 17 | Thin 18 | Light 19 | Regular 20 | Medium 21 | Semibold 22 | Bold 23 | Heavy 24 | Black 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | Design Variations 36 | Symbols are supported in up to nine weights and three scales. 37 | For optimal layout with text and other symbols, vertically align 38 | symbols with the adjacent text. 39 | 40 | 41 | 42 | 43 | 44 | Margins 45 | Leading and trailing margins on the left and right side of each symbol 46 | can be adjusted by modifying the x-location of the margin guidelines. 47 | Modifications are automatically applied proportionally to all 48 | scales and weights. 49 | 50 | 51 | 52 | Exporting 53 | Symbols should be outlined when exporting to ensure the 54 | design is preserved when submitting to Xcode. 55 | Template v.3.0 56 | Requires Xcode 13 or greater 57 | Generated from github 58 | Typeset at 100 points 59 | Small 60 | Medium 61 | Large 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/square.split.horizontal.plus.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "xcode", 4 | "version": 1 5 | }, 6 | "symbols": [ 7 | { 8 | "filename": "square.split.horizontal.plus.svg", 9 | "idiom": "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/square.split.horizontal.plus.symbolset/square.split.horizontal.plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 16 | 17 | 18 | 19 | Weight/Scale Variations 20 | Ultralight 21 | Thin 22 | Light 23 | Regular 24 | Medium 25 | Semibold 26 | Bold 27 | Heavy 28 | Black 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | Design Variations 40 | Symbols are supported in up to nine weights and three scales. 41 | For optimal layout with text and other symbols, vertically align 42 | symbols with the adjacent text. 43 | 44 | 45 | 46 | 47 | 48 | Margins 49 | Leading and trailing margins on the left and right side of each symbol 50 | can be adjusted by modifying the x-location of the margin guidelines. 51 | Modifications are automatically applied proportionally to all 52 | scales and weights. 53 | 54 | 55 | 56 | Exporting 57 | Symbols should be outlined when exporting to ensure the 58 | design is preserved when submitting to Xcode. 59 | Template v.4.0 60 | Requires Xcode 14 or greater 61 | Generated from square.split.horizontal.plus 62 | Typeset at 100.0 points 63 | Small 64 | Medium 65 | Large 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/square.split.vertical.plus.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "author": "xcode", 4 | "version": 1 5 | }, 6 | "symbols": [ 7 | { 8 | "filename": "square.split.vertical.plus.svg", 9 | "idiom": "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/square.split.vertical.plus.symbolset/square.split.vertical.plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 16 | 17 | 18 | 19 | Weight/Scale Variations 20 | Ultralight 21 | Thin 22 | Light 23 | Regular 24 | Medium 25 | Semibold 26 | Bold 27 | Heavy 28 | Black 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | Design Variations 40 | Symbols are supported in up to nine weights and three scales. 41 | For optimal layout with text and other symbols, vertically align 42 | symbols with the adjacent text. 43 | 44 | 45 | 46 | 47 | 48 | Margins 49 | Leading and trailing margins on the left and right side of each symbol 50 | can be adjusted by modifying the x-location of the margin guidelines. 51 | Modifications are automatically applied proportionally to all 52 | scales and weights. 53 | 54 | 55 | 56 | Exporting 57 | Symbols should be outlined when exporting to ensure the 58 | design is preserved when submitting to Xcode. 59 | Template v.4.0 60 | Requires Xcode 14 or greater 61 | Generated from square.split.vertical.plus 62 | Typeset at 100.0 points 63 | Small 64 | Medium 65 | Large 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/vault.fill.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "vault.fill.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/vault.fill.symbolset/vault.fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 14 | 15 | 16 | 17 | Weight/Scale Variations 18 | Ultralight 19 | Thin 20 | Light 21 | Regular 22 | Medium 23 | Semibold 24 | Bold 25 | Heavy 26 | Black 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | Design Variations 38 | Symbols are supported in up to nine weights and three scales. 39 | For optimal layout with text and other symbols, vertically align 40 | symbols with the adjacent text. 41 | 42 | 43 | 44 | 45 | 46 | Margins 47 | Leading and trailing margins on the left and right side of each symbol 48 | can be adjusted by modifying the x-location of the margin guidelines. 49 | Modifications are automatically applied proportionally to all 50 | scales and weights. 51 | 52 | 53 | 54 | Exporting 55 | Symbols should be outlined when exporting to ensure the 56 | design is preserved when submitting to Xcode. 57 | Template v.3.0 58 | Requires Xcode 13 or greater 59 | Generated from vault.fill 60 | Typeset at 100 points 61 | Small 62 | Medium 63 | Large 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/vault.symbolset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "symbols" : [ 7 | { 8 | "filename" : "vault.svg", 9 | "idiom" : "universal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Sources/CodeEditSymbols/Symbols.xcassets/vault.symbolset/vault.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 14 | 15 | 16 | 17 | Weight/Scale Variations 18 | Ultralight 19 | Thin 20 | Light 21 | Regular 22 | Medium 23 | Semibold 24 | Bold 25 | Heavy 26 | Black 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | Design Variations 38 | Symbols are supported in up to nine weights and three scales. 39 | For optimal layout with text and other symbols, vertically align 40 | symbols with the adjacent text. 41 | 42 | 43 | 44 | 45 | 46 | Margins 47 | Leading and trailing margins on the left and right side of each symbol 48 | can be adjusted by modifying the x-location of the margin guidelines. 49 | Modifications are automatically applied proportionally to all 50 | scales and weights. 51 | 52 | 53 | 54 | Exporting 55 | Symbols should be outlined when exporting to ensure the 56 | design is preserved when submitting to Xcode. 57 | Template v.3.0 58 | Requires Xcode 13 or greater 59 | Generated from vault 60 | Typeset at 100 points 61 | Small 62 | Medium 63 | Large 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/CodeEditSymbolsTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | import SwiftUI 3 | import SnapshotTesting 4 | @testable import CodeEditSymbols 5 | 6 | final class CodeEditSymbolsTests: XCTestCase { 7 | 8 | // MARK: - NSImage Tests 9 | 10 | // MARK: VAULT 11 | 12 | private let record: Bool = false 13 | 14 | func testCreateNSImageVault() { 15 | let image = NSImage.vault 16 | let view = NSImageView(image: image) 17 | view.appearance = .init(named: .aqua) 18 | assertSnapshot(matching: view, as: .image, record: record) 19 | } 20 | 21 | func testCreateNSImageVaultFill() { 22 | let image = NSImage.vault_fill 23 | let view = NSImageView(image: image) 24 | view.appearance = .init(named: .aqua) 25 | assertSnapshot(matching: view, as: .image, record: record) 26 | } 27 | 28 | // MARK: COMMIT 29 | 30 | func testCreateNSImageCommit() { 31 | let image = NSImage.commit 32 | let view = NSImageView(image: image) 33 | view.appearance = .init(named: .aqua) 34 | assertSnapshot(matching: view, as: .image, record: record) 35 | } 36 | 37 | // MARK: CHECKOUT 38 | 39 | func testCreateNSImageCheckout() { 40 | let image = NSImage.checkout 41 | let view = NSImageView(image: image) 42 | view.appearance = .init(named: .aqua) 43 | assertSnapshot(matching: view, as: .image, record: record) 44 | } 45 | 46 | // MARK: BRANCH 47 | 48 | func testCreateNSImageBranch() { 49 | let image = NSImage.branch 50 | let view = NSImageView(image: image) 51 | view.appearance = .init(named: .aqua) 52 | assertSnapshot(matching: view, as: .image, record: record) 53 | } 54 | 55 | // MARK: BREAKPOINT 56 | 57 | func testCreateNSImageBreakpoint() { 58 | let image = NSImage.breakpoint 59 | let view = NSImageView(image: image) 60 | view.appearance = .init(named: .aqua) 61 | assertSnapshot(matching: view, as: .image, record: record) 62 | } 63 | 64 | func testCreateNSImageBreakpointFill() { 65 | let image = NSImage.breakpoint_fill 66 | let view = NSImageView(image: image) 67 | view.appearance = .init(named: .aqua) 68 | assertSnapshot(matching: view, as: .image, record: record) 69 | } 70 | 71 | func testCreateNSImageGitHub() { 72 | let image = NSImage.github 73 | let view = NSImageView(image: image) 74 | view.appearance = .init(named: .aqua) 75 | assertSnapshot(matching: view, as: .image, record: record) 76 | } 77 | 78 | // MARK: - Image Tests 79 | 80 | // MARK: VAULT 81 | 82 | func testCreateImageVault() { 83 | let image = Image.vault 84 | let view: NSView = NSHostingController(rootView: image).view 85 | view.appearance = .init(named: .aqua) 86 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize), record: record) 87 | } 88 | 89 | func testCreateImageVaultFill() { 90 | let image = Image.vault_fill 91 | let view: NSView = NSHostingController(rootView: image).view 92 | view.appearance = .init(named: .aqua) 93 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize), record: record) 94 | } 95 | 96 | // MARK: COMMIT 97 | 98 | func testCreateImageCommit() { 99 | let image = Image.commit 100 | let view: NSView = NSHostingController(rootView: image).view 101 | view.appearance = .init(named: .aqua) 102 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize), record: record) 103 | } 104 | 105 | // MARK: CHECKOUT 106 | 107 | func testCreateImageCheckout() { 108 | let image = Image.checkout 109 | let view: NSView = NSHostingController(rootView: image).view 110 | view.appearance = .init(named: .aqua) 111 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize), record: record) 112 | } 113 | 114 | // MARK: BRANCH 115 | 116 | func testCreateImageBranch() { 117 | let image = Image.branch 118 | let view: NSView = NSHostingController(rootView: image).view 119 | view.appearance = .init(named: .aqua) 120 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize), record: record) 121 | } 122 | 123 | // MARK: BREAKPOINT 124 | 125 | func testCreateImageBreakpoint() { 126 | let image = Image.breakpoint 127 | let view: NSView = NSHostingController(rootView: image).view 128 | view.appearance = .init(named: .aqua) 129 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize), record: record) 130 | } 131 | 132 | func testCreateImageBreakpointFill() { 133 | let image = Image.breakpoint_fill 134 | let view: NSView = NSHostingController(rootView: image).view 135 | view.appearance = .init(named: .aqua) 136 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize), record: record) 137 | } 138 | 139 | func testCreateImageGitHub() { 140 | let image = Image.github 141 | let view: NSView = NSHostingController(rootView: image).view 142 | view.appearance = .init(named: .aqua) 143 | assertSnapshot(matching: view, as: .image(size: view.intrinsicContentSize), record: record) 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageBreakpoint.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageBreakpoint.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageBreakpointFill.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageBreakpointFill.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageCheckout.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageCheckout.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageCommit.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageCommit.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageGitHub.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageGitHub.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageVault.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageVault.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageVaultFill.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateImageVaultFill.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageBreakpoint.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageBreakpoint.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageBreakpointFill.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageBreakpointFill.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageCheckout.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageCheckout.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageCommit.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageCommit.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageGitHub.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageGitHub.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageVault.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageVault.1.png -------------------------------------------------------------------------------- /Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageVaultFill.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeEditApp/CodeEditSymbols/ae69712b08571c4469c2ed5cd38ad9f19439793e/Tests/CodeEditSymbolsTests/__Snapshots__/CodeEditSymbolsTests/testCreateNSImageVaultFill.1.png --------------------------------------------------------------------------------