make :: Fonts Font -> Theme -> Style
make fonts theme =
    Style
    { _base           = textEdit TextColors.baseColor    Fonts.base
    , _autoNameOrigin = textEdit TextColors.baseColor    Fonts.autoName
    , _nameAtBinder   = textEdit TextColors.baseColor    Fonts.binders
    , _bytes          = textEdit TextColors.literalColor Fonts.literalBytes
    , _text           = textEdit TextColors.literalColor Fonts.literalText
    , _num            = textEdit TextColors.literalColor Fonts.base
    }
    where
        textEdit color font =
            TextEdit.Style
            { TextEdit._sCursorColor = theme ^. Theme.textEditCursorColor
            , TextEdit._sCursorWidth = theme ^. Theme.textEditCursorWidth
            , TextEdit._sEmptyStringsColors =
                theme ^. Theme.textColors . TextColors.emptyEditColors
            , TextEdit._sTextViewStyle =
                TextView.Style
                { TextView._styleColor = theme ^. Theme.textColors . color
                , TextView._styleFont = fonts ^. font
                , TextView._styleUnderline = Nothing
                }
            }
make :: Fonts Font -> Theme -> Style
make fonts theme =
    Style
    { _base           = textEdit TextColors.baseColor    Fonts.base
    , _autoNameOrigin = textEdit TextColors.baseColor    Fonts.autoName
    , _nameAtBinder   = textEdit TextColors.baseColor    Fonts.binders
    , _bytes          = textEdit TextColors.literalColor Fonts.literalBytes
    , _text           = textEdit TextColors.literalColor Fonts.literalText
    , _num            = textEdit TextColors.literalColor Fonts.base
    }
    where
        textEdit color font =
            TextEdit.Style
            { TextEdit._sCursorColor = theme ^. Theme.textEditCursorColor
            , TextEdit._sCursorWidth = theme ^. Theme.textEditCursorWidth
            , TextEdit._sEmptyStringsColors =
                theme ^. Theme.textColors . TextColors.emptyEditColors
            , TextEdit._sTextViewStyle =
                TextView.Style
                { TextView._styleColor = theme ^. Theme.textColors . color
                , TextView._styleFont = fonts ^. font
                , TextView._styleUnderline = Nothing
                }
            }
make fonts theme =
    Style
    { _base           = textEdit TextColors.baseColor    Fonts.base
    , _autoNameOrigin = textEdit TextColors.baseColor    Fonts.autoName
    , _nameAtBinder   = textEdit TextColors.baseColor    Fonts.binders
    , _bytes          = textEdit TextColors.literalColor Fonts.literalBytes
    , _text           = textEdit TextColors.literalColor Fonts.literalText
    , _num            = textEdit TextColors.literalColor Fonts.base
    }
    where
        textEdit color font =
            TextEdit.Style
            { TextEdit._sCursorColor = theme ^. Theme.textEditCursorColor
            , TextEdit._sCursorWidth = theme ^. Theme.textEditCursorWidth
            , TextEdit._sEmptyStringsColors =
                theme ^. Theme.textColors . TextColors.emptyEditColors
            , TextEdit._sTextViewStyle =
                TextView.Style
                { TextView._styleColor = theme ^. Theme.textColors . color
                , TextView._styleFont = fonts ^. font
                , TextView._styleUnderline = Nothing
                }
            }