CodeEditApp / CodeEditApp/CodeEditSourceEditor

🐞 Segfault when using asset catalog colors

Aperta
#368 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Swift
Stelle
719
Fork
160
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Description

When creating an EditorTheme from asset catalog colours, a segfault occurs at launch unless the background colour is explicitly cast to sRGB (`NSColor.editorBackground.usingColorSpace(.sRGB)!`).

### To Reproduce

1. Create a new SwiftUI macOS app
2. Add CodeEditSourceEditor as a dependency
3. Add sRGB colors sets to the Asset catalog
4. Use those colors through NSColor to define an EditorTheme (e.g. `NSColor.editorBackground`)
5. Launch the app
6. Something segfaults
7. If you set the background to `NSColor.editorBackground.usingColorSpace(.sRGB)!`, it doesn't

### Expected Behavior

It should be possible to use colours from the asset catalog to define the theme colours without additional hijinks.

### Version Information

CodeEditSourceEditor: 0.15.2
macOS: 15.7.4
Xcode: 26.3

### Additional Context

Minimal reproduction project: [EditorThemeReproduction.zip](https://github.com/user-attachments/files/25798129/EditorThemeReproduction.zip) (`ContentView.swift` contains all the relevant code.)

How I'm creating the theme (the asset catalog is included with the above project):

```swift
extension EditorTheme {
/// Creates an ``EditorTheme`` from colors defined in the asset catalog.
static func fromAssetCatalog() -> Self {
EditorTheme(
text: EditorTheme.Attribute(color: NSColor.editorText),
insertionPoint: NSColor.editorInsertionPoint,
invisibles: EditorTheme.Attribute(color: NSColor.editorInvisibles),

// This segfaults:
background: NSColor.editorBackground,

// This does not, despite the asset catalog color sets being defined as sRGB
// background: NSColor.editorBackground.usingColorSpace(.sRGB)!,

lineHighlight: NSColor.editorLineHighlight,
selection: NSColor.editorSelection,
keywords: EditorTheme.Attribute(
color: NSColor.editorKeywords,
bold: true
),
commands: EditorTheme.Attribute(color: NSColor.editorCommands),
types: EditorTheme.Attribute(color: NSColor.editorTypes),
attributes: EditorTheme.Attribute(color: NSColor.editorAttributes),
variables: EditorTheme.Attribute(color: NSColor.editorVariables),
values: EditorTheme.Attribute(color: NSColor.editorValues),
numbers: EditorTheme.Attribute(color: NSColor.editorNumbers),
strings: EditorTheme.Attribute(color: NSColor.editorStrings),
characters: EditorTheme.Attribute(color: NSColor.editorCharacters),
comments: EditorTheme.Attribute(color: NSColor.editorComments)
)
}
}
```

### Screenshots

Xcode segfault screenshot

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.