{"record":{"id":"7fac84e8927271f8","repo":"kovidgoyal/kitty","slug":"ignoring-invalid-modify-font-val","errorCode":null,"errorMessage":"Ignoring invalid modify_font: {val}","messagePattern":"Ignoring invalid modify_font: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"kitty/options/utils.py","lineNumber":1092,"sourceCode":"    parts = val.split()\n    if len(parts) < 2:\n        log_error(f'Ignoring invalid font_features {val}')\n        return\n    if parts[0]:\n        features = []\n        for feat in parts[1:]:\n            try:\n                features.append(defines.ParsedFontFeature(feat))\n            except ValueError:\n                log_error(f'Ignoring invalid font feature: {feat}')\n        yield parts[0], tuple(features)\n\n\ndef modify_font(val: str) -> Iterable[tuple[str, FontModification]]:\n    parts = val.split()\n    pos, plen = 0, len(parts)\n    if plen < 2:\n        log_error(f'Ignoring invalid modify_font: {val}')\n        return\n    mtype: ModificationType | None = getattr(ModificationType, parts[pos], None)\n    if mtype is None:\n        log_error(f'Ignoring invalid modify_font with unknown modification type: {parts[pos]}')\n        return\n    pos += 1\n    font_name = ''\n    if mtype is ModificationType.size:\n        font_name = parts[pos]\n        pos += 1\n    if plen - pos < 1:\n        log_error(f'Ignoring invalid modify_font: {val}')\n        return\n    sz = parts[pos]\n    pos += 1\n    munit = ModificationUnit.pt\n    if sz.endswith('%'):\n        munit = ModificationUnit.percent","sourceCodeStart":1074,"sourceCodeEnd":1110,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kitty/options/utils.py#L1074-L1110","documentation":"A modify_font line needs at least two parts (modification type and value). With fewer than 2 tokens kitty logs this and ignores the directive.","triggerScenarios":"modify_font with a single token, e.g. 'modify_font size' or 'modify_font' alone (after split it is 1 or 0 tokens).","commonSituations":"Forgetting the value argument; writing a comment on the same line that confuses token counts is fine but missing value is not.","solutions":["Provide at least a modification type and value: modify_font <type> <value...>.","Example: modify_font size +2px","See the next checks for unknown types and invalid sizes."],"exampleFix":"# before\nmodify_font size\n\n# after\nmodify_font size +2px","handlingStrategy":"validation","validationCode":"def valid_modify_font(val: str) -> bool:\n    return len(val.split()) >= 2","typeGuard":"def has_type_and_value(val: str) -> bool:\n    return len(val.split()) >= 2","tryCatchPattern":null,"preventionTips":["Always include modification type and value","Prefer modify_font size <family> <amount> for size changes"],"tags":["kitty","config","font","modify-font"],"backgroundTag":"config-value-validation-failed","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}