Prechádzať zdrojové kódy

feat(ui): 增加 HOTKEYS 命令,用作显示系统快捷键

dzp 1 rok pred
rodič
commit
4a0093681d

+ 8 - 7
etc/ui-settings.tin

@@ -34,13 +34,14 @@ VAR {命令提示符,默认为空} prompt-prompt {};
 
 #nop 热键绑定;
 #list global-key-bindings create {
-    {{key}{\cd}     {action}{cli.SmartToggle}}
-    {{key}{\cos}    {action}{prompt.ToggleSwitch}}
-    {{key}{\cob}    {action}{beautify.ToggleSwitch}}
-    {{key}{\coD}    {action}{xtt.ToggleDisableCommands}}
-    {{key}{\col}    {action}{option.List}}
-    {{key}{\cod}    {action}{option.Toggle DebugLog}}
-    {{key}{\coe}    {action}{option.Toggle EchoCommand}}
+    {{key}{\cd}     {meaning}{命令行智能切换}           {action}{cli.SmartToggle}}
+    {{key}{\co\cd}  {meaning}{禁止/允许命令和触发}      {action}{xtt.ToggleDisableCommands}}
+    {{key}{\cos}    {meaning}{禁止/允许状态栏更新}      {action}{prompt.ToggleSwitch}}
+    {{key}{\cob}    {meaning}{禁止/允许界面宽字符美化}  {action}{beautify.ToggleSwitch}}
+    {{key}{\col}    {meaning}{查看选项列表}             {action}{option.List}}
+    {{key}{\cod}    {meaning}{开启/关闭调试模式}        {action}{option.Toggle DebugLog}}
+    {{key}{\coD}    {meaning}{开启/关闭调试日志}        {action}{option.Toggle DebugLogEcho}}
+    {{key}{\coe}    {meaning}{开启/关闭命令发送回显}    {action}{option.Toggle EchoCommand}}
 };
 
 VAR {HP摘要刷新时机,三选一:{总是|从不|自动}} char.HPSummarize.Echo {自动};

+ 12 - 12
mud/pkuxkx/etc/ui-settings.extra.tin

@@ -70,16 +70,16 @@
 
 #nop 热键绑定;
 #list global-key-bindings create {
-    {{key}{\cd}     {action}{cli.SmartToggle}}
-    {{key}{\co\cd}  {action}{xtt.ToggleDisableCommands}}
-    {{key}{\cos}    {action}{prompt.ToggleSwitch}}
-    {{key}{\cob}    {action}{beautify.ToggleSwitch}}
-    {{key}{\col}    {action}{option.List}}
-    {{key}{\cod}    {action}{option.Toggle DebugLog}}
-    {{key}{\coD}    {action}{option.Toggle DebugLogEcho}}
-    {{key}{\coe}    {action}{option.Toggle EchoCommand}}
-    {{key}{\com}    {action}{option.Toggle GagMove}}
-    {{key}{\cog}    {action}{option.Toggle GMCPDebug}}
-    {{key}{\coM}    {action}{option.Toggle MapDebug; look}}
-    {{key}{\coV}    {action}{option.Toggle ShowRoomView; look}}
+    {{key}{\cd}     {meaning}{命令行智能切换}                   {action}{cli.SmartToggle}}
+    {{key}{\co\cd}  {meaning}{禁止/允许命令和触发}              {action}{xtt.ToggleDisableCommands}}
+    {{key}{\cos}    {meaning}{禁止/允许状态栏更新}              {action}{prompt.ToggleSwitch}}
+    {{key}{\cob}    {meaning}{禁止/允许界面宽字符美化}          {action}{beautify.ToggleSwitch}}
+    {{key}{\col}    {meaning}{查看选项列表}                     {action}{option.List}}
+    {{key}{\cod}    {meaning}{开启/关闭调试模式}                {action}{option.Toggle DebugLog}}
+    {{key}{\coD}    {meaning}{开启/关闭调试日志}                {action}{option.Toggle DebugLogEcho}}
+    {{key}{\coe}    {meaning}{开启/关闭命令发送回显}            {action}{option.Toggle EchoCommand}}
+    {{key}{\com}    {meaning}{禁止/允许屏蔽他人移动信息}        {action}{option.Toggle GagMove}}
+    {{key}{\cog}    {meaning}{开启/关闭 GMCP 调试信息}          {action}{option.Toggle GMCPDebug}}
+    {{key}{\coM}    {meaning}{开启/关闭地图调试模式}            {action}{option.Toggle MapDebug; look}}
+    {{key}{\coV}    {meaning}{开启/禁止显示房间风景图}          {action}{option.Toggle ShowRoomView; look}}
 };

+ 26 - 0
plugins/lib/ui/prompt.tin

@@ -619,6 +619,32 @@ VAR {命令输入提示符} prompt-prompt {Input};
     };
 };
 
+///=== {
+// ## prompt.HotKeys
+//    显示系统已配置的热键清单。
+//    本命令也可写作 HOTKEYS,作用相同。
+// };
+#alias {HOTKEYS} {prompt.HotKeys};
+#alias {prompt.HotKeys} {
+    #echo;
+    #echo {   <128>%-20s %-30s %-40s} {快捷键} {含义} {对应代码};
+    #draw Yellow scroll line 1 1 1 90;
+
+    #local idx {};
+    #foreach {*{global-key-bindings[]}} {idx} {
+        #local key      {${global-key-bindings[$idx][key]}};
+        #local meaning  {${global-key-bindings[$idx][meaning]}};
+        #local code     {${global-key-bindings[$idx][action]}};
+        #replace key {\\c} {Ctrl+};
+        #replace key {Ctrl+%.%+1..*} {Ctrl+&1 &2};
+        #echo {   %-20s %-30s %-40s}
+            {$key} {$meaning} {$code};
+    };
+    #echo;
+    okLog 快捷键中如果存在多个按键序列的,带加号的为一组,需要同时按下,其余依次按下即可。请注意区分大小写。;
+    #echo;
+};
+
 #alias {NOTE} {prompt.Note};
 #alias {prompt.Note} {
     prompt.Set {{note}{%0}};