新增点分割转换目标;版本号更新为1.0.10
This commit is contained in:
		@@ -23,6 +23,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-->
 | 
					-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 1.0.10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Added
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Add 4 new conversion types: Dot Case, Dot Camel Case, Dot Pascal Case, Dot Upper Case (新增 4 种转换类型: 点分隔 + 全小写/小驼峰/大驼峰/全大写)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 1.0.8
 | 
					## 1.0.8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Added
 | 
					### Added
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -73,6 +73,10 @@ Or right-click on the selected text -> Convert string to...
 | 
				
			|||||||
| 空格分隔 + 小驼峰(驼峰)命名                | Space Camel Case         | foo Bar          |
 | 
					| 空格分隔 + 小驼峰(驼峰)命名                | Space Camel Case         | foo Bar          |
 | 
				
			||||||
| 空格分隔 + 大驼峰(帕斯卡)命名              | Space Pascal Case        | Foo Bar          |
 | 
					| 空格分隔 + 大驼峰(帕斯卡)命名              | Space Pascal Case        | Foo Bar          |
 | 
				
			||||||
| 空格分隔 + 全大写命名                      | Space Upper Case         | FOO BAR          |
 | 
					| 空格分隔 + 全大写命名                      | Space Upper Case         | FOO BAR          |
 | 
				
			||||||
 | 
					| 点分隔命名                                 | Dot Case                 | foo.bar          |
 | 
				
			||||||
 | 
					| 点分隔 + 小驼峰(驼峰)命名                  | Dot Camel Case           | foo.Bar          |
 | 
				
			||||||
 | 
					| 点分隔 + 大驼峰(帕斯卡)命名                | Dot Pascal Case          | Foo.Bar          |
 | 
				
			||||||
 | 
					| 点分隔 + 全大写命名                        | Dot Upper Case           | FOO.BAR          |
 | 
				
			||||||
| 全小写                                     | Lower Case               | foo_bar / foobar |
 | 
					| 全小写                                     | Lower Case               | foo_bar / foobar |
 | 
				
			||||||
| 全大写                                     | Upper Case               | FOO_BAR / FOOBAR |
 | 
					| 全大写                                     | Upper Case               | FOO_BAR / FOOBAR |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -81,7 +85,7 @@ Or right-click on the selected text -> Convert string to...
 | 
				
			|||||||
#### 关于文本选区...
 | 
					#### 关于文本选区...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- 可以先按住 `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
 | 
				
			||||||
- 可以先按住 `Shift + Alt` 键不放,再按下鼠标左键,使用鼠标滑过需要选中的区块
 | 
					- 可以先按住 `Shift + Alt` 键不放,再按下鼠标左键,使用鼠标滑过需要选中的区块
 | 
				
			||||||
  You can first hold down `Shift + Alt`, then press the left mouse button, and use the mouse to slide over the block that needs to be selected
 | 
					  You can first hold down `Shift + Alt`, then press the left mouse button, and use the mouse to slide over the block that needs to be selected
 | 
				
			||||||
- 可以通过 `Ctrl + D` 快捷键选中光标所在的单词
 | 
					- 可以通过 `Ctrl + D` 快捷键选中光标所在的单词
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,9 +2,9 @@
 | 
				
			|||||||
  // 插件 id 及名称
 | 
					  // 插件 id 及名称
 | 
				
			||||||
  "name": "variable-conversion",
 | 
					  "name": "variable-conversion",
 | 
				
			||||||
  "displayName": "Variable Conversion",
 | 
					  "displayName": "Variable Conversion",
 | 
				
			||||||
  "description": "一个强大的变量名转换插件,支持右键菜单、快捷键、状态栏等多种方式使用,支持小驼峰、大驼峰(帕斯卡)、下划线(蛇形)、中划线(连字符/脊柱式)、空格分隔、全小写、全大写等常用命名方式(及组合)转换。 \nA powerful variable naming conversion extension. You can use it through the editer menu, shortcut keys and bottom bar. Support camel, pascal, snake, kebab(spinal), space, lower, upper case, and more.",
 | 
					  "description": "一个强大的变量名转换插件,支持右键菜单、快捷键、状态栏等多种方式使用,支持小驼峰、大驼峰(帕斯卡)、下划线(蛇形)、中划线(连字符/脊柱式)、空格分隔、点分隔、全小写、全大写等常用命名方式(及组合)转换。 \nA powerful variable naming conversion extension. You can use it through the editer menu, shortcut keys and bottom bar. Support camel, pascal, snake, kebab(spinal), space, dot, lower, upper case, and more.",
 | 
				
			||||||
  // 版本号
 | 
					  // 版本号
 | 
				
			||||||
  "version": "1.0.8.1",
 | 
					  "version": "1.0.10",
 | 
				
			||||||
  // logo
 | 
					  // logo
 | 
				
			||||||
  "icon": "image/logo.png",
 | 
					  "icon": "image/logo.png",
 | 
				
			||||||
  "publisher": "coder-xiaomo",
 | 
					  "publisher": "coder-xiaomo",
 | 
				
			||||||
@@ -146,7 +146,24 @@
 | 
				
			|||||||
        "command": "variable-conversion.toSpaceCamelCase",
 | 
					        "command": "variable-conversion.toSpaceCamelCase",
 | 
				
			||||||
        "title": "空格分隔 + 小驼峰(驼峰)命名 (Space Camel Case) [ foo Bar ]"
 | 
					        "title": "空格分隔 + 小驼峰(驼峰)命名 (Space Camel Case) [ foo Bar ]"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      // group-5-upper-lower
 | 
					      // group-5-dot
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "command": "variable-conversion.toDotCase",
 | 
				
			||||||
 | 
					        "title": "点分隔命名 (Dot Case) [ foo bar ]"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "command": "variable-conversion.toDotUpperCase",
 | 
				
			||||||
 | 
					        "title": "点分隔 + 全大写命名 (Dot Upper Case) [ FOO BAR ]"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "command": "variable-conversion.toDotPascalCase",
 | 
				
			||||||
 | 
					        "title": "点分隔 + 大驼峰(帕斯卡)命名 (Dot Pascal Case) [ Foo Bar ]"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "command": "variable-conversion.toDotCamelCase",
 | 
				
			||||||
 | 
					        "title": "点分隔 + 小驼峰(驼峰)命名 (Dot Camel Case) [ foo Bar ]"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      // group-6-upper-lower
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        "command": "variable-conversion.toLowerCase",
 | 
					        "command": "variable-conversion.toLowerCase",
 | 
				
			||||||
        "title": "全小写 (Lower Case) [ foobar ]"
 | 
					        "title": "全小写 (Lower Case) [ foobar ]"
 | 
				
			||||||
@@ -266,14 +283,31 @@
 | 
				
			|||||||
          "command": "variable-conversion.toSpaceCamelCase",
 | 
					          "command": "variable-conversion.toSpaceCamelCase",
 | 
				
			||||||
          "group": "group-4-space@4"
 | 
					          "group": "group-4-space@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        // group-5-upper-lower
 | 
					        // group-5-dot
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "command": "variable-conversion.toDotCase",
 | 
				
			||||||
 | 
					          "group": "group-5-dot@1"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "command": "variable-conversion.toDotUpperCase",
 | 
				
			||||||
 | 
					          "group": "group-5-dot@2"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "command": "variable-conversion.toDotPascalCase",
 | 
				
			||||||
 | 
					          "group": "group-5-dot@3"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "command": "variable-conversion.toDotCamelCase",
 | 
				
			||||||
 | 
					          "group": "group-5-dot@4"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        // group-6-upper-lower
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          "command": "variable-conversion.toLowerCase",
 | 
					          "command": "variable-conversion.toLowerCase",
 | 
				
			||||||
          "group": "group-5-upper-lower@1"
 | 
					          "group": "group-6-upper-lower@1"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          "command": "variable-conversion.toUpperCase",
 | 
					          "command": "variable-conversion.toUpperCase",
 | 
				
			||||||
          "group": "group-5-upper-lower@2"
 | 
					          "group": "group-6-upper-lower@2"
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        // 隐藏菜单项
 | 
					        // 隐藏菜单项
 | 
				
			||||||
        // {
 | 
					        // {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										36
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								package.json
									
									
									
									
									
								
							@@ -1,8 +1,8 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "variable-conversion",
 | 
					  "name": "variable-conversion",
 | 
				
			||||||
  "displayName": "Variable Conversion",
 | 
					  "displayName": "Variable Conversion",
 | 
				
			||||||
  "description": "一个强大的变量名转换插件,支持右键菜单、快捷键、状态栏等多种方式使用,支持小驼峰、大驼峰(帕斯卡)、下划线(蛇形)、中划线(连字符/脊柱式)、空格分隔、全小写、全大写等常用命名方式(及组合)转换。 \nA powerful variable naming conversion extension. You can use it through the editer menu, shortcut keys and bottom bar. Support camel, pascal, snake, kebab(spinal), space, lower, upper case, and more.",
 | 
					  "description": "一个强大的变量名转换插件,支持右键菜单、快捷键、状态栏等多种方式使用,支持小驼峰、大驼峰(帕斯卡)、下划线(蛇形)、中划线(连字符/脊柱式)、空格分隔、点分隔、全小写、全大写等常用命名方式(及组合)转换。 \nA powerful variable naming conversion extension. You can use it through the editer menu, shortcut keys and bottom bar. Support camel, pascal, snake, kebab(spinal), space, dot, lower, upper case, and more.",
 | 
				
			||||||
  "version": "1.0.9",
 | 
					  "version": "1.0.10",
 | 
				
			||||||
  "icon": "image/logo.png",
 | 
					  "icon": "image/logo.png",
 | 
				
			||||||
  "publisher": "coder-xiaomo",
 | 
					  "publisher": "coder-xiaomo",
 | 
				
			||||||
  "engines": {
 | 
					  "engines": {
 | 
				
			||||||
@@ -115,6 +115,22 @@
 | 
				
			|||||||
        "command": "variable-conversion.toSpaceCamelCase",
 | 
					        "command": "variable-conversion.toSpaceCamelCase",
 | 
				
			||||||
        "title": "空格分隔 + 小驼峰(驼峰)命名 (Space Camel Case) [ foo Bar ]"
 | 
					        "title": "空格分隔 + 小驼峰(驼峰)命名 (Space Camel Case) [ foo Bar ]"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "command": "variable-conversion.toDotCase",
 | 
				
			||||||
 | 
					        "title": "点分隔命名 (Dot Case) [ foo bar ]"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "command": "variable-conversion.toDotUpperCase",
 | 
				
			||||||
 | 
					        "title": "点分隔 + 全大写命名 (Dot Upper Case) [ FOO BAR ]"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "command": "variable-conversion.toDotPascalCase",
 | 
				
			||||||
 | 
					        "title": "点分隔 + 大驼峰(帕斯卡)命名 (Dot Pascal Case) [ Foo Bar ]"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "command": "variable-conversion.toDotCamelCase",
 | 
				
			||||||
 | 
					        "title": "点分隔 + 小驼峰(驼峰)命名 (Dot Camel Case) [ foo Bar ]"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        "command": "variable-conversion.toLowerCase",
 | 
					        "command": "variable-conversion.toLowerCase",
 | 
				
			||||||
        "title": "全小写 (Lower Case) [ foobar ]"
 | 
					        "title": "全小写 (Lower Case) [ foobar ]"
 | 
				
			||||||
@@ -194,6 +210,22 @@
 | 
				
			|||||||
          "command": "variable-conversion.toSpaceCamelCase",
 | 
					          "command": "variable-conversion.toSpaceCamelCase",
 | 
				
			||||||
          "group": "group-4-space@4"
 | 
					          "group": "group-4-space@4"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "command": "variable-conversion.toDotCase",
 | 
				
			||||||
 | 
					          "group": "group-5-dot@1"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "command": "variable-conversion.toDotUpperCase",
 | 
				
			||||||
 | 
					          "group": "group-5-dot@2"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "command": "variable-conversion.toDotPascalCase",
 | 
				
			||||||
 | 
					          "group": "group-5-dot@3"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "command": "variable-conversion.toDotCamelCase",
 | 
				
			||||||
 | 
					          "group": "group-5-dot@4"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          "command": "variable-conversion.toLowerCase",
 | 
					          "command": "variable-conversion.toLowerCase",
 | 
				
			||||||
          "group": "group-5-upper-lower@1"
 | 
					          "group": "group-5-upper-lower@1"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ import { transformMutliLineText, transformText } from './transform';
 | 
				
			|||||||
 * @since 2024-04-04
 | 
					 * @since 2024-04-04
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export function caseConversion(targetCase: SupportCase, str: string, eol: EOL, cutText: Array<TransformTextResult> | undefined = undefined): string {
 | 
					export function caseConversion(targetCase: SupportCase, str: string, eol: EOL, cutText: Array<TransformTextResult> | undefined = undefined): string {
 | 
				
			||||||
    let spaceCharacter: '-' | '_' | ' ' | undefined = undefined;
 | 
					    let spaceCharacter: '-' | '_' | ' ' | '.' | undefined = undefined;
 | 
				
			||||||
    switch (targetCase) {
 | 
					    switch (targetCase) {
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
        case SupportCase.CAMEL_CASE:        // 小驼峰(驼峰)命名
 | 
					        case SupportCase.CAMEL_CASE:        // 小驼峰(驼峰)命名
 | 
				
			||||||
@@ -38,6 +38,12 @@ export function caseConversion(targetCase: SupportCase, str: string, eol: EOL, c
 | 
				
			|||||||
        case SupportCase.SPACE_UPPER_CASE:  // 空格分隔 + 全大写命名
 | 
					        case SupportCase.SPACE_UPPER_CASE:  // 空格分隔 + 全大写命名
 | 
				
			||||||
            spaceCharacter = ' ';
 | 
					            spaceCharacter = ' ';
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					        case SupportCase.DOT_CASE:          // 点分隔命名
 | 
				
			||||||
 | 
					        case SupportCase.DOT_CAMEL_CASE:    // 点分隔 + 小驼峰(驼峰)命名
 | 
				
			||||||
 | 
					        case SupportCase.DOT_PASCAL_CASE:   // 点分隔 + 大驼峰(帕斯卡)命名
 | 
				
			||||||
 | 
					        case SupportCase.DOT_UPPER_CASE:    // 点分隔 + 全大写命名
 | 
				
			||||||
 | 
					            spaceCharacter = '.';
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
        case SupportCase.LOWER_CASE:        // 全小写
 | 
					        case SupportCase.LOWER_CASE:        // 全小写
 | 
				
			||||||
            return str.toLowerCase();
 | 
					            return str.toLowerCase();
 | 
				
			||||||
        case SupportCase.UPPER_CASE:        // 全大写
 | 
					        case SupportCase.UPPER_CASE:        // 全大写
 | 
				
			||||||
@@ -82,6 +88,7 @@ export function caseConversion(targetCase: SupportCase, str: string, eol: EOL, c
 | 
				
			|||||||
                case SupportCase.SNAKE_CAMEL_CASE:  // 下划线(蛇形) + 小驼峰(驼峰)命名
 | 
					                case SupportCase.SNAKE_CAMEL_CASE:  // 下划线(蛇形) + 小驼峰(驼峰)命名
 | 
				
			||||||
                case SupportCase.KEBAB_CAMEL_CASE:  // 中划线(连字符/脊柱式) + 小驼峰(驼峰)命名
 | 
					                case SupportCase.KEBAB_CAMEL_CASE:  // 中划线(连字符/脊柱式) + 小驼峰(驼峰)命名
 | 
				
			||||||
                case SupportCase.SPACE_CAMEL_CASE:  // 空格分隔 + 小驼峰(驼峰)命名
 | 
					                case SupportCase.SPACE_CAMEL_CASE:  // 空格分隔 + 小驼峰(驼峰)命名
 | 
				
			||||||
 | 
					                case SupportCase.DOT_CAMEL_CASE:    // 点分隔 + 小驼峰(驼峰)命名
 | 
				
			||||||
                    if (isFirstWord) {
 | 
					                    if (isFirstWord) {
 | 
				
			||||||
                        transformedWords.push(word);
 | 
					                        transformedWords.push(word);
 | 
				
			||||||
                        if (isCurrentWordNormal) {
 | 
					                        if (isCurrentWordNormal) {
 | 
				
			||||||
@@ -95,16 +102,19 @@ export function caseConversion(targetCase: SupportCase, str: string, eol: EOL, c
 | 
				
			|||||||
                case SupportCase.SNAKE_PASCAL_CASE: // 下划线(蛇形) + 大驼峰(帕斯卡)命名
 | 
					                case SupportCase.SNAKE_PASCAL_CASE: // 下划线(蛇形) + 大驼峰(帕斯卡)命名
 | 
				
			||||||
                case SupportCase.KEBAB_PASCAL_CASE: // 中划线(连字符/脊柱式) + 大驼峰(帕斯卡)命名
 | 
					                case SupportCase.KEBAB_PASCAL_CASE: // 中划线(连字符/脊柱式) + 大驼峰(帕斯卡)命名
 | 
				
			||||||
                case SupportCase.SPACE_PASCAL_CASE: // 空格分隔 + 大驼峰(帕斯卡)命名
 | 
					                case SupportCase.SPACE_PASCAL_CASE: // 空格分隔 + 大驼峰(帕斯卡)命名
 | 
				
			||||||
 | 
					                case SupportCase.DOT_PASCAL_CASE:   // 点分隔 + 大驼峰(帕斯卡)命名
 | 
				
			||||||
                    transformedWords.push(pascalCaseWord);
 | 
					                    transformedWords.push(pascalCaseWord);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case SupportCase.SNAKE_CASE:        // 下划线(蛇形)命名
 | 
					                case SupportCase.SNAKE_CASE:        // 下划线(蛇形)命名
 | 
				
			||||||
                case SupportCase.KEBAB_CASE:        // 中划线(连字符/脊柱式)命名
 | 
					                case SupportCase.KEBAB_CASE:        // 中划线(连字符/脊柱式)命名
 | 
				
			||||||
                case SupportCase.SPACE_CASE:        // 空格分隔命名
 | 
					                case SupportCase.SPACE_CASE:        // 空格分隔命名
 | 
				
			||||||
 | 
					                case SupportCase.DOT_CASE:          // 点分隔命名x
 | 
				
			||||||
                    transformedWords.push(word);
 | 
					                    transformedWords.push(word);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case SupportCase.SNAKE_UPPER_CASE:  // 下划线(蛇形) + 全大写命名
 | 
					                case SupportCase.SNAKE_UPPER_CASE:  // 下划线(蛇形) + 全大写命名
 | 
				
			||||||
                case SupportCase.KEBAB_UPPER_CASE:  // 中划线(连字符/脊柱式) + 全大写命名
 | 
					                case SupportCase.KEBAB_UPPER_CASE:  // 中划线(连字符/脊柱式) + 全大写命名
 | 
				
			||||||
                case SupportCase.SPACE_UPPER_CASE:  // 空格分隔 + 全大写命名
 | 
					                case SupportCase.SPACE_UPPER_CASE:  // 空格分隔 + 全大写命名
 | 
				
			||||||
 | 
					                case SupportCase.DOT_UPPER_CASE:    // 点分隔 + 全大写命名
 | 
				
			||||||
                    transformedWords.push(word.toUpperCase());
 | 
					                    transformedWords.push(word.toUpperCase());
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                default:
 | 
					                default:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -54,6 +54,9 @@ export function transformText(input: string): TransformTextResult {
 | 
				
			|||||||
        // 替换连字符为 '|' (如有多个则合并)
 | 
					        // 替换连字符为 '|' (如有多个则合并)
 | 
				
			||||||
        match = match.replace(/[-_ ]+/g, '|');
 | 
					        match = match.replace(/[-_ ]+/g, '|');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // // 替换.时跳过连续点(例如Happy.. angry)
 | 
				
			||||||
 | 
					        // match = match.replace(/([^.])([.])([^.])/g, '$1|$3');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 拆分连续的小写字母和大写字母为多个单词
 | 
					        // 拆分连续的小写字母和大写字母为多个单词
 | 
				
			||||||
        match = match.replace(/([a-z])([A-Z])/g, '$1|$2');
 | 
					        match = match.replace(/([a-z])([A-Z])/g, '$1|$2');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,29 +49,34 @@ suite('Extension Test: run test case', () => {
 | 
				
			|||||||
					}
 | 
										}
 | 
				
			||||||
					// 验证转换
 | 
										// 验证转换
 | 
				
			||||||
					for (let eol of eolList) {
 | 
										for (let eol of eolList) {
 | 
				
			||||||
						assert.strictEqual(testCase.output.camelCase, caseConversion(SupportCase.CAMEL_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.camelCase, caseConversion(SupportCase.CAMEL_CASE, input, eol), 'camel case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.pascalCase, caseConversion(SupportCase.PASCAL_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.pascalCase, caseConversion(SupportCase.PASCAL_CASE, input, eol), 'pascal case test failed.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						assert.strictEqual(testCase.output.snakeCase, caseConversion(SupportCase.SNAKE_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.snakeCase, caseConversion(SupportCase.SNAKE_CASE, input, eol), 'snake case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.snakeCamelCase, caseConversion(SupportCase.SNAKE_CAMEL_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.snakeCamelCase, caseConversion(SupportCase.SNAKE_CAMEL_CASE, input, eol), 'snake camel case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.snakePascalCase, caseConversion(SupportCase.SNAKE_PASCAL_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.snakePascalCase, caseConversion(SupportCase.SNAKE_PASCAL_CASE, input, eol), 'snake pascal case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.snakeUpperCase, caseConversion(SupportCase.SNAKE_UPPER_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.snakeUpperCase, caseConversion(SupportCase.SNAKE_UPPER_CASE, input, eol), 'snake upper case test failed.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						assert.strictEqual(testCase.output.kebabCase, caseConversion(SupportCase.KEBAB_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.kebabCase, caseConversion(SupportCase.KEBAB_CASE, input, eol), 'kebab case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.kebabCamelCase, caseConversion(SupportCase.KEBAB_CAMEL_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.kebabCamelCase, caseConversion(SupportCase.KEBAB_CAMEL_CASE, input, eol), 'kebab camel case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.kebabPascalCase, caseConversion(SupportCase.KEBAB_PASCAL_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.kebabPascalCase, caseConversion(SupportCase.KEBAB_PASCAL_CASE, input, eol), 'kebab pascal case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.kebabUpperCase, caseConversion(SupportCase.KEBAB_UPPER_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.kebabUpperCase, caseConversion(SupportCase.KEBAB_UPPER_CASE, input, eol), 'kebab upper case test failed.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						assert.strictEqual(testCase.output.spaceCase, caseConversion(SupportCase.SPACE_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.spaceCase, caseConversion(SupportCase.SPACE_CASE, input, eol), 'space case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.spaceCamelCase, caseConversion(SupportCase.SPACE_CAMEL_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.spaceCamelCase, caseConversion(SupportCase.SPACE_CAMEL_CASE, input, eol), 'space camel case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.spacePascalCase, caseConversion(SupportCase.SPACE_PASCAL_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.spacePascalCase, caseConversion(SupportCase.SPACE_PASCAL_CASE, input, eol), 'space pascal case test failed.');
 | 
				
			||||||
						assert.strictEqual(testCase.output.spaceUpperCase, caseConversion(SupportCase.SPACE_UPPER_CASE, input, eol));
 | 
											assert.strictEqual(testCase.output.spaceUpperCase, caseConversion(SupportCase.SPACE_UPPER_CASE, input, eol), 'space upper case test failed.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											assert.strictEqual(testCase.output.dotCase, caseConversion(SupportCase.DOT_CASE, input, eol), 'dot case test failed.');
 | 
				
			||||||
 | 
											assert.strictEqual(testCase.output.dotCamelCase, caseConversion(SupportCase.DOT_CAMEL_CASE, input, eol), 'dot camel case test failed.');
 | 
				
			||||||
 | 
											assert.strictEqual(testCase.output.dotPascalCase, caseConversion(SupportCase.DOT_PASCAL_CASE, input, eol), 'dot pascal case test failed.');
 | 
				
			||||||
 | 
											assert.strictEqual(testCase.output.dotUpperCase, caseConversion(SupportCase.DOT_UPPER_CASE, input, eol), 'dot upper case test failed.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						if (testCase.output.lowerCase !== undefined) {
 | 
											if (testCase.output.lowerCase !== undefined) {
 | 
				
			||||||
							assert.strictEqual(testCase.output.lowerCase, caseConversion(SupportCase.LOWER_CASE, input, eol));
 | 
												assert.strictEqual(testCase.output.lowerCase, caseConversion(SupportCase.LOWER_CASE, input, eol), 'lower case test failed.');
 | 
				
			||||||
						}
 | 
											}
 | 
				
			||||||
						if (testCase.output.upperCase !== undefined) {
 | 
											if (testCase.output.upperCase !== undefined) {
 | 
				
			||||||
							assert.strictEqual(testCase.output.upperCase, caseConversion(SupportCase.UPPER_CASE, input, eol));
 | 
												assert.strictEqual(testCase.output.upperCase, caseConversion(SupportCase.UPPER_CASE, input, eol), 'upper case test failed.');
 | 
				
			||||||
						}
 | 
											}
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,6 +31,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: '',
 | 
					                    spaceCamelCase: '',
 | 
				
			||||||
                    spacePascalCase: '',
 | 
					                    spacePascalCase: '',
 | 
				
			||||||
                    spaceUpperCase: '',
 | 
					                    spaceUpperCase: '',
 | 
				
			||||||
 | 
					                    dotCase: '',
 | 
				
			||||||
 | 
					                    dotCamelCase: '',
 | 
				
			||||||
 | 
					                    dotPascalCase: '',
 | 
				
			||||||
 | 
					                    dotUpperCase: '',
 | 
				
			||||||
                    lowerCase: '',
 | 
					                    lowerCase: '',
 | 
				
			||||||
                    upperCase: '',
 | 
					                    upperCase: '',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -57,6 +61,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: '  ',
 | 
					                    spaceCamelCase: '  ',
 | 
				
			||||||
                    spacePascalCase: '  ',
 | 
					                    spacePascalCase: '  ',
 | 
				
			||||||
                    spaceUpperCase: '  ',
 | 
					                    spaceUpperCase: '  ',
 | 
				
			||||||
 | 
					                    dotCase: '  ',
 | 
				
			||||||
 | 
					                    dotCamelCase: '  ',
 | 
				
			||||||
 | 
					                    dotPascalCase: '  ',
 | 
				
			||||||
 | 
					                    dotUpperCase: '  ',
 | 
				
			||||||
                    lowerCase: '  ',
 | 
					                    lowerCase: '  ',
 | 
				
			||||||
                    upperCase: '  ',
 | 
					                    upperCase: '  ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -84,6 +92,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: ' \r\n ',
 | 
					                    spaceCamelCase: ' \r\n ',
 | 
				
			||||||
                    spacePascalCase: ' \r\n ',
 | 
					                    spacePascalCase: ' \r\n ',
 | 
				
			||||||
                    spaceUpperCase: ' \r\n ',
 | 
					                    spaceUpperCase: ' \r\n ',
 | 
				
			||||||
 | 
					                    dotCase: ' \r\n ',
 | 
				
			||||||
 | 
					                    dotCamelCase: ' \r\n ',
 | 
				
			||||||
 | 
					                    dotPascalCase: ' \r\n ',
 | 
				
			||||||
 | 
					                    dotUpperCase: ' \r\n ',
 | 
				
			||||||
                    lowerCase: ' \r\n ',
 | 
					                    lowerCase: ' \r\n ',
 | 
				
			||||||
                    upperCase: ' \r\n ',
 | 
					                    upperCase: ' \r\n ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -111,6 +123,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: ' x \r\ny ',
 | 
					                    spaceCamelCase: ' x \r\ny ',
 | 
				
			||||||
                    spacePascalCase: ' X \r\nY ',
 | 
					                    spacePascalCase: ' X \r\nY ',
 | 
				
			||||||
                    spaceUpperCase: ' X \r\nY ',
 | 
					                    spaceUpperCase: ' X \r\nY ',
 | 
				
			||||||
 | 
					                    dotCase: ' x \r\ny ',
 | 
				
			||||||
 | 
					                    dotCamelCase: ' x \r\ny ',
 | 
				
			||||||
 | 
					                    dotPascalCase: ' X \r\nY ',
 | 
				
			||||||
 | 
					                    dotUpperCase: ' X \r\nY ',
 | 
				
			||||||
                    lowerCase: ' x \r\ny ',
 | 
					                    lowerCase: ' x \r\ny ',
 | 
				
			||||||
                    upperCase: ' X \r\nY ',
 | 
					                    upperCase: ' X \r\nY ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -138,6 +154,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: ' \n ',
 | 
					                    spaceCamelCase: ' \n ',
 | 
				
			||||||
                    spacePascalCase: ' \n ',
 | 
					                    spacePascalCase: ' \n ',
 | 
				
			||||||
                    spaceUpperCase: ' \n ',
 | 
					                    spaceUpperCase: ' \n ',
 | 
				
			||||||
 | 
					                    dotCase: ' \n ',
 | 
				
			||||||
 | 
					                    dotCamelCase: ' \n ',
 | 
				
			||||||
 | 
					                    dotPascalCase: ' \n ',
 | 
				
			||||||
 | 
					                    dotUpperCase: ' \n ',
 | 
				
			||||||
                    lowerCase: ' \n ',
 | 
					                    lowerCase: ' \n ',
 | 
				
			||||||
                    upperCase: ' \n ',
 | 
					                    upperCase: ' \n ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -165,6 +185,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: ' a\nb ',
 | 
					                    spaceCamelCase: ' a\nb ',
 | 
				
			||||||
                    spacePascalCase: ' A\nB ',
 | 
					                    spacePascalCase: ' A\nB ',
 | 
				
			||||||
                    spaceUpperCase: ' A\nB ',
 | 
					                    spaceUpperCase: ' A\nB ',
 | 
				
			||||||
 | 
					                    dotCase: ' a\nb ',
 | 
				
			||||||
 | 
					                    dotCamelCase: ' a\nb ',
 | 
				
			||||||
 | 
					                    dotPascalCase: ' A\nB ',
 | 
				
			||||||
 | 
					                    dotUpperCase: ' A\nB ',
 | 
				
			||||||
                    lowerCase: ' a\nb ',
 | 
					                    lowerCase: ' a\nb ',
 | 
				
			||||||
                    upperCase: ' A\nB ',
 | 
					                    upperCase: ' A\nB ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -222,6 +246,18 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceUpperCase:
 | 
					                    spaceUpperCase:
 | 
				
			||||||
                        "CHINA'S FACTORY ACTIVITY EXPANDED IN MARCH AFTER FIVE CONSECUTIVE MONTHS OF CONTRACTION,AN OFFICIAL SURVEY REVEALED ON SUNDAY,ADDING TO A RUN OF INDICATORS THAT SUGGEST THE STABILIZATION OF THE WORLD'S SECOND LARGEST ECONOMY."
 | 
					                        "CHINA'S FACTORY ACTIVITY EXPANDED IN MARCH AFTER FIVE CONSECUTIVE MONTHS OF CONTRACTION,AN OFFICIAL SURVEY REVEALED ON SUNDAY,ADDING TO A RUN OF INDICATORS THAT SUGGEST THE STABILIZATION OF THE WORLD'S SECOND LARGEST ECONOMY."
 | 
				
			||||||
                    ,
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotCase:
 | 
				
			||||||
 | 
					                        "china's.factory.activity.expanded.in.march.after.five.consecutive.months.of.contraction,an.official.survey.revealed.on.sunday,adding.to.a.run.of.indicators.that.suggest.the.stabilization.of.the.world's.second.largest.economy."
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotCamelCase:
 | 
				
			||||||
 | 
					                        "china'S.Factory.Activity.Expanded.In.March.After.Five.Consecutive.Months.Of.Contraction,An.Official.Survey.Revealed.On.Sunday,Adding.To.A.Run.Of.Indicators.That.Suggest.The.Stabilization.Of.The.World'S.Second.Largest.Economy."
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotPascalCase:
 | 
				
			||||||
 | 
					                        "China'S.Factory.Activity.Expanded.In.March.After.Five.Consecutive.Months.Of.Contraction,An.Official.Survey.Revealed.On.Sunday,Adding.To.A.Run.Of.Indicators.That.Suggest.The.Stabilization.Of.The.World'S.Second.Largest.Economy."
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotUpperCase:
 | 
				
			||||||
 | 
					                        "CHINA'S.FACTORY.ACTIVITY.EXPANDED.IN.MARCH.AFTER.FIVE.CONSECUTIVE.MONTHS.OF.CONTRACTION,AN.OFFICIAL.SURVEY.REVEALED.ON.SUNDAY,ADDING.TO.A.RUN.OF.INDICATORS.THAT.SUGGEST.THE.STABILIZATION.OF.THE.WORLD'S.SECOND.LARGEST.ECONOMY."
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
                    lowerCase:
 | 
					                    lowerCase:
 | 
				
			||||||
                        "china's factory activity expanded in march after five consecutive months of contraction, an official survey revealed on sunday, adding to a run of indicators that suggest the stabilization of the world's second-largest economy."
 | 
					                        "china's factory activity expanded in march after five consecutive months of contraction, an official survey revealed on sunday, adding to a run of indicators that suggest the stabilization of the world's second-largest economy."
 | 
				
			||||||
                    ,
 | 
					                    ,
 | 
				
			||||||
@@ -253,6 +289,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'entity2Map',
 | 
					                    spaceCamelCase: 'entity2Map',
 | 
				
			||||||
                    spacePascalCase: 'Entity2Map',
 | 
					                    spacePascalCase: 'Entity2Map',
 | 
				
			||||||
                    spaceUpperCase: 'ENTITY2MAP',
 | 
					                    spaceUpperCase: 'ENTITY2MAP',
 | 
				
			||||||
 | 
					                    dotCase: 'entity2map',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'entity2Map',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Entity2Map',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'ENTITY2MAP',
 | 
				
			||||||
                    lowerCase: 'entity2map',
 | 
					                    lowerCase: 'entity2map',
 | 
				
			||||||
                    upperCase: 'ENTITY2MAP',
 | 
					                    upperCase: 'ENTITY2MAP',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -283,6 +323,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'how Do You\bDo?\n                    how Do You\tDo!',
 | 
					                    spaceCamelCase: 'how Do You\bDo?\n                    how Do You\tDo!',
 | 
				
			||||||
                    spacePascalCase: 'How Do You\bDo?\n                    How Do You\tDo!',
 | 
					                    spacePascalCase: 'How Do You\bDo?\n                    How Do You\tDo!',
 | 
				
			||||||
                    spaceUpperCase: 'HOW DO YOU\bDO?\n                    HOW DO YOU\tDO!',
 | 
					                    spaceUpperCase: 'HOW DO YOU\bDO?\n                    HOW DO YOU\tDO!',
 | 
				
			||||||
 | 
					                    dotCase: 'how.do.you\bdo?\n                    how.do.you\tdo!',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'how.Do.You\bDo?\n                    how.Do.You\tDo!',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'How.Do.You\bDo?\n                    How.Do.You\tDo!',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'HOW.DO.YOU\bDO?\n                    HOW.DO.YOU\tDO!',
 | 
				
			||||||
                    lowerCase: 'how do you\bdo?\n                    how do you\tdo!',
 | 
					                    lowerCase: 'how do you\bdo?\n                    how do you\tdo!',
 | 
				
			||||||
                    upperCase: 'HOW DO YOU\bDO?\n                    HOW DO YOU\tDO!',
 | 
					                    upperCase: 'HOW DO YOU\bDO?\n                    HOW DO YOU\tDO!',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -312,6 +356,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: '今天是星期日',
 | 
					                    spaceCamelCase: '今天是星期日',
 | 
				
			||||||
                    spacePascalCase: '今天是星期日',
 | 
					                    spacePascalCase: '今天是星期日',
 | 
				
			||||||
                    spaceUpperCase: '今天是星期日',
 | 
					                    spaceUpperCase: '今天是星期日',
 | 
				
			||||||
 | 
					                    dotCase: '今天是星期日',
 | 
				
			||||||
 | 
					                    dotCamelCase: '今天是星期日',
 | 
				
			||||||
 | 
					                    dotPascalCase: '今天是星期日',
 | 
				
			||||||
 | 
					                    dotUpperCase: '今天是星期日',
 | 
				
			||||||
                    lowerCase: '今天是星期日',
 | 
					                    lowerCase: '今天是星期日',
 | 
				
			||||||
                    upperCase: '今天是星期日',
 | 
					                    upperCase: '今天是星期日',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -340,6 +388,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: '担心你d Af=Coffee—爸妈不在家— ',
 | 
					                    spaceCamelCase: '担心你d Af=Coffee—爸妈不在家— ',
 | 
				
			||||||
                    spacePascalCase: '担心你D Af=Coffee—爸妈不在家— ',
 | 
					                    spacePascalCase: '担心你D Af=Coffee—爸妈不在家— ',
 | 
				
			||||||
                    spaceUpperCase: '担心你D AF=COFFEE—爸妈不在家— ',
 | 
					                    spaceUpperCase: '担心你D AF=COFFEE—爸妈不在家— ',
 | 
				
			||||||
 | 
					                    dotCase: '担心你d.af=coffee—爸妈不在家— ',
 | 
				
			||||||
 | 
					                    dotCamelCase: '担心你d.Af=Coffee—爸妈不在家— ',
 | 
				
			||||||
 | 
					                    dotPascalCase: '担心你D.Af=Coffee—爸妈不在家— ',
 | 
				
			||||||
 | 
					                    dotUpperCase: '担心你D.AF=COFFEE—爸妈不在家— ',
 | 
				
			||||||
                    lowerCase: '--担心你daf_=coffee—爸妈不在家_— ',
 | 
					                    lowerCase: '--担心你daf_=coffee—爸妈不在家_— ',
 | 
				
			||||||
                    upperCase: '--担心你DAF_=COFFEE—爸妈不在家_— ',
 | 
					                    upperCase: '--担心你DAF_=COFFEE—爸妈不在家_— ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -347,29 +399,33 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                title: 'Special character with emoji input',
 | 
					                title: 'Special character with emoji input',
 | 
				
			||||||
                input:
 | 
					                input:
 | 
				
			||||||
                    '🥰 a-cup/_of Coffee🍻,-_please!. '
 | 
					                    '🥰 a-cup/_of Coffee🍻,-_please.thanks!. '
 | 
				
			||||||
                ,
 | 
					                ,
 | 
				
			||||||
                eol: [LF, CRLF],
 | 
					                eol: [LF, CRLF],
 | 
				
			||||||
                transformText: [
 | 
					                transformText: [
 | 
				
			||||||
                    '🥰|a|cup|/|of|coffee|🍻,|please|!. ',
 | 
					                    '🥰|a|cup|/|of|coffee|🍻,|please|.|thanks|!. ',
 | 
				
			||||||
                ],
 | 
					                ],
 | 
				
			||||||
                output: {
 | 
					                output: {
 | 
				
			||||||
                    camelCase: '🥰aCup/OfCoffee🍻,Please!. ',
 | 
					                    camelCase: '🥰aCup/OfCoffee🍻,Please.Thanks!. ',
 | 
				
			||||||
                    pascalCase: '🥰ACup/OfCoffee🍻,Please!. ',
 | 
					                    pascalCase: '🥰ACup/OfCoffee🍻,Please.Thanks!. ',
 | 
				
			||||||
                    snakeCase: '🥰a_cup/of_coffee🍻,please!. ',
 | 
					                    snakeCase: '🥰a_cup/of_coffee🍻,please.thanks!. ',
 | 
				
			||||||
                    snakeCamelCase: '🥰a_Cup/Of_Coffee🍻,Please!. ',
 | 
					                    snakeCamelCase: '🥰a_Cup/Of_Coffee🍻,Please.Thanks!. ',
 | 
				
			||||||
                    snakePascalCase: '🥰A_Cup/Of_Coffee🍻,Please!. ',
 | 
					                    snakePascalCase: '🥰A_Cup/Of_Coffee🍻,Please.Thanks!. ',
 | 
				
			||||||
                    snakeUpperCase: '🥰A_CUP/OF_COFFEE🍻,PLEASE!. ',
 | 
					                    snakeUpperCase: '🥰A_CUP/OF_COFFEE🍻,PLEASE.THANKS!. ',
 | 
				
			||||||
                    kebabCase: '🥰a-cup/of-coffee🍻,please!. ',
 | 
					                    kebabCase: '🥰a-cup/of-coffee🍻,please.thanks!. ',
 | 
				
			||||||
                    kebabCamelCase: '🥰a-Cup/Of-Coffee🍻,Please!. ',
 | 
					                    kebabCamelCase: '🥰a-Cup/Of-Coffee🍻,Please.Thanks!. ',
 | 
				
			||||||
                    kebabPascalCase: '🥰A-Cup/Of-Coffee🍻,Please!. ',
 | 
					                    kebabPascalCase: '🥰A-Cup/Of-Coffee🍻,Please.Thanks!. ',
 | 
				
			||||||
                    kebabUpperCase: '🥰A-CUP/OF-COFFEE🍻,PLEASE!. ',
 | 
					                    kebabUpperCase: '🥰A-CUP/OF-COFFEE🍻,PLEASE.THANKS!. ',
 | 
				
			||||||
                    spaceCase: '🥰a cup/of coffee🍻,please!. ',
 | 
					                    spaceCase: '🥰a cup/of coffee🍻,please.thanks!. ',
 | 
				
			||||||
                    spaceCamelCase: '🥰a Cup/Of Coffee🍻,Please!. ',
 | 
					                    spaceCamelCase: '🥰a Cup/Of Coffee🍻,Please.Thanks!. ',
 | 
				
			||||||
                    spacePascalCase: '🥰A Cup/Of Coffee🍻,Please!. ',
 | 
					                    spacePascalCase: '🥰A Cup/Of Coffee🍻,Please.Thanks!. ',
 | 
				
			||||||
                    spaceUpperCase: '🥰A CUP/OF COFFEE🍻,PLEASE!. ',
 | 
					                    spaceUpperCase: '🥰A CUP/OF COFFEE🍻,PLEASE.THANKS!. ',
 | 
				
			||||||
                    lowerCase: '🥰 a-cup/_of coffee🍻,-_please!. ',
 | 
					                    dotCase: '🥰a.cup/of.coffee🍻,please.thanks!. ',
 | 
				
			||||||
                    upperCase: '🥰 A-CUP/_OF COFFEE🍻,-_PLEASE!. ',
 | 
					                    dotCamelCase: '🥰a.Cup/Of.Coffee🍻,Please.Thanks!. ',
 | 
				
			||||||
 | 
					                    dotPascalCase: '🥰A.Cup/Of.Coffee🍻,Please.Thanks!. ',
 | 
				
			||||||
 | 
					                    dotUpperCase: '🥰A.CUP/OF.COFFEE🍻,PLEASE.THANKS!. ',
 | 
				
			||||||
 | 
					                    lowerCase: '🥰 a-cup/_of coffee🍻,-_please.thanks!. ',
 | 
				
			||||||
 | 
					                    upperCase: '🥰 A-CUP/_OF COFFEE🍻,-_PLEASE.THANKS!. ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -396,6 +452,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'take A Rest😊Ha P Py,😢Tri Ste,Enfadado,驚きました,❤️,笑,😎C Ool,😳Embarrassed',
 | 
					                    spaceCamelCase: 'take A Rest😊Ha P Py,😢Tri Ste,Enfadado,驚きました,❤️,笑,😎C Ool,😳Embarrassed',
 | 
				
			||||||
                    spacePascalCase: 'Take A Rest😊Ha P Py,😢Tri Ste,Enfadado,驚きました,❤️,笑,😎C Ool,😳Embarrassed',
 | 
					                    spacePascalCase: 'Take A Rest😊Ha P Py,😢Tri Ste,Enfadado,驚きました,❤️,笑,😎C Ool,😳Embarrassed',
 | 
				
			||||||
                    spaceUpperCase: 'TAKE A REST😊HA P PY,😢TRI STE,ENFADADO,驚きました,❤️,笑,😎C OOL,😳EMBARRASSED',
 | 
					                    spaceUpperCase: 'TAKE A REST😊HA P PY,😢TRI STE,ENFADADO,驚きました,❤️,笑,😎C OOL,😳EMBARRASSED',
 | 
				
			||||||
 | 
					                    dotCase: 'take.a.rest😊ha.p.py,😢tri.ste,enfadado,驚きました,❤️,笑,😎c.ool,😳embarrassed',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'take.A.Rest😊Ha.P.Py,😢Tri.Ste,Enfadado,驚きました,❤️,笑,😎C.Ool,😳Embarrassed',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Take.A.Rest😊Ha.P.Py,😢Tri.Ste,Enfadado,驚きました,❤️,笑,😎C.Ool,😳Embarrassed',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'TAKE.A.REST😊HA.P.PY,😢TRI.STE,ENFADADO,驚きました,❤️,笑,😎C.OOL,😳EMBARRASSED',
 | 
				
			||||||
                    lowerCase: 'takearest😊happy,😢triste,enfadado, 驚きました,❤️, 笑, 😎cool, 😳-embarrassed',
 | 
					                    lowerCase: 'takearest😊happy,😢triste,enfadado, 驚きました,❤️, 笑, 😎cool, 😳-embarrassed',
 | 
				
			||||||
                    upperCase: 'TAKEAREST😊HAPPY,😢TRISTE,ENFADADO, 驚きました,❤️, 笑, 😎COOL, 😳-EMBARRASSED',
 | 
					                    upperCase: 'TAKEAREST😊HAPPY,😢TRISTE,ENFADADO, 驚きました,❤️, 笑, 😎COOL, 😳-EMBARRASSED',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -424,6 +484,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: '    n H D As+90Usz&* ',
 | 
					                    spaceCamelCase: '    n H D As+90Usz&* ',
 | 
				
			||||||
                    spacePascalCase: '    N H D As+90Usz&* ',
 | 
					                    spacePascalCase: '    N H D As+90Usz&* ',
 | 
				
			||||||
                    spaceUpperCase: '    N H D AS+90USZ&* ',
 | 
					                    spaceUpperCase: '    N H D AS+90USZ&* ',
 | 
				
			||||||
 | 
					                    dotCase: '    n.h.d.as+90usz&* ',
 | 
				
			||||||
 | 
					                    dotCamelCase: '    n.H.D.As+90Usz&* ',
 | 
				
			||||||
 | 
					                    dotPascalCase: '    N.H.D.As+90Usz&* ',
 | 
				
			||||||
 | 
					                    dotUpperCase: '    N.H.D.AS+90USZ&* ',
 | 
				
			||||||
                    lowerCase: '    nhdas--+90-usz&* ',
 | 
					                    lowerCase: '    nhdas--+90-usz&* ',
 | 
				
			||||||
                    upperCase: '    NHDAS--+90-USZ&* ',
 | 
					                    upperCase: '    NHDAS--+90-USZ&* ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -452,6 +516,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'fsdi Sdacsaf+Desd',
 | 
					                    spaceCamelCase: 'fsdi Sdacsaf+Desd',
 | 
				
			||||||
                    spacePascalCase: 'Fsdi Sdacsaf+Desd',
 | 
					                    spacePascalCase: 'Fsdi Sdacsaf+Desd',
 | 
				
			||||||
                    spaceUpperCase: 'FSDI SDACSAF+DESD',
 | 
					                    spaceUpperCase: 'FSDI SDACSAF+DESD',
 | 
				
			||||||
 | 
					                    dotCase: 'fsdi.sdacsaf+desd',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'fsdi.Sdacsaf+Desd',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Fsdi.Sdacsaf+Desd',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'FSDI.SDACSAF+DESD',
 | 
				
			||||||
                    lowerCase: 'fsdi_sdacsaf+desd',
 | 
					                    lowerCase: 'fsdi_sdacsaf+desd',
 | 
				
			||||||
                    upperCase: 'FSDI_SDACSAF+DESD',
 | 
					                    upperCase: 'FSDI_SDACSAF+DESD',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -490,6 +558,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'foo Bar',
 | 
					                    spaceCamelCase: 'foo Bar',
 | 
				
			||||||
                    spacePascalCase: 'Foo Bar',
 | 
					                    spacePascalCase: 'Foo Bar',
 | 
				
			||||||
                    spaceUpperCase: 'FOO BAR',
 | 
					                    spaceUpperCase: 'FOO BAR',
 | 
				
			||||||
 | 
					                    dotCase: 'foo.bar',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'foo.Bar',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Foo.Bar',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'FOO.BAR',
 | 
				
			||||||
                    // lowerCase: 'foo--bar',
 | 
					                    // lowerCase: 'foo--bar',
 | 
				
			||||||
                    // upperCase: 'FOO--BAR',
 | 
					                    // upperCase: 'FOO--BAR',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -523,6 +595,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'test Case',
 | 
					                    spaceCamelCase: 'test Case',
 | 
				
			||||||
                    spacePascalCase: 'Test Case',
 | 
					                    spacePascalCase: 'Test Case',
 | 
				
			||||||
                    spaceUpperCase: 'TEST CASE',
 | 
					                    spaceUpperCase: 'TEST CASE',
 | 
				
			||||||
 | 
					                    dotCase: 'test.case',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'test.Case',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Test.Case',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'TEST.CASE',
 | 
				
			||||||
                    // lowerCase: 'test case',
 | 
					                    // lowerCase: 'test case',
 | 
				
			||||||
                    // upperCase: 'TEST CASE',
 | 
					                    // upperCase: 'TEST CASE',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -553,6 +629,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'apple',
 | 
					                    spaceCamelCase: 'apple',
 | 
				
			||||||
                    spacePascalCase: 'Apple',
 | 
					                    spacePascalCase: 'Apple',
 | 
				
			||||||
                    spaceUpperCase: 'APPLE',
 | 
					                    spaceUpperCase: 'APPLE',
 | 
				
			||||||
 | 
					                    dotCase: 'apple',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'apple',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Apple',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'APPLE',
 | 
				
			||||||
                    lowerCase: 'apple',
 | 
					                    lowerCase: 'apple',
 | 
				
			||||||
                    upperCase: 'APPLE',
 | 
					                    upperCase: 'APPLE',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -581,6 +661,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'pine Apple',
 | 
					                    spaceCamelCase: 'pine Apple',
 | 
				
			||||||
                    spacePascalCase: 'Pine Apple',
 | 
					                    spacePascalCase: 'Pine Apple',
 | 
				
			||||||
                    spaceUpperCase: 'PINE APPLE',
 | 
					                    spaceUpperCase: 'PINE APPLE',
 | 
				
			||||||
 | 
					                    dotCase: 'pine.apple',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'pine.Apple',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Pine.Apple',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'PINE.APPLE',
 | 
				
			||||||
                    lowerCase: 'pineapple',
 | 
					                    lowerCase: 'pineapple',
 | 
				
			||||||
                    upperCase: 'PINEAPPLE',
 | 
					                    upperCase: 'PINEAPPLE',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -618,10 +702,84 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'have A Nice Day!',
 | 
					                    spaceCamelCase: 'have A Nice Day!',
 | 
				
			||||||
                    spacePascalCase: 'Have A Nice Day!',
 | 
					                    spacePascalCase: 'Have A Nice Day!',
 | 
				
			||||||
                    spaceUpperCase: 'HAVE A NICE DAY!',
 | 
					                    spaceUpperCase: 'HAVE A NICE DAY!',
 | 
				
			||||||
 | 
					                    dotCase: 'have.a.nice.day!',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'have.A.Nice.Day!',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Have.A.Nice.Day!',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'HAVE.A.NICE.DAY!',
 | 
				
			||||||
                    // lowerCase: 'have a nice day!',
 | 
					                    // lowerCase: 'have a nice day!',
 | 
				
			||||||
                    // upperCase: 'HAVE A NICE DAY!',
 | 
					                    // upperCase: 'HAVE A NICE DAY!',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                title: 'Normal input (Dot input: Every day of your life)',
 | 
				
			||||||
 | 
					                input: '.Every day of your life.. it is..important..to take.the.time to “smell the roses” — to appreciate the experiences that lead to happiness. This is part of being truly happy.',
 | 
				
			||||||
 | 
					                eol: [LF, CRLF],
 | 
				
			||||||
 | 
					                transformText: [
 | 
				
			||||||
 | 
					                    '.|every|day|of|your|life|..|it|is|..|important|..|to|take|.|the|.|time|to|“|smell|the|roses|”|—|to|appreciate|the|experiences|that|lead|to|happiness|.|this|is|part|of|being|truly|happy|.',
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                output: {
 | 
				
			||||||
 | 
					                    camelCase:
 | 
				
			||||||
 | 
					                        '.everyDayOfYourLife..ItIs..Important..ToTake.The.TimeTo“SmellTheRoses”—ToAppreciateTheExperiencesThatLeadToHappiness.ThisIsPartOfBeingTrulyHappy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    pascalCase:
 | 
				
			||||||
 | 
					                        '.EveryDayOfYourLife..ItIs..Important..ToTake.The.TimeTo“SmellTheRoses”—ToAppreciateTheExperiencesThatLeadToHappiness.ThisIsPartOfBeingTrulyHappy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    snakeCase:
 | 
				
			||||||
 | 
					                        '.every_day_of_your_life..it_is..important..to_take.the.time_to“smell_the_roses”—to_appreciate_the_experiences_that_lead_to_happiness.this_is_part_of_being_truly_happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    snakeCamelCase:
 | 
				
			||||||
 | 
					                        '.every_Day_Of_Your_Life..It_Is..Important..To_Take.The.Time_To“Smell_The_Roses”—To_Appreciate_The_Experiences_That_Lead_To_Happiness.This_Is_Part_Of_Being_Truly_Happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    snakePascalCase:
 | 
				
			||||||
 | 
					                        '.Every_Day_Of_Your_Life..It_Is..Important..To_Take.The.Time_To“Smell_The_Roses”—To_Appreciate_The_Experiences_That_Lead_To_Happiness.This_Is_Part_Of_Being_Truly_Happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    snakeUpperCase:
 | 
				
			||||||
 | 
					                        '.EVERY_DAY_OF_YOUR_LIFE..IT_IS..IMPORTANT..TO_TAKE.THE.TIME_TO“SMELL_THE_ROSES”—TO_APPRECIATE_THE_EXPERIENCES_THAT_LEAD_TO_HAPPINESS.THIS_IS_PART_OF_BEING_TRULY_HAPPY.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    kebabCase:
 | 
				
			||||||
 | 
					                        '.every-day-of-your-life..it-is..important..to-take.the.time-to“smell-the-roses”—to-appreciate-the-experiences-that-lead-to-happiness.this-is-part-of-being-truly-happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    kebabCamelCase:
 | 
				
			||||||
 | 
					                        '.every-Day-Of-Your-Life..It-Is..Important..To-Take.The.Time-To“Smell-The-Roses”—To-Appreciate-The-Experiences-That-Lead-To-Happiness.This-Is-Part-Of-Being-Truly-Happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    kebabPascalCase:
 | 
				
			||||||
 | 
					                        '.Every-Day-Of-Your-Life..It-Is..Important..To-Take.The.Time-To“Smell-The-Roses”—To-Appreciate-The-Experiences-That-Lead-To-Happiness.This-Is-Part-Of-Being-Truly-Happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    kebabUpperCase:
 | 
				
			||||||
 | 
					                        '.EVERY-DAY-OF-YOUR-LIFE..IT-IS..IMPORTANT..TO-TAKE.THE.TIME-TO“SMELL-THE-ROSES”—TO-APPRECIATE-THE-EXPERIENCES-THAT-LEAD-TO-HAPPINESS.THIS-IS-PART-OF-BEING-TRULY-HAPPY.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    spaceCase:
 | 
				
			||||||
 | 
					                        '.every day of your life..it is..important..to take.the.time to“smell the roses”—to appreciate the experiences that lead to happiness.this is part of being truly happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    spaceCamelCase:
 | 
				
			||||||
 | 
					                        '.every Day Of Your Life..It Is..Important..To Take.The.Time To“Smell The Roses”—To Appreciate The Experiences That Lead To Happiness.This Is Part Of Being Truly Happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    spacePascalCase:
 | 
				
			||||||
 | 
					                        '.Every Day Of Your Life..It Is..Important..To Take.The.Time To“Smell The Roses”—To Appreciate The Experiences That Lead To Happiness.This Is Part Of Being Truly Happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    spaceUpperCase:
 | 
				
			||||||
 | 
					                        '.EVERY DAY OF YOUR LIFE..IT IS..IMPORTANT..TO TAKE.THE.TIME TO“SMELL THE ROSES”—TO APPRECIATE THE EXPERIENCES THAT LEAD TO HAPPINESS.THIS IS PART OF BEING TRULY HAPPY.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotCase:
 | 
				
			||||||
 | 
					                        '.every.day.of.your.life..it.is..important..to.take.the.time.to“smell.the.roses”—to.appreciate.the.experiences.that.lead.to.happiness.this.is.part.of.being.truly.happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotCamelCase:
 | 
				
			||||||
 | 
					                        '.every.Day.Of.Your.Life..It.Is..Important..To.Take.The.Time.To“Smell.The.Roses”—To.Appreciate.The.Experiences.That.Lead.To.Happiness.This.Is.Part.Of.Being.Truly.Happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotPascalCase:
 | 
				
			||||||
 | 
					                        '.Every.Day.Of.Your.Life..It.Is..Important..To.Take.The.Time.To“Smell.The.Roses”—To.Appreciate.The.Experiences.That.Lead.To.Happiness.This.Is.Part.Of.Being.Truly.Happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotUpperCase:
 | 
				
			||||||
 | 
					                        '.EVERY.DAY.OF.YOUR.LIFE..IT.IS..IMPORTANT..TO.TAKE.THE.TIME.TO“SMELL.THE.ROSES”—TO.APPRECIATE.THE.EXPERIENCES.THAT.LEAD.TO.HAPPINESS.THIS.IS.PART.OF.BEING.TRULY.HAPPY.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    lowerCase:
 | 
				
			||||||
 | 
					                        '.every day of your life.. it is..important..to take.the.time to “smell the roses” — to appreciate the experiences that lead to happiness. this is part of being truly happy.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    upperCase:
 | 
				
			||||||
 | 
					                        '.EVERY DAY OF YOUR LIFE.. IT IS..IMPORTANT..TO TAKE.THE.TIME TO “SMELL THE ROSES” — TO APPRECIATE THE EXPERIENCES THAT LEAD TO HAPPINESS. THIS IS PART OF BEING TRULY HAPPY.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                title: 'Normal input (a-nice-day!)',
 | 
					                title: 'Normal input (a-nice-day!)',
 | 
				
			||||||
                input: [
 | 
					                input: [
 | 
				
			||||||
@@ -653,6 +811,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: ' a Nice Day! ',
 | 
					                    spaceCamelCase: ' a Nice Day! ',
 | 
				
			||||||
                    spacePascalCase: ' A Nice Day! ',
 | 
					                    spacePascalCase: ' A Nice Day! ',
 | 
				
			||||||
                    spaceUpperCase: ' A NICE DAY! ',
 | 
					                    spaceUpperCase: ' A NICE DAY! ',
 | 
				
			||||||
 | 
					                    dotCase: ' a.nice.day! ',
 | 
				
			||||||
 | 
					                    dotCamelCase: ' a.Nice.Day! ',
 | 
				
			||||||
 | 
					                    dotPascalCase: ' A.Nice.Day! ',
 | 
				
			||||||
 | 
					                    dotUpperCase: ' A.NICE.DAY! ',
 | 
				
			||||||
                    // lowerCase: ' a nice day! ',
 | 
					                    // lowerCase: ' a nice day! ',
 | 
				
			||||||
                    // upperCase: ' A NICE DAY! ',
 | 
					                    // upperCase: ' A NICE DAY! ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -682,6 +844,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: ' a Nice Day',
 | 
					                    spaceCamelCase: ' a Nice Day',
 | 
				
			||||||
                    spacePascalCase: ' A Nice Day',
 | 
					                    spacePascalCase: ' A Nice Day',
 | 
				
			||||||
                    spaceUpperCase: ' A NICE DAY',
 | 
					                    spaceUpperCase: ' A NICE DAY',
 | 
				
			||||||
 | 
					                    dotCase: ' a.nice.day',
 | 
				
			||||||
 | 
					                    dotCamelCase: ' a.Nice.Day',
 | 
				
			||||||
 | 
					                    dotPascalCase: ' A.Nice.Day',
 | 
				
			||||||
 | 
					                    dotUpperCase: ' A.NICE.DAY',
 | 
				
			||||||
                    // lowerCase: ' a nice-day-',
 | 
					                    // lowerCase: ' a nice-day-',
 | 
				
			||||||
                    // upperCase: ' A NICE-DAY-',
 | 
					                    // upperCase: ' A NICE-DAY-',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -710,6 +876,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: 'tom Likes Eat Ice Cream.',
 | 
					                    spaceCamelCase: 'tom Likes Eat Ice Cream.',
 | 
				
			||||||
                    spacePascalCase: 'Tom Likes Eat Ice Cream.',
 | 
					                    spacePascalCase: 'Tom Likes Eat Ice Cream.',
 | 
				
			||||||
                    spaceUpperCase: 'TOM LIKES EAT ICE CREAM.',
 | 
					                    spaceUpperCase: 'TOM LIKES EAT ICE CREAM.',
 | 
				
			||||||
 | 
					                    dotCase: 'tom.likes.eat.ice.cream.',
 | 
				
			||||||
 | 
					                    dotCamelCase: 'tom.Likes.Eat.Ice.Cream.',
 | 
				
			||||||
 | 
					                    dotPascalCase: 'Tom.Likes.Eat.Ice.Cream.',
 | 
				
			||||||
 | 
					                    dotUpperCase: 'TOM.LIKES.EAT.ICE.CREAM.',
 | 
				
			||||||
                    lowerCase: 'tomlikes eat icecream.',
 | 
					                    lowerCase: 'tomlikes eat icecream.',
 | 
				
			||||||
                    upperCase: 'TOMLIKES EAT ICECREAM.',
 | 
					                    upperCase: 'TOMLIKES EAT ICECREAM.',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -739,6 +909,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: ' apple2Tree ',
 | 
					                    spaceCamelCase: ' apple2Tree ',
 | 
				
			||||||
                    spacePascalCase: ' Apple2Tree ',
 | 
					                    spacePascalCase: ' Apple2Tree ',
 | 
				
			||||||
                    spaceUpperCase: ' APPLE2TREE ',
 | 
					                    spaceUpperCase: ' APPLE2TREE ',
 | 
				
			||||||
 | 
					                    dotCase: ' apple2tree ',
 | 
				
			||||||
 | 
					                    dotCamelCase: ' apple2Tree ',
 | 
				
			||||||
 | 
					                    dotPascalCase: ' Apple2Tree ',
 | 
				
			||||||
 | 
					                    dotUpperCase: ' APPLE2TREE ',
 | 
				
			||||||
                    // lowerCase: ' apple2-tree ',
 | 
					                    // lowerCase: ' apple2-tree ',
 | 
				
			||||||
                    // upperCase: ' APPLE2-TREE ',
 | 
					                    // upperCase: ' APPLE2-TREE ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -767,6 +941,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                    spaceCamelCase: ' julius Caesar,William Shakespeare,Albert Einstein,Marie Curie,Wolfgang Amadeus Mozart,Vincent Van Gogh. ',
 | 
					                    spaceCamelCase: ' julius Caesar,William Shakespeare,Albert Einstein,Marie Curie,Wolfgang Amadeus Mozart,Vincent Van Gogh. ',
 | 
				
			||||||
                    spacePascalCase: ' Julius Caesar,William Shakespeare,Albert Einstein,Marie Curie,Wolfgang Amadeus Mozart,Vincent Van Gogh. ',
 | 
					                    spacePascalCase: ' Julius Caesar,William Shakespeare,Albert Einstein,Marie Curie,Wolfgang Amadeus Mozart,Vincent Van Gogh. ',
 | 
				
			||||||
                    spaceUpperCase: ' JULIUS CAESAR,WILLIAM SHAKESPEARE,ALBERT EINSTEIN,MARIE CURIE,WOLFGANG AMADEUS MOZART,VINCENT VAN GOGH. ',
 | 
					                    spaceUpperCase: ' JULIUS CAESAR,WILLIAM SHAKESPEARE,ALBERT EINSTEIN,MARIE CURIE,WOLFGANG AMADEUS MOZART,VINCENT VAN GOGH. ',
 | 
				
			||||||
 | 
					                    dotCase: ' julius.caesar,william.shakespeare,albert.einstein,marie.curie,wolfgang.amadeus.mozart,vincent.van.gogh. ',
 | 
				
			||||||
 | 
					                    dotCamelCase: ' julius.Caesar,William.Shakespeare,Albert.Einstein,Marie.Curie,Wolfgang.Amadeus.Mozart,Vincent.Van.Gogh. ',
 | 
				
			||||||
 | 
					                    dotPascalCase: ' Julius.Caesar,William.Shakespeare,Albert.Einstein,Marie.Curie,Wolfgang.Amadeus.Mozart,Vincent.Van.Gogh. ',
 | 
				
			||||||
 | 
					                    dotUpperCase: ' JULIUS.CAESAR,WILLIAM.SHAKESPEARE,ALBERT.EINSTEIN,MARIE.CURIE,WOLFGANG.AMADEUS.MOZART,VINCENT.VAN.GOGH. ',
 | 
				
			||||||
                    lowerCase: ' julius_caesar, william_shakespeare, albert_einstein, marie_curie, wolfgangamadeusmozart, vincent-van-gogh. ',
 | 
					                    lowerCase: ' julius_caesar, william_shakespeare, albert_einstein, marie_curie, wolfgangamadeusmozart, vincent-van-gogh. ',
 | 
				
			||||||
                    upperCase: ' JULIUS_CAESAR, WILLIAM_SHAKESPEARE, ALBERT_EINSTEIN, MARIE_CURIE, WOLFGANGAMADEUSMOZART, VINCENT-VAN-GOGH. ',
 | 
					                    upperCase: ' JULIUS_CAESAR, WILLIAM_SHAKESPEARE, ALBERT_EINSTEIN, MARIE_CURIE, WOLFGANGAMADEUSMOZART, VINCENT-VAN-GOGH. ',
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@@ -839,6 +1017,22 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
                        '      "YOU"(OR"YOUR")SHALL MEAN AN INDIVIDUAL OR LEGAL ENTITY\n' +
 | 
					                        '      "YOU"(OR"YOUR")SHALL MEAN AN INDIVIDUAL OR LEGAL ENTITY\n' +
 | 
				
			||||||
                        '      EXERCISING PERMISSIONS GRANTED BY THIS LICENSE.'
 | 
					                        '      EXERCISING PERMISSIONS GRANTED BY THIS LICENSE.'
 | 
				
			||||||
                    ,
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotCase:
 | 
				
			||||||
 | 
					                        '      "you"(or"your")shall.mean.an.individual.or.legal.entity\n' +
 | 
				
			||||||
 | 
					                        '      exercising.permissions.granted.by.this.license.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotCamelCase:
 | 
				
			||||||
 | 
					                        '      "You&Quot;(Or&Quot;Your&Quot;)Shall.Mean.An.Individual.Or.Legal.Entity\n' +
 | 
				
			||||||
 | 
					                        '      exercising.Permissions.Granted.By.This.License.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotPascalCase:
 | 
				
			||||||
 | 
					                        '      &Quot;You&Quot;(Or&Quot;Your&Quot;)Shall.Mean.An.Individual.Or.Legal.Entity\n' +
 | 
				
			||||||
 | 
					                        '      Exercising.Permissions.Granted.By.This.License.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
 | 
					                    dotUpperCase:
 | 
				
			||||||
 | 
					                        '      "YOU"(OR"YOUR")SHALL.MEAN.AN.INDIVIDUAL.OR.LEGAL.ENTITY\n' +
 | 
				
			||||||
 | 
					                        '      EXERCISING.PERMISSIONS.GRANTED.BY.THIS.LICENSE.'
 | 
				
			||||||
 | 
					                    ,
 | 
				
			||||||
                    lowerCase:
 | 
					                    lowerCase:
 | 
				
			||||||
                        '      "you" (or "your") shall mean an individual or legal entity\n' +
 | 
					                        '      "you" (or "your") shall mean an individual or legal entity\n' +
 | 
				
			||||||
                        '      exercising permissions granted by this license.'
 | 
					                        '      exercising permissions granted by this license.'
 | 
				
			||||||
@@ -888,6 +1082,10 @@ const testGroups: Array<TestCaseGroup> = [
 | 
				
			|||||||
            //         spaceCamelCase: '',
 | 
					            //         spaceCamelCase: '',
 | 
				
			||||||
            //         spacePascalCase: '',
 | 
					            //         spacePascalCase: '',
 | 
				
			||||||
            //         spaceUpperCase: '',
 | 
					            //         spaceUpperCase: '',
 | 
				
			||||||
 | 
					            //         dotCase: '',
 | 
				
			||||||
 | 
					            //         dotCamelCase: '',
 | 
				
			||||||
 | 
					            //         dotPascalCase: '',
 | 
				
			||||||
 | 
					            //         dotUpperCase: '',
 | 
				
			||||||
            //         lowerCase: '',
 | 
					            //         lowerCase: '',
 | 
				
			||||||
            //         upperCase: '',
 | 
					            //         upperCase: '',
 | 
				
			||||||
            //     },
 | 
					            //     },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -158,6 +158,46 @@ export enum SupportCase {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    SPACE_UPPER_CASE,
 | 
					    SPACE_UPPER_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 点分隔命名
 | 
				
			||||||
 | 
					     * Dot Case / Spinal Case
 | 
				
			||||||
 | 
					     * e.g. foo bar
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @alias: dotCase / DotCase / dot case / dot_case / DOT_CASE
 | 
				
			||||||
 | 
					     * @since 2024-06-13
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    DOT_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 点分隔 + 小驼峰(驼峰)命名
 | 
				
			||||||
 | 
					     * Dot Camel Case
 | 
				
			||||||
 | 
					     * e.g. foo Bar
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @alias: dotCamelCase / DotCamelCase / dot camel case / dot_camel_case / DOT_CAMEL_CASE
 | 
				
			||||||
 | 
					     * @since 2024-06-13
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    DOT_CAMEL_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 点分隔 + 大驼峰(帕斯卡)命名
 | 
				
			||||||
 | 
					     * Dot Pascal Case
 | 
				
			||||||
 | 
					     * e.g. Foo Bar
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @alias: dotPascalCase / DotPascalCase / dot pascal case / dot_pascal_case / DOT_PASCAL_CASE
 | 
				
			||||||
 | 
					     * @since 2024-06-13
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    DOT_PASCAL_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 点分隔 + 全大写命名
 | 
				
			||||||
 | 
					     * Dot Upper Case
 | 
				
			||||||
 | 
					     * e.g. FOO BAR
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @alias: dotUpperCase / DotUpperCase / dot upper case / dot_upper_case / DOT_UPPER_CASE
 | 
				
			||||||
 | 
					     * @since 2024-06-13
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    DOT_UPPER_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 全小写
 | 
					     * 全小写
 | 
				
			||||||
     * Lower Case
 | 
					     * Lower Case
 | 
				
			||||||
@@ -215,6 +255,13 @@ const keyword = {
 | 
				
			|||||||
        'KongGe',
 | 
					        'KongGe',
 | 
				
			||||||
        'kg',
 | 
					        'kg',
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
 | 
					    dot: [
 | 
				
			||||||
 | 
					        '点', '.',
 | 
				
			||||||
 | 
					        'Dot Case',
 | 
				
			||||||
 | 
					        'dc',
 | 
				
			||||||
 | 
					        'Dian',
 | 
				
			||||||
 | 
					        'd',
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
    upper: [
 | 
					    upper: [
 | 
				
			||||||
        '全大写', '大写',
 | 
					        '全大写', '大写',
 | 
				
			||||||
        'Upper Case',
 | 
					        'Upper Case',
 | 
				
			||||||
@@ -253,6 +300,11 @@ export const commands: Array<{ command: string; targetCase: SupportCase }> = [
 | 
				
			|||||||
    { command: 'variable-conversion.toSpacePascalCase', targetCase: SupportCase.SPACE_PASCAL_CASE },
 | 
					    { command: 'variable-conversion.toSpacePascalCase', targetCase: SupportCase.SPACE_PASCAL_CASE },
 | 
				
			||||||
    { command: 'variable-conversion.toSpaceCamelCase', targetCase: SupportCase.SPACE_CAMEL_CASE },
 | 
					    { command: 'variable-conversion.toSpaceCamelCase', targetCase: SupportCase.SPACE_CAMEL_CASE },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    { command: 'variable-conversion.toDotCase', targetCase: SupportCase.DOT_CASE },
 | 
				
			||||||
 | 
					    { command: 'variable-conversion.toDotUpperCase', targetCase: SupportCase.DOT_UPPER_CASE },
 | 
				
			||||||
 | 
					    { command: 'variable-conversion.toDotPascalCase', targetCase: SupportCase.DOT_PASCAL_CASE },
 | 
				
			||||||
 | 
					    { command: 'variable-conversion.toDotCamelCase', targetCase: SupportCase.DOT_CAMEL_CASE },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    { command: 'variable-conversion.toLowerCase', targetCase: SupportCase.LOWER_CASE },
 | 
					    { command: 'variable-conversion.toLowerCase', targetCase: SupportCase.LOWER_CASE },
 | 
				
			||||||
    { command: 'variable-conversion.toUpperCase', targetCase: SupportCase.UPPER_CASE },
 | 
					    { command: 'variable-conversion.toUpperCase', targetCase: SupportCase.UPPER_CASE },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
@@ -346,6 +398,30 @@ export const quickPickSupportCases = [
 | 
				
			|||||||
        shortName: '脊柱大写',
 | 
					        shortName: '脊柱大写',
 | 
				
			||||||
        keyword: [...keyword.space, ...keyword.upper],
 | 
					        keyword: [...keyword.space, ...keyword.upper],
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        type: SupportCase.DOT_CASE,
 | 
				
			||||||
 | 
					        name: '点分隔命名',
 | 
				
			||||||
 | 
					        shortName: '脊柱',
 | 
				
			||||||
 | 
					        keyword: [...keyword.dot, ...keyword.lower],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        type: SupportCase.DOT_CAMEL_CASE,
 | 
				
			||||||
 | 
					        name: '点分隔 + 小驼峰(驼峰)命名',
 | 
				
			||||||
 | 
					        shortName: '脊柱驼峰',
 | 
				
			||||||
 | 
					        keyword: [...keyword.dot, ...keyword.camel],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        type: SupportCase.DOT_PASCAL_CASE,
 | 
				
			||||||
 | 
					        name: '点分隔 + 大驼峰(帕斯卡)命名',
 | 
				
			||||||
 | 
					        shortName: '脊柱帕斯卡',
 | 
				
			||||||
 | 
					        keyword: [...keyword.dot, ...keyword.pascal],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        type: SupportCase.DOT_UPPER_CASE,
 | 
				
			||||||
 | 
					        name: '点分隔 + 全大写命名',
 | 
				
			||||||
 | 
					        shortName: '脊柱大写',
 | 
				
			||||||
 | 
					        keyword: [...keyword.dot, ...keyword.upper],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        type: SupportCase.LOWER_CASE,
 | 
					        type: SupportCase.LOWER_CASE,
 | 
				
			||||||
        name: '全小写',
 | 
					        name: '全小写',
 | 
				
			||||||
@@ -370,18 +446,22 @@ export const cyclicConvertCaseOrder = [
 | 
				
			|||||||
    SupportCase.PASCAL_CASE,
 | 
					    SupportCase.PASCAL_CASE,
 | 
				
			||||||
    SupportCase.KEBAB_CASE,
 | 
					    SupportCase.KEBAB_CASE,
 | 
				
			||||||
    SupportCase.SPACE_CASE,
 | 
					    SupportCase.SPACE_CASE,
 | 
				
			||||||
 | 
					    SupportCase.DOT_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SupportCase.SNAKE_UPPER_CASE,
 | 
					    SupportCase.SNAKE_UPPER_CASE,
 | 
				
			||||||
    SupportCase.KEBAB_UPPER_CASE,
 | 
					    SupportCase.KEBAB_UPPER_CASE,
 | 
				
			||||||
    SupportCase.SPACE_UPPER_CASE,
 | 
					    SupportCase.SPACE_UPPER_CASE,
 | 
				
			||||||
 | 
					    SupportCase.DOT_UPPER_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SupportCase.SNAKE_PASCAL_CASE,
 | 
					    SupportCase.SNAKE_PASCAL_CASE,
 | 
				
			||||||
    SupportCase.KEBAB_PASCAL_CASE,
 | 
					    SupportCase.KEBAB_PASCAL_CASE,
 | 
				
			||||||
    SupportCase.SPACE_PASCAL_CASE,
 | 
					    SupportCase.SPACE_PASCAL_CASE,
 | 
				
			||||||
 | 
					    SupportCase.DOT_PASCAL_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SupportCase.SNAKE_CAMEL_CASE,
 | 
					    SupportCase.SNAKE_CAMEL_CASE,
 | 
				
			||||||
    SupportCase.KEBAB_CAMEL_CASE,
 | 
					    SupportCase.KEBAB_CAMEL_CASE,
 | 
				
			||||||
    SupportCase.SPACE_CAMEL_CASE,
 | 
					    SupportCase.SPACE_CAMEL_CASE,
 | 
				
			||||||
 | 
					    SupportCase.DOT_CAMEL_CASE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SupportCase.LOWER_CASE,
 | 
					    SupportCase.LOWER_CASE,
 | 
				
			||||||
    SupportCase.UPPER_CASE,
 | 
					    SupportCase.UPPER_CASE,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,6 +30,11 @@ export type TestCase = {
 | 
				
			|||||||
        spacePascalCase: string
 | 
					        spacePascalCase: string
 | 
				
			||||||
        spaceUpperCase: string
 | 
					        spaceUpperCase: string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        dotCase: string
 | 
				
			||||||
 | 
					        dotCamelCase: string
 | 
				
			||||||
 | 
					        dotPascalCase: string
 | 
				
			||||||
 | 
					        dotUpperCase: string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        lowerCase?: string
 | 
					        lowerCase?: string
 | 
				
			||||||
        upperCase?: string
 | 
					        upperCase?: string
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user