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
@@ -117,6 +117,72 @@ const settings: Record<string, string> = {
|
||||
'settings.highlight.palette': 'Palette',
|
||||
'settings.highlight.note': 'Note',
|
||||
'settings.highlight.notePlaceholder': 'Rule description (optional)',
|
||||
'settings.highlight.caseInsensitive': 'Ignore case',
|
||||
'settings.highlight.caseInsensitiveHint': 'letters match in any case (OK also matches ok)',
|
||||
'settings.highlight.bands': 'Value bands',
|
||||
'settings.highlight.bandsHint':
|
||||
'Colour by the first number in the match; no number (or below the lowest band) keeps the foreground colour',
|
||||
'settings.highlight.bandMin': 'Min',
|
||||
'settings.highlight.addBand': '+ Add band',
|
||||
'settings.highlight.removeBand': 'Remove band',
|
||||
'settings.highlight.importExport': 'Import / export',
|
||||
'settings.highlight.importExportTitle': 'Import / export highlight rules',
|
||||
'settings.highlight.exportSection': 'Export — copy or save this JSON to share the set',
|
||||
'settings.highlight.copy': 'Copy',
|
||||
'settings.highlight.copied': 'Copied',
|
||||
'settings.highlight.download': 'Save as file',
|
||||
'settings.highlight.importSection': 'Import — paste JSON, or pick a .json file',
|
||||
'settings.highlight.chooseFile': 'Choose file',
|
||||
'settings.highlight.importMode': 'Mode',
|
||||
'settings.highlight.importReplace': 'Replace current rules',
|
||||
'settings.highlight.importAppend': 'Append to current rules',
|
||||
'settings.highlight.importOk': 'Import',
|
||||
'settings.highlight.importEmpty': 'No usable rules found',
|
||||
'settings.highlight.importBadJson': 'Not valid JSON',
|
||||
'settings.highlight.importWrongKind': 'This JSON is not a highlight-rule file',
|
||||
'settings.highlight.importSkipped': 'Skipped {n}: {list}',
|
||||
'settings.highlight.imported': 'Imported {n} rule(s)',
|
||||
'settings.highlight.testText': 'Test text',
|
||||
'settings.highlight.testHint': 'see the effect as you edit the pattern (first 2000 characters only)',
|
||||
'settings.highlight.mode': 'Highlighting',
|
||||
'settings.highlight.modeAll': 'All',
|
||||
'settings.highlight.modeBasic': 'Basic only',
|
||||
'settings.highlight.modeOff': 'Off',
|
||||
'settings.highlight.modeDesc':
|
||||
'Basic only: keeps just the key rules (errors, success, warnings, dangerous commands, secrets) — cheaper and quieter. Off: no colour injection at all (rules and colours are kept).',
|
||||
'settings.highlight.category': 'Category',
|
||||
'settings.highlight.groupByCategory': 'Group by category',
|
||||
'settings.highlight.category.safety': 'Safety',
|
||||
'settings.highlight.category.status': 'Status',
|
||||
'settings.highlight.category.file': 'Files',
|
||||
'settings.highlight.category.net': 'Network',
|
||||
'settings.highlight.category.text': 'Text',
|
||||
'settings.highlight.category.metric': 'Metrics',
|
||||
'settings.highlight.category.none': 'Uncategorised',
|
||||
'settings.highlight.stats': 'Count hits and time',
|
||||
'settings.highlight.statsHint':
|
||||
'Collect per-rule hit counts and durations for this page (zero cost while off)',
|
||||
'settings.highlight.statsHits': 'Hits',
|
||||
'settings.highlight.statsMs': 'Time',
|
||||
'settings.highlight.statsReset': 'Reset stats',
|
||||
'settings.highlight.statsEmpty': 'No stats yet — run some output in a terminal first',
|
||||
'settings.highlight.themeColors': 'Follow theme colours',
|
||||
'settings.highlight.themeColorsHint':
|
||||
'Map highlight colours onto the active terminal palette by hue (neutral greys are kept as-is)',
|
||||
'settings.highlight.perHost': 'Per-host rule sets',
|
||||
'settings.highlight.perHostHint':
|
||||
'When on, an SSH connection bound to a rule set runs only that subset; when off every session uses all rules',
|
||||
'settings.highlight.profiles': 'Host rule sets',
|
||||
'settings.highlight.profilesHint':
|
||||
'Save a subset of the rules under a name, then bind it to a host in the connection editor',
|
||||
'settings.highlight.profileNew': '+ New rule set',
|
||||
'settings.highlight.profileEdit': 'Edit rule set',
|
||||
'settings.highlight.profileName': 'Name',
|
||||
'settings.highlight.profileNamePlaceholder': 'e.g. production (errors only)',
|
||||
'settings.highlight.profileRules': 'Included rules',
|
||||
'settings.highlight.profileRulesHint': 'Unchecked rules stay off on that host',
|
||||
'settings.highlight.profileEmpty': 'No rule sets yet',
|
||||
'settings.highlight.profileDeleteTitle': 'Delete rule set',
|
||||
'settings.highlight.actions': 'Actions',
|
||||
'settings.highlight.addRule': '+ Add rule',
|
||||
'settings.highlight.empty': 'No highlight rules yet — click "+ Add rule" to create one',
|
||||
@@ -129,8 +195,18 @@ const settings: Record<string, string> = {
|
||||
'settings.highlight.builtin.perm': 'Linux permissions and user/group',
|
||||
'settings.highlight.builtin.path': 'Linux file paths',
|
||||
'settings.highlight.builtin.shellkw': 'Shell keywords and control flow',
|
||||
'settings.highlight.builtin.danger': 'Dangerous / destructive commands',
|
||||
'settings.highlight.builtin.secret': 'Possible secret / token',
|
||||
'settings.highlight.builtin.loglevel': 'Log levels',
|
||||
'settings.highlight.builtin.rootat': 'Root prompt (root@)',
|
||||
'settings.highlight.builtin.exitcode': 'Exit codes',
|
||||
'settings.highlight.builtin.http': 'HTTP status codes',
|
||||
'settings.highlight.builtin.latency': 'Durations (milliseconds)',
|
||||
'settings.highlight.builtin.delop': 'Delete / move / overwrite operations',
|
||||
'settings.highlight.builtin.createop': 'Create / add operations',
|
||||
'settings.highlight.builtin.okstate': 'Success states',
|
||||
'settings.highlight.builtin.badstate': 'Error/warning states',
|
||||
'settings.highlight.builtin.warnstate': 'Warnings and TODO markers',
|
||||
'settings.highlight.builtin.badstate': 'Error / failure states',
|
||||
'settings.highlight.builtin.quoted': 'Strings and quotes',
|
||||
'settings.highlight.builtin.envvar': 'Environment variables and arguments',
|
||||
'settings.highlight.builtin.ipv4': 'Network and IP addresses',
|
||||
|
||||
@@ -43,6 +43,8 @@ const ssh: Record<string, string> = {
|
||||
'ssh.dialog.keepalive': 'Keepalive interval (seconds)',
|
||||
'ssh.dialog.keepaliveTooltip': '0 disables keepalive',
|
||||
'ssh.dialog.keepaliveMin': 'Cannot be negative',
|
||||
'ssh.dialog.highlightProfile': 'Highlight rule set',
|
||||
'ssh.dialog.highlightProfileDefault': 'Default (all rules)',
|
||||
|
||||
// Connection sidebar
|
||||
'ssh.sidebar.defaultGroup': 'Default',
|
||||
|
||||
@@ -114,6 +114,70 @@ 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': 'ハイライトルールがありません。「+ ルールを追加」から作成できます',
|
||||
@@ -126,8 +190,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 プロンプト(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': '警告と TODO マーカー',
|
||||
'settings.highlight.builtin.badstate': 'エラー・失敗ステータス',
|
||||
'settings.highlight.builtin.quoted': '文字列と引用符',
|
||||
'settings.highlight.builtin.envvar': '環境変数と引数',
|
||||
'settings.highlight.builtin.ipv4': 'ネットワークと IP アドレス',
|
||||
|
||||
@@ -45,6 +45,8 @@ const ssh: Record<string, string> = {
|
||||
'ssh.dialog.keepalive': 'Keepalive 間隔(秒)',
|
||||
'ssh.dialog.keepaliveTooltip': '0 で keepalive を無効にします',
|
||||
'ssh.dialog.keepaliveMin': '負の値は指定できません',
|
||||
'ssh.dialog.highlightProfile': 'ハイライトルールセット',
|
||||
'ssh.dialog.highlightProfileDefault': '既定(すべてのルール)',
|
||||
|
||||
// 接続サイドバー
|
||||
'ssh.sidebar.defaultGroup': 'デフォルト',
|
||||
|
||||
@@ -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 地址',
|
||||
|
||||
@@ -41,6 +41,8 @@ const ssh: Record<string, string> = {
|
||||
'ssh.dialog.keepalive': 'Keepalive 间隔(秒)',
|
||||
'ssh.dialog.keepaliveTooltip': '0 表示关闭 keepalive',
|
||||
'ssh.dialog.keepaliveMin': '不能为负数',
|
||||
'ssh.dialog.highlightProfile': '高亮规则集',
|
||||
'ssh.dialog.highlightProfileDefault': '默认(全部规则)',
|
||||
|
||||
// 连接侧栏
|
||||
'ssh.sidebar.defaultGroup': '默认',
|
||||
|
||||
@@ -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 位址',
|
||||
|
||||
@@ -41,6 +41,8 @@ const ssh: Record<string, string> = {
|
||||
'ssh.dialog.keepalive': 'Keepalive 間隔(秒)',
|
||||
'ssh.dialog.keepaliveTooltip': '0 表示關閉 keepalive',
|
||||
'ssh.dialog.keepaliveMin': '不能為負數',
|
||||
'ssh.dialog.highlightProfile': '高亮規則集',
|
||||
'ssh.dialog.highlightProfileDefault': '預設(全部規則)',
|
||||
|
||||
// 連線側欄
|
||||
'ssh.sidebar.defaultGroup': '預設',
|
||||
|
||||
Reference in new issue
Block a user