Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

🐞 Segfault when using asset catalog colors

Abierto
#368 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
swift
Área
desktop

Línea de trabajo

Comienza con ContentView.swift en el EditorThemeReproduction.zip enlazado y reproduce el segfault al iniciar usando los valores de NSColor del catálogo de assets, especialmente NSColor.editorBackground. Compara la construcción fallida de EditorTheme con el caso funcional usingColorSpace(.sRGB). Se considera terminado cuando los colores del catálogo de assets pueden definir un EditorTheme sin una conversión explícita del espacio de color y la aplicación de reproducción se inicia sin un segfault.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
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 (ContentView.swift contains all the relevant code.)

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

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
Lenguaje dominante
Swift
Estrellas
720
Forks
162
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de CodeEditApp/CodeEditSourceEditor

Todos los issues de CodeEditApp/CodeEditSourceEditor

Issues similares

Más issues de Swift

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.