Something went wrong. Try again.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051const Config = @import("../config/Config.zig");
const Template = struct { const header = \\%YAML 1.2 \\--- \\# See http://www.sublimetext.com/docs/syntax.html \\name: Ghostty Config \\file_extensions: \\ - ghostty \\scope: source.ghostty \\ \\contexts: \\ main: \\ # Comments \\ - match: '^\s*#.*$' \\ scope: comment.line.number-sign.ghostty \\ \\ # Keywords \\ - match: '\b( ; const footer = \\)\b' \\ scope: keyword.other.ghostty \\ ;};
/// Check if a field is internal (starts with underscore)fn isInternal(name: []const u8) bool { return name.len > 0 and name[0] == '_';}
/// Generate keywords from Config fieldsfn generateKeywords() []const u8 { @setEvalBranchQuota(5000); var keywords: []const u8 = ""; const config_fields = @typeInfo(Config).@"struct".fields;
for (config_fields) |field| { if (isInternal(field.name)) continue; if (keywords.len > 0) keywords = keywords ++ "|"; keywords = keywords ++ field.name; }
return keywords;}
/// Complete Sublime syntax file contentpub const syntax = Template.header ++ generateKeywords() ++ Template.footer;