feat(highlight): preset overhaul, categories, stats, theme colours, per-host profiles
Rules & engine: - 22 presets (was 11): split status into okstate/warnstate/badstate, add delop, createop, danger, secret, level, exitcode, percent, http; status words are case-insensitive and cover the ✓ ✔ ✅ ✗ ✘ ✖ ❌ ⚠ symbol set - value bands: the first number in a match picks the colour (percent: <20% red / 20-50% yellow / 50-80% light green / >=80% green) - optional per-rule `caseInsensitive`, `category`, `bands`; load-time `refreshBuiltinRules` upgrades untouched built-in patterns in place Settings page: - three-way master switch `highlightMode` (all / basic / off); `basic` runs only the five safety+status rules and `off` empties the rule set rather than bypassing HighlightStream (which would drop the held tail) - category column + grouping (`highlightGroupByCategory`), per-rule hit/duration stats (`highlightStats`, opt-in sink, snapshot once a second), theme-following colours (`highlightThemeColors`, hue-bucket mapping onto the ANSI palette), import/export JSON envelope, live preview through the real engine - named rule subsets bound per host (`highlightPerHost` + `highlightProfiles` + `SshConnection.highlightProfileId`); empty ruleIds = every rule Tests: new tests/hl-rules.mjs (word boundaries, case flag, negative words, bands, import/export, preview, basic mode, categories, stats, theme colours, profiles) + profile round-trip in tests/settings-store.mjs
This commit is contained in:
1 parent
41b1cb1b25
commit
e08e1cfec4
39 files changed
+3164
-89
No files matched your search
@@ -111,6 +111,66 @@ const settings: Record<string, string> = {
|
||||
'settings.highlight.palette': '色板',
|
||||
'settings.highlight.note': '备注',
|
||||
'settings.highlight.notePlaceholder': '规则说明(可选)',
|
||||
'settings.highlight.caseInsensitive': '忽略大小写',
|
||||
'settings.highlight.caseInsensitiveHint': '字母不区分大小写(OK 也能匹配 ok)',
|
||||
'settings.highlight.bands': '数值分级',
|
||||
'settings.highlight.bandsHint': '按匹配到的第一个数字取色;没有数字或低于最小分级时用前景色',
|
||||
'settings.highlight.bandMin': '下限',
|
||||
'settings.highlight.addBand': '+ 添加分级',
|
||||
'settings.highlight.removeBand': '删除分级',
|
||||
'settings.highlight.importExport': '导入 / 导出',
|
||||
'settings.highlight.importExportTitle': '导入 / 导出高亮规则',
|
||||
'settings.highlight.exportSection': '导出(复制或保存下面的 JSON 分享给别人)',
|
||||
'settings.highlight.copy': '复制',
|
||||
'settings.highlight.copied': '已复制',
|
||||
'settings.highlight.download': '保存为文件',
|
||||
'settings.highlight.importSection': '导入(粘贴 JSON,或选择 .json 文件)',
|
||||
'settings.highlight.chooseFile': '选择文件',
|
||||
'settings.highlight.importMode': '导入方式',
|
||||
'settings.highlight.importReplace': '替换现有规则',
|
||||
'settings.highlight.importAppend': '追加到现有规则',
|
||||
'settings.highlight.importOk': '导入',
|
||||
'settings.highlight.importEmpty': '没有解析到可用规则',
|
||||
'settings.highlight.importBadJson': '不是有效的 JSON',
|
||||
'settings.highlight.importWrongKind': '这份 JSON 不是高亮规则文件',
|
||||
'settings.highlight.importSkipped': '已跳过 {n} 条:{list}',
|
||||
'settings.highlight.imported': '已导入 {n} 条规则',
|
||||
'settings.highlight.testText': '测试文本',
|
||||
'settings.highlight.testHint': '改完正则立刻看到效果(仅预览前 2000 字符)',
|
||||
'settings.highlight.mode': '高亮模式',
|
||||
'settings.highlight.modeAll': '全部',
|
||||
'settings.highlight.modeBasic': '仅基础',
|
||||
'settings.highlight.modeOff': '关闭',
|
||||
'settings.highlight.modeDesc': '仅基础:只保留错误/成功/警告/危险命令/密钥等关键规则,开销更小;关闭:完全不注入颜色(规则与颜色都保留)',
|
||||
'settings.highlight.category': '分类',
|
||||
'settings.highlight.groupByCategory': '按分类分组',
|
||||
'settings.highlight.category.safety': '安全',
|
||||
'settings.highlight.category.status': '状态',
|
||||
'settings.highlight.category.file': '文件',
|
||||
'settings.highlight.category.net': '网络',
|
||||
'settings.highlight.category.text': '文本',
|
||||
'settings.highlight.category.metric': '数值',
|
||||
'settings.highlight.category.none': '未分类',
|
||||
'settings.highlight.stats': '统计命中与耗时',
|
||||
'settings.highlight.statsHint': '开启后统计每条规则的命中次数与耗时(设置页显示,关闭时零开销)',
|
||||
'settings.highlight.statsHits': '命中',
|
||||
'settings.highlight.statsMs': '耗时',
|
||||
'settings.highlight.statsReset': '重置统计',
|
||||
'settings.highlight.statsEmpty': '还没有统计数据,先去终端里跑点输出',
|
||||
'settings.highlight.themeColors': '跟随主题配色',
|
||||
'settings.highlight.themeColorsHint': '按色相把高亮颜色映射到当前终端主题的调色板(灰阶色保持原样)',
|
||||
'settings.highlight.perHost': '按主机规则集',
|
||||
'settings.highlight.perHostHint': '开启后,绑定了规则集的 SSH 连接只跑该子集;关闭时所有会话都用全部规则',
|
||||
'settings.highlight.profiles': '主机规则集',
|
||||
'settings.highlight.profilesHint': '把规则的子集存成命名规则集,在「连接编辑」里绑定给某台主机',
|
||||
'settings.highlight.profileNew': '+ 新建规则集',
|
||||
'settings.highlight.profileEdit': '编辑规则集',
|
||||
'settings.highlight.profileName': '名称',
|
||||
'settings.highlight.profileNamePlaceholder': '例如:生产机(只看错误)',
|
||||
'settings.highlight.profileRules': '包含的规则',
|
||||
'settings.highlight.profileRulesHint': '未勾选的规则在这台主机上不生效',
|
||||
'settings.highlight.profileEmpty': '尚未创建规则集',
|
||||
'settings.highlight.profileDeleteTitle': '删除规则集',
|
||||
'settings.highlight.actions': '操作',
|
||||
'settings.highlight.addRule': '+ 新增规则',
|
||||
'settings.highlight.empty': '暂无高亮规则,点击「+ 新增规则」创建',
|
||||
@@ -123,8 +183,18 @@ const settings: Record<string, string> = {
|
||||
'settings.highlight.builtin.perm': 'Linux 权限与用户',
|
||||
'settings.highlight.builtin.path': 'Linux 文件路径',
|
||||
'settings.highlight.builtin.shellkw': 'Shell 关键字与流程',
|
||||
'settings.highlight.builtin.danger': '危险/破坏性命令',
|
||||
'settings.highlight.builtin.secret': '疑似密钥/令牌',
|
||||
'settings.highlight.builtin.loglevel': '日志级别',
|
||||
'settings.highlight.builtin.rootat': '管理员提示符 root@',
|
||||
'settings.highlight.builtin.exitcode': '退出码',
|
||||
'settings.highlight.builtin.http': 'HTTP 状态码',
|
||||
'settings.highlight.builtin.latency': '耗时(毫秒)',
|
||||
'settings.highlight.builtin.delop': '删除/移动/覆盖操作',
|
||||
'settings.highlight.builtin.createop': '新建/创建操作',
|
||||
'settings.highlight.builtin.okstate': '成功状态',
|
||||
'settings.highlight.builtin.badstate': '错误/警告状态',
|
||||
'settings.highlight.builtin.warnstate': '警告与待办标记',
|
||||
'settings.highlight.builtin.badstate': '错误/失败状态',
|
||||
'settings.highlight.builtin.quoted': '字符串与引号',
|
||||
'settings.highlight.builtin.envvar': '环境变量与参数',
|
||||
'settings.highlight.builtin.ipv4': '网络与 IP 地址',
|
||||
|
||||
Reference in new issue
Block a user