支持通过VSCode设置页配置哪些格式是禁用的 (#2)
* 添加 VSCode 配置项 (逻辑待实现) * QuickPick 菜单支持过滤用户配置的禁用格式 (disableFormat) * 右键菜单支持过滤用户配置的禁用格式 (disableFormat) * 快捷键循环转换支持过滤用户配置的禁用格式 (disableFormat) * 为了发版暂时隐藏未开发完成的 variable-conversion.circularConversionFormatOrder 配置项 * 配置项描述调整:中文在前英文在后 * 更新 README.md 自述文档
This commit is contained in:
		
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							@@ -20,7 +20,7 @@ Select what you want to convert in the editor, and then press `Ctrl + Alt + [` o
 | 
				
			|||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 基础转换
 | 
					### 基础转换 Basic conversion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**1. 选中代码中需要转换的内容** **Select The Text To Convert**
 | 
					**1. 选中代码中需要转换的内容** **Select The Text To Convert**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,7 +47,7 @@ Or right-click on the selected text -> Convert string to...
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
**3. 选择转换目标,转换完成** **Select the conversion target and complete**
 | 
					**3. 选择转换目标,转换完成** **Select the conversion target and complete**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 快捷键
 | 
					## 快捷键 Shortcut key
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 功能 Feature                                     | 快捷键 shortcut key |
 | 
					| 功能 Feature                                     | 快捷键 shortcut key |
 | 
				
			||||||
| ------------------------------------------------ | ------------------- |
 | 
					| ------------------------------------------------ | ------------------- |
 | 
				
			||||||
@@ -55,6 +55,12 @@ Or right-click on the selected text -> Convert string to...
 | 
				
			|||||||
| 循环转换→上一个 Cyclic conversion → Previous one | Ctrl + Alt + [      |
 | 
					| 循环转换→上一个 Cyclic conversion → Previous one | Ctrl + Alt + [      |
 | 
				
			||||||
| 循环转换→下一个 Cyclic conversion → Next one     | Ctrl + Alt + ]      |
 | 
					| 循环转换→下一个 Cyclic conversion → Next one     | Ctrl + Alt + ]      |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 配置项 configurations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 配置项 Configuration Key            | 描述 Description                                             | 配置示例                       | 默认值 |
 | 
				
			||||||
 | 
					| ----------------------------------- | ------------------------------------------------------------ | ------------------------------ | ------ |
 | 
				
			||||||
 | 
					| `variable-conversion.disableFormat` | 定义哪些格式是禁用的<br />Define which formats are disabled. | `["lower_case", "upper_case"]` | `[]`   |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 支持的类型 Support Case
 | 
					## 支持的类型 Support Case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 类型                                       | Case                     | 举例 e.g.        |
 | 
					| 类型                                       | Case                     | 举例 e.g.        |
 | 
				
			||||||
@@ -82,7 +88,7 @@ Or right-click on the selected text -> Convert string to...
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## 小提示 Tips
 | 
					## 小提示 Tips
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### 关于文本选区...
 | 
					#### 关于文本选区... About text selections...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- 可以先按住 `Alt` 键不放,再鼠标先后选中多个选区
 | 
					- 可以先按住 `Alt` 键不放,再鼠标先后选中多个选区
 | 
				
			||||||
  You can first hold down `Alt`, and then use the mouse to select multiple selection
 | 
					  You can first hold down `Alt`, and then use the mouse to select multiple selection
 | 
				
			||||||
@@ -107,4 +113,6 @@ Gitee Mirror (码云镜像): https://gitee.com/coder-xiaomo/variable-conversion-
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-----
 | 
					-----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**玩得开心!**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Enjoy!**
 | 
					**Enjoy!**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -225,87 +225,107 @@
 | 
				
			|||||||
      "variable-conversion.stringConversionMenu": [
 | 
					      "variable-conversion.stringConversionMenu": [
 | 
				
			||||||
        // group-1-camel
 | 
					        // group-1-camel
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toCamelCase",
 | 
					          "command": "variable-conversion.toCamelCase",
 | 
				
			||||||
          "group": "group-1-camel@1"
 | 
					          "group": "group-1-camel@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toPascalCase",
 | 
					          "command": "variable-conversion.toPascalCase",
 | 
				
			||||||
          "group": "group-1-camel@2"
 | 
					          "group": "group-1-camel@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        // group-2-snake
 | 
					        // group-2-snake
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_snake_case",
 | 
				
			||||||
          "command": "variable-conversion.toSnakeCase",
 | 
					          "command": "variable-conversion.toSnakeCase",
 | 
				
			||||||
          "group": "group-2-snake@1"
 | 
					          "group": "group-2-snake@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_snake_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toSnakeUpperCase",
 | 
					          "command": "variable-conversion.toSnakeUpperCase",
 | 
				
			||||||
          "group": "group-2-snake@2"
 | 
					          "group": "group-2-snake@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_snake_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toSnakePascalCase",
 | 
					          "command": "variable-conversion.toSnakePascalCase",
 | 
				
			||||||
          "group": "group-2-snake@3"
 | 
					          "group": "group-2-snake@3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_snake_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toSnakeCamelCase",
 | 
					          "command": "variable-conversion.toSnakeCamelCase",
 | 
				
			||||||
          "group": "group-2-snake@4"
 | 
					          "group": "group-2-snake@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        // group-3-kebab
 | 
					        // group-3-kebab
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_kebab_case",
 | 
				
			||||||
          "command": "variable-conversion.toKebabCase",
 | 
					          "command": "variable-conversion.toKebabCase",
 | 
				
			||||||
          "group": "group-3-kebab@1"
 | 
					          "group": "group-3-kebab@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_kebab_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toKebabUpperCase",
 | 
					          "command": "variable-conversion.toKebabUpperCase",
 | 
				
			||||||
          "group": "group-3-kebab@2"
 | 
					          "group": "group-3-kebab@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_kebab_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toKebabPascalCase",
 | 
					          "command": "variable-conversion.toKebabPascalCase",
 | 
				
			||||||
          "group": "group-3-kebab@3"
 | 
					          "group": "group-3-kebab@3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_kebab_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toKebabCamelCase",
 | 
					          "command": "variable-conversion.toKebabCamelCase",
 | 
				
			||||||
          "group": "group-3-kebab@4"
 | 
					          "group": "group-3-kebab@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        // group-4-space
 | 
					        // group-4-space
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_space_case",
 | 
				
			||||||
          "command": "variable-conversion.toSpaceCase",
 | 
					          "command": "variable-conversion.toSpaceCase",
 | 
				
			||||||
          "group": "group-4-space@1"
 | 
					          "group": "group-4-space@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_space_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toSpaceUpperCase",
 | 
					          "command": "variable-conversion.toSpaceUpperCase",
 | 
				
			||||||
          "group": "group-4-space@2"
 | 
					          "group": "group-4-space@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_space_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toSpacePascalCase",
 | 
					          "command": "variable-conversion.toSpacePascalCase",
 | 
				
			||||||
          "group": "group-4-space@3"
 | 
					          "group": "group-4-space@3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_space_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toSpaceCamelCase",
 | 
					          "command": "variable-conversion.toSpaceCamelCase",
 | 
				
			||||||
          "group": "group-4-space@4"
 | 
					          "group": "group-4-space@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        // group-5-dot
 | 
					        // group-5-dot
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_dot_case",
 | 
				
			||||||
          "command": "variable-conversion.toDotCase",
 | 
					          "command": "variable-conversion.toDotCase",
 | 
				
			||||||
          "group": "group-5-dot@1"
 | 
					          "group": "group-5-dot@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_dot_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toDotUpperCase",
 | 
					          "command": "variable-conversion.toDotUpperCase",
 | 
				
			||||||
          "group": "group-5-dot@2"
 | 
					          "group": "group-5-dot@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_dot_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toDotPascalCase",
 | 
					          "command": "variable-conversion.toDotPascalCase",
 | 
				
			||||||
          "group": "group-5-dot@3"
 | 
					          "group": "group-5-dot@3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_dot_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toDotCamelCase",
 | 
					          "command": "variable-conversion.toDotCamelCase",
 | 
				
			||||||
          "group": "group-5-dot@4"
 | 
					          "group": "group-5-dot@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        // group-6-upper-lower
 | 
					        // group-6-upper-lower
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_lower_case",
 | 
				
			||||||
          "command": "variable-conversion.toLowerCase",
 | 
					          "command": "variable-conversion.toLowerCase",
 | 
				
			||||||
          "group": "group-6-upper-lower@1"
 | 
					          "group": "group-6-upper-lower@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toUpperCase",
 | 
					          "command": "variable-conversion.toUpperCase",
 | 
				
			||||||
          "group": "group-6-upper-lower@2"
 | 
					          "group": "group-6-upper-lower@2"
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -348,7 +368,176 @@
 | 
				
			|||||||
        "id": "variable-conversion.stringConversionMenu",
 | 
					        "id": "variable-conversion.stringConversionMenu",
 | 
				
			||||||
        "label": "将变量转换为..."
 | 
					        "label": "将变量转换为..."
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ]
 | 
					    ],
 | 
				
			||||||
 | 
					    // docs: https://code.visualstudio.com/api/references/contribution-points#contributes.configuration
 | 
				
			||||||
 | 
					    "configuration": {
 | 
				
			||||||
 | 
					      "title": "Variable Conversion 变量转换",
 | 
				
			||||||
 | 
					      "properties": {
 | 
				
			||||||
 | 
					        // 仅测试用
 | 
				
			||||||
 | 
					        // "variable-conversion.test1": {
 | 
				
			||||||
 | 
					        //   "title": "定义转换格式的排序",
 | 
				
			||||||
 | 
					        //   "description": "Defines the ordering of the conversion format.\n定义转换格式的排序",
 | 
				
			||||||
 | 
					        //   "type": "array",
 | 
				
			||||||
 | 
					        //   "default": [
 | 
				
			||||||
 | 
					        //     "camelCase",
 | 
				
			||||||
 | 
					        //     "snake_case",
 | 
				
			||||||
 | 
					        //     "PascalCase"
 | 
				
			||||||
 | 
					        //   ]
 | 
				
			||||||
 | 
					        // },
 | 
				
			||||||
 | 
					        // "variable-conversion.enableFormat": {
 | 
				
			||||||
 | 
					        //   "type": "object",
 | 
				
			||||||
 | 
					        //   "default": {
 | 
				
			||||||
 | 
					        //     "camelCase": true,
 | 
				
			||||||
 | 
					        //     "snake_case": true,
 | 
				
			||||||
 | 
					        //     "PascalCase": true
 | 
				
			||||||
 | 
					        //   },
 | 
				
			||||||
 | 
					        //   "description": "Define which formats are enabled.\n定义哪些格式是开启的"
 | 
				
			||||||
 | 
					        // },
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // 全小写命名
 | 
				
			||||||
 | 
					        // lower_case(全小写), snake_case(下划线), kebab_case(连字符), space_case(空格), dot_case(点)
 | 
				
			||||||
 | 
					        // 全大写命名
 | 
				
			||||||
 | 
					        // upper_case(全大写), snake_upper_case(下划线), kebab_upper_case(连字符), space_upper_case(空格), dot_upper_case(点)
 | 
				
			||||||
 | 
					        // 大驼峰命名
 | 
				
			||||||
 | 
					        // pascal_case(大驼峰), snake_pascal_case(下划线), kebab_pascal_case(连字符), space_pascal_case(空格), dot_pascal_case(点)
 | 
				
			||||||
 | 
					        // 小驼峰命名
 | 
				
			||||||
 | 
					        // camel_case(小驼峰), snake_camel_case(下划线), kebab_camel_case(连字符), space_camel_case(空格), dot_camel_case(点)
 | 
				
			||||||
 | 
					        "variable-conversion.disableFormat": {
 | 
				
			||||||
 | 
					          "order": 1,
 | 
				
			||||||
 | 
					          // markdownDescription 最多配置 11 行
 | 
				
			||||||
 | 
					          "markdownDescription": "定义哪些格式是禁用的\n\nDefine which formats are disabled.\n\n若您感觉以下配置比较麻烦,也可以选择在 `settings.json` 中编辑:\n\nIf you find the following configuration troublesome, you can also edit this configuration item in `settings.json`:\n\n`\"variable-conversion.disableFormat\": [ ... ],`\n\n[在 settings.json 中编辑 (Edit in settings.json)](command:workbench.action.openSettingsJson)\n\n配置后,您可能需要*重启扩展宿主*,或*重启当前窗口*才可使该配置完全生效(二选一即可):\n\nYou may need to *restart extension host* or *reload window* after configuration to take full effect (either):\n\n[重启扩展宿主 (Restart Extension Host)](command:workbench.action.restartExtensionHost), [重启当前窗口 (Reload Window)](command:workbench.action.reloadWindow)",
 | 
				
			||||||
 | 
					          "type": "array",
 | 
				
			||||||
 | 
					          "items": {
 | 
				
			||||||
 | 
					            "type": "string",
 | 
				
			||||||
 | 
					            "enum": [
 | 
				
			||||||
 | 
					              "camel_case",
 | 
				
			||||||
 | 
					              "pascal_case",
 | 
				
			||||||
 | 
					              "snake_case",
 | 
				
			||||||
 | 
					              "snake_camel_case",
 | 
				
			||||||
 | 
					              "snake_pascal_case",
 | 
				
			||||||
 | 
					              "snake_upper_case",
 | 
				
			||||||
 | 
					              "kebab_case",
 | 
				
			||||||
 | 
					              "kebab_camel_case",
 | 
				
			||||||
 | 
					              "kebab_pascal_case",
 | 
				
			||||||
 | 
					              "kebab_upper_case",
 | 
				
			||||||
 | 
					              "space_case",
 | 
				
			||||||
 | 
					              "space_camel_case",
 | 
				
			||||||
 | 
					              "space_pascal_case",
 | 
				
			||||||
 | 
					              "space_upper_case",
 | 
				
			||||||
 | 
					              "dot_case",
 | 
				
			||||||
 | 
					              "dot_camel_case",
 | 
				
			||||||
 | 
					              "dot_pascal_case",
 | 
				
			||||||
 | 
					              "dot_upper_case",
 | 
				
			||||||
 | 
					              "lower_case",
 | 
				
			||||||
 | 
					              "upper_case"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "enumDescriptions": [
 | 
				
			||||||
 | 
					              "小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 全大写命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 全大写命名",
 | 
				
			||||||
 | 
					              "空格分隔命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 全大写命名",
 | 
				
			||||||
 | 
					              "点分隔命名",
 | 
				
			||||||
 | 
					              "点分隔 + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "点分隔 + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "点分隔 + 全大写命名",
 | 
				
			||||||
 | 
					              "全小写",
 | 
				
			||||||
 | 
					              "全大写"
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          "default": []
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "variable-conversion.circularConversionFormatOrder": {
 | 
				
			||||||
 | 
					          "order": 2,
 | 
				
			||||||
 | 
					          "title": "定义循环转换快捷键的目标格式排序",
 | 
				
			||||||
 | 
					          // "description": "Defines the destination format ordering of the circular conversion shortcut.\n定义循环转换快捷键的目标格式排序",
 | 
				
			||||||
 | 
					          // markdownDescription 最多配置 11 行
 | 
				
			||||||
 | 
					          // "markdownDescription": "Defines the destination format ordering of the circular conversion shortcut, separated by commas.\n\n 定义循环转换快捷键的目标格式排序,以英文逗号分隔\n\n Target formats that are not in the following configuration list will appear last in the following custom order in the default order.\n\n不在以下配置列表中的目标格式,将按照默认顺序排在以下自定义顺序最后\n\n 🌟Lower Case 全小写命名: `lower_case`(全小写), `snake_case`(下划线), `kebab_case`(连字符), `space_case`(空格), `dot_case`(点)\n\n 🌟Upper Case 全大写命名: `upper_case`(全大写), `snake_upper_case`(下划线), `kebab_upper_case`(连字符), `space_upper_case`(空格), `dot_upper_case`(点)\n\n 🌟Pascal Case 大驼峰命名: `pascal_case`(大驼峰), `snake_pascal_case`(下划线), `kebab_pascal_case`(连字符), `space_pascal_case`(空格), `dot_pascal_case`(点)\n\n 🌟Camel Case 小驼峰命名: `camel_case`(小驼峰), `snake_camel_case`(下划线), `kebab_camel_case`(连字符), `space_camel_case`(空格), `dot_camel_case`(点)\n\n🐳Default value 默认值: `camel_case, snake_case, pascal_case, kebab_case, space_case, dot_case, snake_upper_case, kebab_upper_case, space_upper_case, dot_upper_case, snake_pascal_case, kebab_pascal_case, space_pascal_case, dot_pascal_case, snake_camel_case, kebab_camel_case, space_camel_case, dot_camel_case, lower_case, upper_case`\n\n If you find the following configuration troublesome, you can also edit this configuration item in `settings.json`. 若您感觉以下配置比较麻烦,也可以选择在 `settings.json` 中编辑: `\"variable-conversion.circularConversionFormatOrder\": \"...\",` [Edit in settings.json (在 settings.json 中编辑)](command:workbench.action.openSettingsJson)",
 | 
				
			||||||
 | 
					          "markdownDescription": "定义循环转换快捷键的目标格式排序,以英文逗号分隔。不在以下配置列表中的目标格式,将按照默认顺序排在以下自定义顺序最后\n\n Defines the destination format ordering of the circular conversion shortcut, separated by commas. (Target formats that are not in the following configuration list will appear last in the following custom order in the default order.)\n\n 📌请[在 `settings.json` 中编辑该配置](command:workbench.action.openSettingsJson),**不要使用**设置页面的下拉框进行配置: `\"variable-conversion.circularConversionFormatOrder\": [ ... ],`\n\n 📌Please [edit this configuration in `settings.json`](command:workbench.action.openSettingsJson), **instead of** using the drop-down box on the settings page.\n\n 🐳默认值 Default value: `\"variable-conversion.circularConversionFormatOrder\": [ \"camel_case\", \"snake_case\", \"pascal_case\", \"kebab_case\", \"space_case\", \"dot_case\", \"snake_upper_case\", \"kebab_upper_case\", \"space_upper_case\", \"dot_upper_case\", \"snake_pascal_case\", \"kebab_pascal_case\", \"space_pascal_case\", \"dot_pascal_case\", \"snake_camel_case\", \"kebab_camel_case\", \"space_camel_case\", \"dot_camel_case\", \"lower_case\", \"upper_case\" ],`\n\n 👉Configuration item meaning 配置项说明\n\n 🌟Lower Case 全小写命名: `lower_case`(全小写), `snake_case`(下划线), `kebab_case`(连字符), `space_case`(空格), `dot_case`(点)\n\n 🌟Upper Case 全大写命名: `upper_case`(全大写), `snake_upper_case`(下划线), `kebab_upper_case`(连字符), `space_upper_case`(空格), `dot_upper_case`(点)\n\n 🌟Pascal Case 大驼峰命名: `pascal_case`(大驼峰), `snake_pascal_case`(下划线), `kebab_pascal_case`(连字符), `space_pascal_case`(空格), `dot_pascal_case`(点)\n\n 🌟Camel Case 小驼峰命名: `camel_case`(小驼峰), `snake_camel_case`(下划线), `kebab_camel_case`(连字符), `space_camel_case`(空格), `dot_camel_case`(点)",
 | 
				
			||||||
 | 
					          // "type": "string",
 | 
				
			||||||
 | 
					          // "default": "camel_case, snake_case, pascal_case, kebab_case, space_case, dot_case, snake_upper_case, kebab_upper_case, space_upper_case, dot_upper_case, snake_pascal_case, kebab_pascal_case, space_pascal_case, dot_pascal_case, snake_camel_case, kebab_camel_case, space_camel_case, dot_camel_case, lower_case, upper_case"
 | 
				
			||||||
 | 
					          "type": "array",
 | 
				
			||||||
 | 
					          "items": {
 | 
				
			||||||
 | 
					            "type": "string",
 | 
				
			||||||
 | 
					            "enum": [
 | 
				
			||||||
 | 
					              "camel_case",
 | 
				
			||||||
 | 
					              "pascal_case",
 | 
				
			||||||
 | 
					              "snake_case",
 | 
				
			||||||
 | 
					              "snake_camel_case",
 | 
				
			||||||
 | 
					              "snake_pascal_case",
 | 
				
			||||||
 | 
					              "snake_upper_case",
 | 
				
			||||||
 | 
					              "kebab_case",
 | 
				
			||||||
 | 
					              "kebab_camel_case",
 | 
				
			||||||
 | 
					              "kebab_pascal_case",
 | 
				
			||||||
 | 
					              "kebab_upper_case",
 | 
				
			||||||
 | 
					              "space_case",
 | 
				
			||||||
 | 
					              "space_camel_case",
 | 
				
			||||||
 | 
					              "space_pascal_case",
 | 
				
			||||||
 | 
					              "space_upper_case",
 | 
				
			||||||
 | 
					              "dot_case",
 | 
				
			||||||
 | 
					              "dot_camel_case",
 | 
				
			||||||
 | 
					              "dot_pascal_case",
 | 
				
			||||||
 | 
					              "dot_upper_case",
 | 
				
			||||||
 | 
					              "lower_case",
 | 
				
			||||||
 | 
					              "upper_case"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "enumDescriptions": [
 | 
				
			||||||
 | 
					              "小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 全大写命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 全大写命名",
 | 
				
			||||||
 | 
					              "空格分隔命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 全大写命名",
 | 
				
			||||||
 | 
					              "点分隔命名",
 | 
				
			||||||
 | 
					              "点分隔 + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "点分隔 + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "点分隔 + 全大写命名",
 | 
				
			||||||
 | 
					              "全小写",
 | 
				
			||||||
 | 
					              "全大写"
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          "default": [
 | 
				
			||||||
 | 
					            "camel_case",
 | 
				
			||||||
 | 
					            "snake_case",
 | 
				
			||||||
 | 
					            "pascal_case",
 | 
				
			||||||
 | 
					            "kebab_case",
 | 
				
			||||||
 | 
					            "space_case",
 | 
				
			||||||
 | 
					            "dot_case",
 | 
				
			||||||
 | 
					            "snake_upper_case",
 | 
				
			||||||
 | 
					            "kebab_upper_case",
 | 
				
			||||||
 | 
					            "space_upper_case",
 | 
				
			||||||
 | 
					            "dot_upper_case",
 | 
				
			||||||
 | 
					            "snake_pascal_case",
 | 
				
			||||||
 | 
					            "kebab_pascal_case",
 | 
				
			||||||
 | 
					            "space_pascal_case",
 | 
				
			||||||
 | 
					            "dot_pascal_case",
 | 
				
			||||||
 | 
					            "snake_camel_case",
 | 
				
			||||||
 | 
					            "kebab_camel_case",
 | 
				
			||||||
 | 
					            "space_camel_case",
 | 
				
			||||||
 | 
					            "dot_camel_case",
 | 
				
			||||||
 | 
					            "lower_case",
 | 
				
			||||||
 | 
					            "upper_case"
 | 
				
			||||||
 | 
					          ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "vscode:prepublish": "npm run compile",
 | 
					    "vscode:prepublish": "npm run compile",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										84
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								package.json
									
									
									
									
									
								
							@@ -155,84 +155,104 @@
 | 
				
			|||||||
      ],
 | 
					      ],
 | 
				
			||||||
      "variable-conversion.stringConversionMenu": [
 | 
					      "variable-conversion.stringConversionMenu": [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toCamelCase",
 | 
					          "command": "variable-conversion.toCamelCase",
 | 
				
			||||||
          "group": "group-1-camel@1"
 | 
					          "group": "group-1-camel@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toPascalCase",
 | 
					          "command": "variable-conversion.toPascalCase",
 | 
				
			||||||
          "group": "group-1-camel@2"
 | 
					          "group": "group-1-camel@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_snake_case",
 | 
				
			||||||
          "command": "variable-conversion.toSnakeCase",
 | 
					          "command": "variable-conversion.toSnakeCase",
 | 
				
			||||||
          "group": "group-2-snake@1"
 | 
					          "group": "group-2-snake@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_snake_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toSnakeUpperCase",
 | 
					          "command": "variable-conversion.toSnakeUpperCase",
 | 
				
			||||||
          "group": "group-2-snake@2"
 | 
					          "group": "group-2-snake@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_snake_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toSnakePascalCase",
 | 
					          "command": "variable-conversion.toSnakePascalCase",
 | 
				
			||||||
          "group": "group-2-snake@3"
 | 
					          "group": "group-2-snake@3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_snake_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toSnakeCamelCase",
 | 
					          "command": "variable-conversion.toSnakeCamelCase",
 | 
				
			||||||
          "group": "group-2-snake@4"
 | 
					          "group": "group-2-snake@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_kebab_case",
 | 
				
			||||||
          "command": "variable-conversion.toKebabCase",
 | 
					          "command": "variable-conversion.toKebabCase",
 | 
				
			||||||
          "group": "group-3-kebab@1"
 | 
					          "group": "group-3-kebab@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_kebab_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toKebabUpperCase",
 | 
					          "command": "variable-conversion.toKebabUpperCase",
 | 
				
			||||||
          "group": "group-3-kebab@2"
 | 
					          "group": "group-3-kebab@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_kebab_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toKebabPascalCase",
 | 
					          "command": "variable-conversion.toKebabPascalCase",
 | 
				
			||||||
          "group": "group-3-kebab@3"
 | 
					          "group": "group-3-kebab@3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_kebab_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toKebabCamelCase",
 | 
					          "command": "variable-conversion.toKebabCamelCase",
 | 
				
			||||||
          "group": "group-3-kebab@4"
 | 
					          "group": "group-3-kebab@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_space_case",
 | 
				
			||||||
          "command": "variable-conversion.toSpaceCase",
 | 
					          "command": "variable-conversion.toSpaceCase",
 | 
				
			||||||
          "group": "group-4-space@1"
 | 
					          "group": "group-4-space@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_space_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toSpaceUpperCase",
 | 
					          "command": "variable-conversion.toSpaceUpperCase",
 | 
				
			||||||
          "group": "group-4-space@2"
 | 
					          "group": "group-4-space@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_space_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toSpacePascalCase",
 | 
					          "command": "variable-conversion.toSpacePascalCase",
 | 
				
			||||||
          "group": "group-4-space@3"
 | 
					          "group": "group-4-space@3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_space_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toSpaceCamelCase",
 | 
					          "command": "variable-conversion.toSpaceCamelCase",
 | 
				
			||||||
          "group": "group-4-space@4"
 | 
					          "group": "group-4-space@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_dot_case",
 | 
				
			||||||
          "command": "variable-conversion.toDotCase",
 | 
					          "command": "variable-conversion.toDotCase",
 | 
				
			||||||
          "group": "group-5-dot@1"
 | 
					          "group": "group-5-dot@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_dot_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toDotUpperCase",
 | 
					          "command": "variable-conversion.toDotUpperCase",
 | 
				
			||||||
          "group": "group-5-dot@2"
 | 
					          "group": "group-5-dot@2"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_dot_pascal_case",
 | 
				
			||||||
          "command": "variable-conversion.toDotPascalCase",
 | 
					          "command": "variable-conversion.toDotPascalCase",
 | 
				
			||||||
          "group": "group-5-dot@3"
 | 
					          "group": "group-5-dot@3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_dot_camel_case",
 | 
				
			||||||
          "command": "variable-conversion.toDotCamelCase",
 | 
					          "command": "variable-conversion.toDotCamelCase",
 | 
				
			||||||
          "group": "group-5-dot@4"
 | 
					          "group": "group-5-dot@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_lower_case",
 | 
				
			||||||
          "command": "variable-conversion.toLowerCase",
 | 
					          "command": "variable-conversion.toLowerCase",
 | 
				
			||||||
          "group": "group-5-upper-lower@1"
 | 
					          "group": "group-6-upper-lower@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					          "when": "!_isHideSubMenuItem_upper_case",
 | 
				
			||||||
          "command": "variable-conversion.toUpperCase",
 | 
					          "command": "variable-conversion.toUpperCase",
 | 
				
			||||||
          "group": "group-5-upper-lower@2"
 | 
					          "group": "group-6-upper-lower@2"
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -241,7 +261,65 @@
 | 
				
			|||||||
        "id": "variable-conversion.stringConversionMenu",
 | 
					        "id": "variable-conversion.stringConversionMenu",
 | 
				
			||||||
        "label": "将变量转换为..."
 | 
					        "label": "将变量转换为..."
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ]
 | 
					    ],
 | 
				
			||||||
 | 
					    "configuration": {
 | 
				
			||||||
 | 
					      "title": "Variable Conversion 变量转换",
 | 
				
			||||||
 | 
					      "properties": {
 | 
				
			||||||
 | 
					        "variable-conversion.disableFormat": {
 | 
				
			||||||
 | 
					          "order": 1,
 | 
				
			||||||
 | 
					          "markdownDescription": "定义哪些格式是禁用的\n\nDefine which formats are disabled.\n\n若您感觉以下配置比较麻烦,也可以选择在 `settings.json` 中编辑:\n\nIf you find the following configuration troublesome, you can also edit this configuration item in `settings.json`:\n\n`\"variable-conversion.disableFormat\": [ ... ],`\n\n[在 settings.json 中编辑 (Edit in settings.json)](command:workbench.action.openSettingsJson)\n\n配置后,您可能需要*重启扩展宿主*,或*重启当前窗口*才可使该配置完全生效(二选一即可):\n\nYou may need to *restart extension host* or *reload window* after configuration to take full effect (either):\n\n[重启扩展宿主 (Restart Extension Host)](command:workbench.action.restartExtensionHost), [重启当前窗口 (Reload Window)](command:workbench.action.reloadWindow)",
 | 
				
			||||||
 | 
					          "type": "array",
 | 
				
			||||||
 | 
					          "items": {
 | 
				
			||||||
 | 
					            "type": "string",
 | 
				
			||||||
 | 
					            "enum": [
 | 
				
			||||||
 | 
					              "camel_case",
 | 
				
			||||||
 | 
					              "pascal_case",
 | 
				
			||||||
 | 
					              "snake_case",
 | 
				
			||||||
 | 
					              "snake_camel_case",
 | 
				
			||||||
 | 
					              "snake_pascal_case",
 | 
				
			||||||
 | 
					              "snake_upper_case",
 | 
				
			||||||
 | 
					              "kebab_case",
 | 
				
			||||||
 | 
					              "kebab_camel_case",
 | 
				
			||||||
 | 
					              "kebab_pascal_case",
 | 
				
			||||||
 | 
					              "kebab_upper_case",
 | 
				
			||||||
 | 
					              "space_case",
 | 
				
			||||||
 | 
					              "space_camel_case",
 | 
				
			||||||
 | 
					              "space_pascal_case",
 | 
				
			||||||
 | 
					              "space_upper_case",
 | 
				
			||||||
 | 
					              "dot_case",
 | 
				
			||||||
 | 
					              "dot_camel_case",
 | 
				
			||||||
 | 
					              "dot_pascal_case",
 | 
				
			||||||
 | 
					              "dot_upper_case",
 | 
				
			||||||
 | 
					              "lower_case",
 | 
				
			||||||
 | 
					              "upper_case"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "enumDescriptions": [
 | 
				
			||||||
 | 
					              "小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "下划线(蛇形) + 全大写命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "中划线(连字符/脊柱式) + 全大写命名",
 | 
				
			||||||
 | 
					              "空格分隔命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "空格分隔 + 全大写命名",
 | 
				
			||||||
 | 
					              "点分隔命名",
 | 
				
			||||||
 | 
					              "点分隔 + 小驼峰(驼峰)命名",
 | 
				
			||||||
 | 
					              "点分隔 + 大驼峰(帕斯卡)命名",
 | 
				
			||||||
 | 
					              "点分隔 + 全大写命名",
 | 
				
			||||||
 | 
					              "全小写",
 | 
				
			||||||
 | 
					              "全大写"
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          "default": []
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "vscode:prepublish": "npm run compile",
 | 
					    "vscode:prepublish": "npm run compile",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,12 @@
 | 
				
			|||||||
import * as vscode from 'vscode';
 | 
					import * as vscode from 'vscode';
 | 
				
			||||||
import QuickPickItemEx from "../type-definition/QuickPickItemExType";
 | 
					import QuickPickItemEx from "../type-definition/QuickPickItemExType";
 | 
				
			||||||
import { quickPickSupportCases } from '../type-definition/SupportCaseType';
 | 
					import { QuickPickSupportCaseItem, quickPickSupportCases } from '../type-definition/SupportCaseType';
 | 
				
			||||||
import { TransformTextResult } from '../type-definition/TransformTextResultType';
 | 
					import { TransformTextResult } from '../type-definition/TransformTextResultType';
 | 
				
			||||||
import { transformMutliLineText, transformMutliSelectionText } from '../main-code/transform';
 | 
					import { transformMutliSelectionText } from '../main-code/transform';
 | 
				
			||||||
import { EOL } from '../type-definition/EOLType';
 | 
					import { EOL } from '../type-definition/EOLType';
 | 
				
			||||||
import { caseConversion } from '../main-code/conversion';
 | 
					import { caseConversion } from '../main-code/conversion';
 | 
				
			||||||
import { isStringArrayEqual } from '../main-code/utils';
 | 
					import { isStringArrayEqual } from '../main-code/utils';
 | 
				
			||||||
 | 
					import { getUserConfigurations } from '../main-code/user-configuration';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const QuickPickLabelMaxLength = 60;
 | 
					const QuickPickLabelMaxLength = 60;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -18,12 +19,12 @@ interface RecommendItem {
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * 弹出的提示
 | 
					 * 弹出的提示
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
function generateOptionsBasedOnText(textList: string[], eol: EOL): Array<QuickPickItemEx> {
 | 
					function generateOptionsBasedOnText(textList: string[], eol: EOL, enabledQuickPickSupportCases: Array<QuickPickSupportCaseItem>): Array<QuickPickItemEx> {
 | 
				
			||||||
    // Cut text 切割文本
 | 
					    // Cut text 切割文本
 | 
				
			||||||
    const resultsList: Array<TransformTextResult[]> = transformMutliSelectionText(textList);
 | 
					    const resultsList: Array<TransformTextResult[]> = transformMutliSelectionText(textList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const mergeResultList: Array<RecommendItem> = [];
 | 
					    const mergeResultList: Array<RecommendItem> = [];
 | 
				
			||||||
    for (const quickPick of quickPickSupportCases) {
 | 
					    for (const quickPick of enabledQuickPickSupportCases) {
 | 
				
			||||||
        const conversionResults: Array<string> = [];
 | 
					        const conversionResults: Array<string> = [];
 | 
				
			||||||
        for (let i = 0; i < textList.length; i++) {
 | 
					        for (let i = 0; i < textList.length; i++) {
 | 
				
			||||||
            const text = textList[i];
 | 
					            const text = textList[i];
 | 
				
			||||||
@@ -95,8 +96,24 @@ export function handleQuickPick() {
 | 
				
			|||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // issue: #1 https://github.com/coder-xiaomo/variable-conversion-vscode-extension/issues/1
 | 
				
			||||||
 | 
					    // 获取用户配置
 | 
				
			||||||
 | 
					    const disableFormatList = getUserConfigurations('disableFormat');
 | 
				
			||||||
 | 
					    // 排除禁用的选项
 | 
				
			||||||
 | 
					    const enabledQuickPickSupportCases = [];
 | 
				
			||||||
 | 
					    for (const quickPick of quickPickSupportCases) {
 | 
				
			||||||
 | 
					        if (disableFormatList.includes(quickPick.settingsKey)) {
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        enabledQuickPickSupportCases.push(quickPick);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (enabledQuickPickSupportCases.length === 0) {
 | 
				
			||||||
 | 
					        vscode.window.showInformationMessage('所有格式都已被配置为禁用,请修改配置 `variable-conversion.disableFormat` 后重试\nAll formats have been configured to disable. Modify the `variable-conversion.disableFormat` configuration and try again.');
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 基于选中的文本生成选项
 | 
					    // 基于选中的文本生成选项
 | 
				
			||||||
    const options = generateOptionsBasedOnText(textList, eol);
 | 
					    const options = generateOptionsBasedOnText(textList, eol, enabledQuickPickSupportCases);
 | 
				
			||||||
    if (options.length === 0) {
 | 
					    if (options.length === 0) {
 | 
				
			||||||
        vscode.window.showInformationMessage('所选内容暂无可选转换,请尝试重新选择\nNo conversion candidates are available for the selected content, please try to select another text.');
 | 
					        vscode.window.showInformationMessage('所选内容暂无可选转换,请尝试重新选择\nNo conversion candidates are available for the selected content, please try to select another text.');
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,6 +7,7 @@ import { commands } from './type-definition/SupportCaseType';
 | 
				
			|||||||
import { createStatusBarItem, updateStatusBarItemVisable } from './extension-handler/status-bar-handler';
 | 
					import { createStatusBarItem, updateStatusBarItemVisable } from './extension-handler/status-bar-handler';
 | 
				
			||||||
import * as CyclicConversion from './main-code/cyclic-conversion';
 | 
					import * as CyclicConversion from './main-code/cyclic-conversion';
 | 
				
			||||||
import { EOL } from './type-definition/EOLType';
 | 
					import { EOL } from './type-definition/EOLType';
 | 
				
			||||||
 | 
					import { getUserConfigurations } from './main-code/user-configuration';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// This method is called when your extension is activated
 | 
					// This method is called when your extension is activated
 | 
				
			||||||
// Your extension is activated the very first time the command is executed
 | 
					// Your extension is activated the very first time the command is executed
 | 
				
			||||||
@@ -41,6 +42,14 @@ export function activate(context: vscode.ExtensionContext) {
 | 
				
			|||||||
		// 更新 _textSelectionLength (用于判断是否展示右键菜单)
 | 
							// 更新 _textSelectionLength (用于判断是否展示右键菜单)
 | 
				
			||||||
		vscode.commands.executeCommand('setContext', '_textSelectionLength', selectTextLength);
 | 
							vscode.commands.executeCommand('setContext', '_textSelectionLength', selectTextLength);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// issue: #1 https://github.com/coder-xiaomo/variable-conversion-vscode-extension/issues/1
 | 
				
			||||||
 | 
							// 获取用户配置
 | 
				
			||||||
 | 
							const disableFormatList = getUserConfigurations('disableFormat');
 | 
				
			||||||
 | 
							// 更新右键菜单每一项是否展示
 | 
				
			||||||
 | 
							for (const { settingsKey } of commands) {
 | 
				
			||||||
 | 
								vscode.commands.executeCommand('setContext', '_isHideSubMenuItem_' + settingsKey, disableFormatList.includes(settingsKey));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// 判断是否展示状态栏按钮
 | 
							// 判断是否展示状态栏按钮
 | 
				
			||||||
		updateStatusBarItemVisable(selectTextLength);
 | 
							updateStatusBarItemVisable(selectTextLength);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@ import { EOL } from "../type-definition/EOLType";
 | 
				
			|||||||
import { cyclicConvertCaseOrder } from "../type-definition/SupportCaseType";
 | 
					import { cyclicConvertCaseOrder } from "../type-definition/SupportCaseType";
 | 
				
			||||||
import { caseConversion } from "./conversion";
 | 
					import { caseConversion } from "./conversion";
 | 
				
			||||||
import { isStringArrayEqual, stringListArrayDuplicateRemoval } from './utils';
 | 
					import { isStringArrayEqual, stringListArrayDuplicateRemoval } from './utils';
 | 
				
			||||||
 | 
					import { getUserConfigurations } from './user-configuration';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface UserSelection {
 | 
					interface UserSelection {
 | 
				
			||||||
    currentEol: EOL
 | 
					    currentEol: EOL
 | 
				
			||||||
@@ -64,16 +65,25 @@ function lazyConvert() {
 | 
				
			|||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 获取用户配置
 | 
				
			||||||
 | 
					    const disableFormatList = getUserConfigurations('disableFormat');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const textList = userSelection.currentSelectionsText;
 | 
					    const textList = userSelection.currentSelectionsText;
 | 
				
			||||||
    // vscode.window.showInformationMessage('lazyConvert' + textList.join('\n'));
 | 
					    // vscode.window.showInformationMessage('lazyConvert' + textList.join('\n'));
 | 
				
			||||||
    const eol = userSelection.currentEol;
 | 
					    const eol = userSelection.currentEol;
 | 
				
			||||||
    const conversionsTarget: Array<string[]> = [textList];
 | 
					    const conversionsTarget: Array<string[]> = [textList];
 | 
				
			||||||
    for (const cyclicConvertCase of cyclicConvertCaseOrder) {
 | 
					    for (const cyclicConvertCase of cyclicConvertCaseOrder) {
 | 
				
			||||||
 | 
					        // issue: #1 https://github.com/coder-xiaomo/variable-conversion-vscode-extension/issues/1
 | 
				
			||||||
 | 
					        // 跳过禁用的目标格式
 | 
				
			||||||
 | 
					        if (disableFormatList.includes(cyclicConvertCase.settingsKey)) {
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 每一个类型
 | 
					        // 每一个类型
 | 
				
			||||||
        const conversionsTargetItem: string[] = [];
 | 
					        const conversionsTargetItem: string[] = [];
 | 
				
			||||||
        for (const line of textList) {
 | 
					        for (const line of textList) {
 | 
				
			||||||
            // 选中区块的每一行
 | 
					            // 选中区块的每一行
 | 
				
			||||||
            const conversionResult: string = caseConversion(cyclicConvertCase, line, eol);
 | 
					            const conversionResult: string = caseConversion(cyclicConvertCase.type, line, eol);
 | 
				
			||||||
            conversionsTargetItem.push(conversionResult);
 | 
					            conversionsTargetItem.push(conversionResult);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        conversionsTarget.push(conversionsTargetItem);
 | 
					        conversionsTarget.push(conversionsTargetItem);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								src/main-code/user-configuration.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/main-code/user-configuration.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					const vscode = require('vscode');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function getUserConfigurations(configKey: string) {
 | 
				
			||||||
 | 
					    const config = vscode.workspace.getConfiguration('variable-conversion');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 获取 disableFormat 配置项
 | 
				
			||||||
 | 
					    const configValue = config.get(configKey);
 | 
				
			||||||
 | 
					    console.log('configValue:', configValue);
 | 
				
			||||||
 | 
					    return configValue;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export {
 | 
				
			||||||
 | 
					    getUserConfigurations
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Code:
 | 
					 * Code:
 | 
				
			||||||
 * - Add type definition in below `SupportCase` enum and following array
 | 
					 * - Add type definition in below `SupportCase` enum and following array
 | 
				
			||||||
 * - Add `commands`, `menus` parts in [package.json] and [package-comment.jsonc]
 | 
					 * - Add `commands`, `menus`, `configuration` parts in [package.json] and [package-comment.jsonc]
 | 
				
			||||||
 * - Add main conversion logic in [src/main-code/conversion.ts]
 | 
					 * - Add main conversion logic in [src/main-code/conversion.ts]
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Test:
 | 
					 * Test:
 | 
				
			||||||
@@ -281,188 +281,301 @@ const keyword = {
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * 接管的变量转换命令
 | 
					 * 接管的变量转换命令
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export const commands: Array<{ command: string; targetCase: SupportCase }> = [
 | 
					export const commands: Array<{ command: string; targetCase: SupportCase; settingsKey: string }> = [
 | 
				
			||||||
    { command: 'variable-conversion.toCamelCase', targetCase: SupportCase.CAMEL_CASE },
 | 
					    {
 | 
				
			||||||
    { command: 'variable-conversion.toPascalCase', targetCase: SupportCase.PASCAL_CASE },
 | 
					        command: 'variable-conversion.toCamelCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.CAMEL_CASE,
 | 
				
			||||||
    { command: 'variable-conversion.toSnakeCase', targetCase: SupportCase.SNAKE_CASE },
 | 
					        settingsKey: 'camel_case'
 | 
				
			||||||
    { command: 'variable-conversion.toSnakeUpperCase', targetCase: SupportCase.SNAKE_UPPER_CASE },
 | 
					    },
 | 
				
			||||||
    { command: 'variable-conversion.toSnakePascalCase', targetCase: SupportCase.SNAKE_PASCAL_CASE },
 | 
					    {
 | 
				
			||||||
    { command: 'variable-conversion.toSnakeCamelCase', targetCase: SupportCase.SNAKE_CAMEL_CASE },
 | 
					        command: 'variable-conversion.toPascalCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.PASCAL_CASE,
 | 
				
			||||||
    { command: 'variable-conversion.toKebabCase', targetCase: SupportCase.KEBAB_CASE },
 | 
					        settingsKey: 'pascal_case'
 | 
				
			||||||
    { command: 'variable-conversion.toKebabUpperCase', targetCase: SupportCase.KEBAB_UPPER_CASE },
 | 
					    },
 | 
				
			||||||
    { command: 'variable-conversion.toKebabPascalCase', targetCase: SupportCase.KEBAB_PASCAL_CASE },
 | 
					    // +++++++++++++++++++++++++++++++++++++++++++++++
 | 
				
			||||||
    { command: 'variable-conversion.toKebabCamelCase', targetCase: SupportCase.KEBAB_CAMEL_CASE },
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toSnakeCase',
 | 
				
			||||||
    { command: 'variable-conversion.toSpaceCase', targetCase: SupportCase.SPACE_CASE },
 | 
					        targetCase: SupportCase.SNAKE_CASE,
 | 
				
			||||||
    { command: 'variable-conversion.toSpaceUpperCase', targetCase: SupportCase.SPACE_UPPER_CASE },
 | 
					        settingsKey: 'snake_case'
 | 
				
			||||||
    { command: 'variable-conversion.toSpacePascalCase', targetCase: SupportCase.SPACE_PASCAL_CASE },
 | 
					    },
 | 
				
			||||||
    { command: 'variable-conversion.toSpaceCamelCase', targetCase: SupportCase.SPACE_CAMEL_CASE },
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toSnakeUpperCase',
 | 
				
			||||||
    { command: 'variable-conversion.toDotCase', targetCase: SupportCase.DOT_CASE },
 | 
					        targetCase: SupportCase.SNAKE_UPPER_CASE,
 | 
				
			||||||
    { command: 'variable-conversion.toDotUpperCase', targetCase: SupportCase.DOT_UPPER_CASE },
 | 
					        settingsKey: 'snake_upper_case'
 | 
				
			||||||
    { command: 'variable-conversion.toDotPascalCase', targetCase: SupportCase.DOT_PASCAL_CASE },
 | 
					    },
 | 
				
			||||||
    { command: 'variable-conversion.toDotCamelCase', targetCase: SupportCase.DOT_CAMEL_CASE },
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toSnakePascalCase',
 | 
				
			||||||
    { command: 'variable-conversion.toLowerCase', targetCase: SupportCase.LOWER_CASE },
 | 
					        targetCase: SupportCase.SNAKE_PASCAL_CASE,
 | 
				
			||||||
    { command: 'variable-conversion.toUpperCase', targetCase: SupportCase.UPPER_CASE },
 | 
					        settingsKey: 'snake_pascal_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toSnakeCamelCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.SNAKE_CAMEL_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'snake_camel_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    // +++++++++++++++++++++++++++++++++++++++++++++++
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toKebabCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.KEBAB_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'kebab_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toKebabUpperCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.KEBAB_UPPER_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'kebab_upper_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toKebabPascalCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.KEBAB_PASCAL_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'kebab_pascal_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toKebabCamelCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.KEBAB_CAMEL_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'kebab_camel_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    // +++++++++++++++++++++++++++++++++++++++++++++++
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toSpaceCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.SPACE_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'space_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toSpaceUpperCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.SPACE_UPPER_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'space_upper_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toSpacePascalCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.SPACE_PASCAL_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'space_pascal_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toSpaceCamelCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.SPACE_CAMEL_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'space_camel_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    // +++++++++++++++++++++++++++++++++++++++++++++++
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toDotCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.DOT_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'dot_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toDotUpperCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.DOT_UPPER_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'dot_upper_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toDotPascalCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.DOT_PASCAL_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'dot_pascal_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toDotCamelCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.DOT_CAMEL_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'dot_camel_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    // +++++++++++++++++++++++++++++++++++++++++++++++
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toLowerCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.LOWER_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'lower_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        command: 'variable-conversion.toUpperCase',
 | 
				
			||||||
 | 
					        targetCase: SupportCase.UPPER_CASE,
 | 
				
			||||||
 | 
					        settingsKey: 'upper_case'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface QuickPickSupportCaseItem {
 | 
				
			||||||
 | 
					    type: SupportCase,
 | 
				
			||||||
 | 
					    name: string,
 | 
				
			||||||
 | 
					    shortName: string,
 | 
				
			||||||
 | 
					    keyword: string[],
 | 
				
			||||||
 | 
					    settingsKey: string,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 所有支持的命名方式
 | 
					 * 所有支持的命名方式
 | 
				
			||||||
 * @since 2024-04-06
 | 
					 * @since 2024-04-06
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export const quickPickSupportCases = [
 | 
					export const quickPickSupportCases: Array<QuickPickSupportCaseItem> = [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.CAMEL_CASE,
 | 
					        type: SupportCase.CAMEL_CASE,
 | 
				
			||||||
        name: '小驼峰(驼峰)命名',
 | 
					        name: '小驼峰(驼峰)命名',
 | 
				
			||||||
        shortName: '小驼峰',
 | 
					        shortName: '小驼峰',
 | 
				
			||||||
        keyword: keyword.camel,
 | 
					        keyword: keyword.camel,
 | 
				
			||||||
 | 
					        settingsKey: 'camel_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.PASCAL_CASE,
 | 
					        type: SupportCase.PASCAL_CASE,
 | 
				
			||||||
        name: '大驼峰(帕斯卡)命名',
 | 
					        name: '大驼峰(帕斯卡)命名',
 | 
				
			||||||
        shortName: '帕斯卡',
 | 
					        shortName: '帕斯卡',
 | 
				
			||||||
        keyword: keyword.pascal,
 | 
					        keyword: keyword.pascal,
 | 
				
			||||||
 | 
					        settingsKey: 'pascal_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.SNAKE_CASE,
 | 
					        type: SupportCase.SNAKE_CASE,
 | 
				
			||||||
        name: '下划线(蛇形)命名',
 | 
					        name: '下划线(蛇形)命名',
 | 
				
			||||||
        shortName: '蛇形',
 | 
					        shortName: '蛇形',
 | 
				
			||||||
        keyword: [...keyword.snake, ...keyword.lower],
 | 
					        keyword: [...keyword.snake, ...keyword.lower],
 | 
				
			||||||
 | 
					        settingsKey: 'snake_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.SNAKE_CAMEL_CASE,
 | 
					        type: SupportCase.SNAKE_CAMEL_CASE,
 | 
				
			||||||
        name: '下划线(蛇形) + 小驼峰(驼峰)命名',
 | 
					        name: '下划线(蛇形) + 小驼峰(驼峰)命名',
 | 
				
			||||||
        shortName: '蛇形驼峰',
 | 
					        shortName: '蛇形驼峰',
 | 
				
			||||||
        keyword: [...keyword.snake, ...keyword.camel],
 | 
					        keyword: [...keyword.snake, ...keyword.camel],
 | 
				
			||||||
 | 
					        settingsKey: 'snake_camel_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.SNAKE_PASCAL_CASE,
 | 
					        type: SupportCase.SNAKE_PASCAL_CASE,
 | 
				
			||||||
        name: '下划线(蛇形) + 大驼峰(帕斯卡)命名',
 | 
					        name: '下划线(蛇形) + 大驼峰(帕斯卡)命名',
 | 
				
			||||||
        shortName: '蛇形帕斯卡',
 | 
					        shortName: '蛇形帕斯卡',
 | 
				
			||||||
        keyword: [...keyword.snake, ...keyword.pascal],
 | 
					        keyword: [...keyword.snake, ...keyword.pascal],
 | 
				
			||||||
 | 
					        settingsKey: 'snake_pascal_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.SNAKE_UPPER_CASE,
 | 
					        type: SupportCase.SNAKE_UPPER_CASE,
 | 
				
			||||||
        name: '下划线(蛇形) + 全大写命名',
 | 
					        name: '下划线(蛇形) + 全大写命名',
 | 
				
			||||||
        shortName: '蛇形大写',
 | 
					        shortName: '蛇形大写',
 | 
				
			||||||
        keyword: [...keyword.snake, ...keyword.upper],
 | 
					        keyword: [...keyword.snake, ...keyword.upper],
 | 
				
			||||||
 | 
					        settingsKey: 'snake_upper_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.KEBAB_CASE,
 | 
					        type: SupportCase.KEBAB_CASE,
 | 
				
			||||||
        name: '中划线(连字符/脊柱式)命名',
 | 
					        name: '中划线(连字符/脊柱式)命名',
 | 
				
			||||||
        shortName: '脊柱',
 | 
					        shortName: '脊柱',
 | 
				
			||||||
        keyword: [...keyword.kebab, ...keyword.lower],
 | 
					        keyword: [...keyword.kebab, ...keyword.lower],
 | 
				
			||||||
 | 
					        settingsKey: 'kebab_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.KEBAB_CAMEL_CASE,
 | 
					        type: SupportCase.KEBAB_CAMEL_CASE,
 | 
				
			||||||
        name: '中划线(连字符/脊柱式) + 小驼峰(驼峰)命名',
 | 
					        name: '中划线(连字符/脊柱式) + 小驼峰(驼峰)命名',
 | 
				
			||||||
        shortName: '脊柱驼峰',
 | 
					        shortName: '脊柱驼峰',
 | 
				
			||||||
        keyword: [...keyword.kebab, ...keyword.camel],
 | 
					        keyword: [...keyword.kebab, ...keyword.camel],
 | 
				
			||||||
 | 
					        settingsKey: 'kebab_camel_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.KEBAB_PASCAL_CASE,
 | 
					        type: SupportCase.KEBAB_PASCAL_CASE,
 | 
				
			||||||
        name: '中划线(连字符/脊柱式) + 大驼峰(帕斯卡)命名',
 | 
					        name: '中划线(连字符/脊柱式) + 大驼峰(帕斯卡)命名',
 | 
				
			||||||
        shortName: '脊柱帕斯卡',
 | 
					        shortName: '脊柱帕斯卡',
 | 
				
			||||||
        keyword: [...keyword.kebab, ...keyword.pascal],
 | 
					        keyword: [...keyword.kebab, ...keyword.pascal],
 | 
				
			||||||
 | 
					        settingsKey: 'kebab_pascal_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.KEBAB_UPPER_CASE,
 | 
					        type: SupportCase.KEBAB_UPPER_CASE,
 | 
				
			||||||
        name: '中划线(连字符/脊柱式) + 全大写命名',
 | 
					        name: '中划线(连字符/脊柱式) + 全大写命名',
 | 
				
			||||||
        shortName: '脊柱大写',
 | 
					        shortName: '脊柱大写',
 | 
				
			||||||
        keyword: [...keyword.kebab, ...keyword.upper],
 | 
					        keyword: [...keyword.kebab, ...keyword.upper],
 | 
				
			||||||
 | 
					        settingsKey: 'kebab_upper_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.SPACE_CASE,
 | 
					        type: SupportCase.SPACE_CASE,
 | 
				
			||||||
        name: '空格分隔命名',
 | 
					        name: '空格分隔命名',
 | 
				
			||||||
        shortName: '脊柱',
 | 
					        shortName: '脊柱',
 | 
				
			||||||
        keyword: [...keyword.space, ...keyword.lower],
 | 
					        keyword: [...keyword.space, ...keyword.lower],
 | 
				
			||||||
 | 
					        settingsKey: 'space_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.SPACE_CAMEL_CASE,
 | 
					        type: SupportCase.SPACE_CAMEL_CASE,
 | 
				
			||||||
        name: '空格分隔 + 小驼峰(驼峰)命名',
 | 
					        name: '空格分隔 + 小驼峰(驼峰)命名',
 | 
				
			||||||
        shortName: '脊柱驼峰',
 | 
					        shortName: '脊柱驼峰',
 | 
				
			||||||
        keyword: [...keyword.space, ...keyword.camel],
 | 
					        keyword: [...keyword.space, ...keyword.camel],
 | 
				
			||||||
 | 
					        settingsKey: 'space_camel_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.SPACE_PASCAL_CASE,
 | 
					        type: SupportCase.SPACE_PASCAL_CASE,
 | 
				
			||||||
        name: '空格分隔 + 大驼峰(帕斯卡)命名',
 | 
					        name: '空格分隔 + 大驼峰(帕斯卡)命名',
 | 
				
			||||||
        shortName: '脊柱帕斯卡',
 | 
					        shortName: '脊柱帕斯卡',
 | 
				
			||||||
        keyword: [...keyword.space, ...keyword.pascal],
 | 
					        keyword: [...keyword.space, ...keyword.pascal],
 | 
				
			||||||
 | 
					        settingsKey: 'space_pascal_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.SPACE_UPPER_CASE,
 | 
					        type: SupportCase.SPACE_UPPER_CASE,
 | 
				
			||||||
        name: '空格分隔 + 全大写命名',
 | 
					        name: '空格分隔 + 全大写命名',
 | 
				
			||||||
        shortName: '脊柱大写',
 | 
					        shortName: '脊柱大写',
 | 
				
			||||||
        keyword: [...keyword.space, ...keyword.upper],
 | 
					        keyword: [...keyword.space, ...keyword.upper],
 | 
				
			||||||
 | 
					        settingsKey: 'space_upper_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.DOT_CASE,
 | 
					        type: SupportCase.DOT_CASE,
 | 
				
			||||||
        name: '点分隔命名',
 | 
					        name: '点分隔命名',
 | 
				
			||||||
        shortName: '脊柱',
 | 
					        shortName: '脊柱',
 | 
				
			||||||
        keyword: [...keyword.dot, ...keyword.lower],
 | 
					        keyword: [...keyword.dot, ...keyword.lower],
 | 
				
			||||||
 | 
					        settingsKey: 'dot_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.DOT_CAMEL_CASE,
 | 
					        type: SupportCase.DOT_CAMEL_CASE,
 | 
				
			||||||
        name: '点分隔 + 小驼峰(驼峰)命名',
 | 
					        name: '点分隔 + 小驼峰(驼峰)命名',
 | 
				
			||||||
        shortName: '脊柱驼峰',
 | 
					        shortName: '脊柱驼峰',
 | 
				
			||||||
        keyword: [...keyword.dot, ...keyword.camel],
 | 
					        keyword: [...keyword.dot, ...keyword.camel],
 | 
				
			||||||
 | 
					        settingsKey: 'dot_camel_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.DOT_PASCAL_CASE,
 | 
					        type: SupportCase.DOT_PASCAL_CASE,
 | 
				
			||||||
        name: '点分隔 + 大驼峰(帕斯卡)命名',
 | 
					        name: '点分隔 + 大驼峰(帕斯卡)命名',
 | 
				
			||||||
        shortName: '脊柱帕斯卡',
 | 
					        shortName: '脊柱帕斯卡',
 | 
				
			||||||
        keyword: [...keyword.dot, ...keyword.pascal],
 | 
					        keyword: [...keyword.dot, ...keyword.pascal],
 | 
				
			||||||
 | 
					        settingsKey: 'dot_pascal_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.DOT_UPPER_CASE,
 | 
					        type: SupportCase.DOT_UPPER_CASE,
 | 
				
			||||||
        name: '点分隔 + 全大写命名',
 | 
					        name: '点分隔 + 全大写命名',
 | 
				
			||||||
        shortName: '脊柱大写',
 | 
					        shortName: '脊柱大写',
 | 
				
			||||||
        keyword: [...keyword.dot, ...keyword.upper],
 | 
					        keyword: [...keyword.dot, ...keyword.upper],
 | 
				
			||||||
 | 
					        settingsKey: 'dot_upper_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.LOWER_CASE,
 | 
					        type: SupportCase.LOWER_CASE,
 | 
				
			||||||
        name: '全小写',
 | 
					        name: '全小写',
 | 
				
			||||||
        shortName: '小写',
 | 
					        shortName: '小写',
 | 
				
			||||||
        keyword: keyword.lower,
 | 
					        keyword: keyword.lower,
 | 
				
			||||||
 | 
					        settingsKey: 'lower_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.UPPER_CASE,
 | 
					        type: SupportCase.UPPER_CASE,
 | 
				
			||||||
        name: '全大写',
 | 
					        name: '全大写',
 | 
				
			||||||
        shortName: '大写',
 | 
					        shortName: '大写',
 | 
				
			||||||
        keyword: keyword.upper,
 | 
					        keyword: keyword.upper,
 | 
				
			||||||
 | 
					        settingsKey: 'upper_case',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface CyclicConvertCaseOrderItem {
 | 
				
			||||||
 | 
					    type: SupportCase,
 | 
				
			||||||
 | 
					    settingsKey: string,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 通过快捷键循环转换的顺序
 | 
					 * 通过快捷键循环转换的顺序
 | 
				
			||||||
 * @since 2024-04-08
 | 
					 * @since 2024-04-08
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export const cyclicConvertCaseOrder = [
 | 
					export const cyclicConvertCaseOrder: Array<CyclicConvertCaseOrderItem> = [
 | 
				
			||||||
    SupportCase.CAMEL_CASE,
 | 
					    { type: SupportCase.CAMEL_CASE, settingsKey: 'camel_case' },
 | 
				
			||||||
    SupportCase.SNAKE_CASE,
 | 
					    { type: SupportCase.SNAKE_CASE, settingsKey: 'snake_case' },
 | 
				
			||||||
    SupportCase.PASCAL_CASE,
 | 
					    { type: SupportCase.PASCAL_CASE, settingsKey: 'pascal_case' },
 | 
				
			||||||
    SupportCase.KEBAB_CASE,
 | 
					    { type: SupportCase.KEBAB_CASE, settingsKey: 'kebab_case' },
 | 
				
			||||||
    SupportCase.SPACE_CASE,
 | 
					    { type: SupportCase.SPACE_CASE, settingsKey: 'space_case' },
 | 
				
			||||||
    SupportCase.DOT_CASE,
 | 
					    { type: SupportCase.DOT_CASE, settingsKey: 'dot_case' },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SupportCase.SNAKE_UPPER_CASE,
 | 
					    { type: SupportCase.SNAKE_UPPER_CASE, settingsKey: 'snake_upper_case' },
 | 
				
			||||||
    SupportCase.KEBAB_UPPER_CASE,
 | 
					    { type: SupportCase.KEBAB_UPPER_CASE, settingsKey: 'kebab_upper_case' },
 | 
				
			||||||
    SupportCase.SPACE_UPPER_CASE,
 | 
					    { type: SupportCase.SPACE_UPPER_CASE, settingsKey: 'space_upper_case' },
 | 
				
			||||||
    SupportCase.DOT_UPPER_CASE,
 | 
					    { type: SupportCase.DOT_UPPER_CASE, settingsKey: 'dot_upper_case' },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SupportCase.SNAKE_PASCAL_CASE,
 | 
					    { type: SupportCase.SNAKE_PASCAL_CASE, settingsKey: 'snake_pascal_case' },
 | 
				
			||||||
    SupportCase.KEBAB_PASCAL_CASE,
 | 
					    { type: SupportCase.KEBAB_PASCAL_CASE, settingsKey: 'kebab_pascal_case' },
 | 
				
			||||||
    SupportCase.SPACE_PASCAL_CASE,
 | 
					    { type: SupportCase.SPACE_PASCAL_CASE, settingsKey: 'space_pascal_case' },
 | 
				
			||||||
    SupportCase.DOT_PASCAL_CASE,
 | 
					    { type: SupportCase.DOT_PASCAL_CASE, settingsKey: 'dot_pascal_case' },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SupportCase.SNAKE_CAMEL_CASE,
 | 
					    { type: SupportCase.SNAKE_CAMEL_CASE, settingsKey: 'snake_camel_case' },
 | 
				
			||||||
    SupportCase.KEBAB_CAMEL_CASE,
 | 
					    { type: SupportCase.KEBAB_CAMEL_CASE, settingsKey: 'kebab_camel_case' },
 | 
				
			||||||
    SupportCase.SPACE_CAMEL_CASE,
 | 
					    { type: SupportCase.SPACE_CAMEL_CASE, settingsKey: 'space_camel_case' },
 | 
				
			||||||
    SupportCase.DOT_CAMEL_CASE,
 | 
					    { type: SupportCase.DOT_CAMEL_CASE, settingsKey: 'dot_camel_case' },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SupportCase.LOWER_CASE,
 | 
					    { type: SupportCase.LOWER_CASE, settingsKey: 'lower_case' },
 | 
				
			||||||
    SupportCase.UPPER_CASE,
 | 
					    { type: SupportCase.UPPER_CASE, settingsKey: 'upper_case' },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user