421 lines
16 KiB
JSON
421 lines
16 KiB
JSON
{
|
||
"name": "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, dot, lower, upper case, and more.",
|
||
"version": "2.0.0",
|
||
"icon": "image/logo.png",
|
||
"publisher": "coder-xiaomo",
|
||
"engines": {
|
||
"vscode": "^1.87.0"
|
||
},
|
||
"categories": [
|
||
"Other"
|
||
],
|
||
"repository": {
|
||
"type": "git",
|
||
"url": "https://github.com/coder-xiaomo/variable-conversion-vscode-extension.git"
|
||
},
|
||
"repositories": [
|
||
{
|
||
"type": "git",
|
||
"url": "https://git.only4.work/coder-xiaomo/variable-conversion-vscode-extension.git"
|
||
},
|
||
{
|
||
"type": "git",
|
||
"url": "https://gitee.com/coder-xiaomo/variable-conversion-vscode-extension.git"
|
||
}
|
||
],
|
||
"main": "./out/extension.js",
|
||
"activationEvents": [
|
||
"onStartupFinished",
|
||
"onTextSelected"
|
||
],
|
||
"contributes": {
|
||
"keybindings": [
|
||
{
|
||
"command": "variable-conversion.convertCase",
|
||
"key": "shift+alt+t",
|
||
"when": "editorTextFocus"
|
||
},
|
||
{
|
||
"command": "variable-conversion.cyclicConvertCase.previous",
|
||
"key": "ctrl+alt+[",
|
||
"args": {
|
||
"arrowKey": "["
|
||
},
|
||
"when": "editorTextFocus"
|
||
},
|
||
{
|
||
"command": "variable-conversion.cyclicConvertCase.next",
|
||
"key": "ctrl+alt+]",
|
||
"args": {
|
||
"arrowKey": "]"
|
||
},
|
||
"when": "editorTextFocus"
|
||
},
|
||
{
|
||
"command": "variable-conversion.convertPath",
|
||
"key": "shift+alt+/",
|
||
"when": "editorTextFocus"
|
||
},
|
||
{
|
||
"command": "variable-conversion.cyclicConvertPath.previous",
|
||
"key": "ctrl+alt+shift+/",
|
||
"args": {
|
||
"direction": "<-"
|
||
},
|
||
"when": "editorTextFocus"
|
||
},
|
||
{
|
||
"command": "variable-conversion.cyclicConvertPath.next",
|
||
"key": "ctrl+alt+/",
|
||
"args": {
|
||
"direction": "->"
|
||
},
|
||
"when": "editorTextFocus"
|
||
}
|
||
],
|
||
"commands": [
|
||
{
|
||
"command": "variable-conversion.convertCase",
|
||
"title": "变量转换"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toCamelCase",
|
||
"title": "小驼峰(驼峰)命名 (Camel Case) [ fooBar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toPascalCase",
|
||
"title": "大驼峰(帕斯卡)命名 (Pascal Case) [ FooBar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toSnakeCase",
|
||
"title": "下划线(蛇形)命名 (Snake Case) [ foo_bar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toSnakeUpperCase",
|
||
"title": "下划线(蛇形) + 全大写命名 (Snake Upper Case) [ FOO_BAR ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toSnakePascalCase",
|
||
"title": "下划线(蛇形) + 大驼峰(帕斯卡)命名 (Snake Pascal Case) [ Foo_Bar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toSnakeCamelCase",
|
||
"title": "下划线(蛇形) + 小驼峰(驼峰)命名 (Snake Camel Case) [ foo_Bar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toKebabCase",
|
||
"title": "中划线(连字符/脊柱式)命名 (Kebab/Spinal Case) [ foo-bar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toKebabUpperCase",
|
||
"title": "中划线(连字符/脊柱式) + 全大写命名 (Kebab Upper Case) [ FOO-BAR ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toKebabPascalCase",
|
||
"title": "中划线(连字符/脊柱式) + 大驼峰(帕斯卡)命名 (Kebab Pascal Case) [ Foo-Bar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toKebabCamelCase",
|
||
"title": "中划线(连字符/脊柱式) + 小驼峰(驼峰)命名 (Kebab Camel Case) [ foo-Bar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toSpaceCase",
|
||
"title": "空格分隔命名 (Space Case) [ foo bar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toSpaceUpperCase",
|
||
"title": "空格分隔 + 全大写命名 (Space Upper Case) [ FOO BAR ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toSpacePascalCase",
|
||
"title": "空格分隔 + 大驼峰(帕斯卡)命名 (Space Pascal Case) [ Foo Bar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toSpaceCamelCase",
|
||
"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",
|
||
"title": "全小写 (Lower Case) [ foobar ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.toUpperCase",
|
||
"title": "全大写 (Upper Case) [ FOOBAR ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.convertPath",
|
||
"title": "路径转换"
|
||
},
|
||
{
|
||
"command": "variable-conversion.pathFormat.toWindowsStyle",
|
||
"title": "Windows 风格 [ C:\\Windows\\System32 ]"
|
||
},
|
||
{
|
||
"command": "variable-conversion.pathFormat.toUnixStyle",
|
||
"title": "Unix 风格 [ /usr/bin ]"
|
||
}
|
||
],
|
||
"menus": {
|
||
"editor/context": [
|
||
{
|
||
"when": "editorTextFocus && _textSelectionLength >= 1",
|
||
"command": "variable-conversion.convertCase",
|
||
"group": "navigation@10"
|
||
},
|
||
{
|
||
"when": "editorTextFocus && _textSelectionLength >= 1",
|
||
"submenu": "variable-conversion.stringConversionMenu",
|
||
"group": "navigation@11"
|
||
},
|
||
{
|
||
"when": "editorTextFocus && _textSelectionLength >= 1",
|
||
"command": "variable-conversion.convertPath",
|
||
"group": "navigation@12"
|
||
},
|
||
{
|
||
"when": "editorTextFocus && _textSelectionLength >= 1",
|
||
"submenu": "variable-conversion.pathConversionMenu",
|
||
"group": "navigation@13"
|
||
}
|
||
],
|
||
"variable-conversion.stringConversionMenu": [
|
||
{
|
||
"when": "!_isHideSubMenuItem_camel_case",
|
||
"command": "variable-conversion.toCamelCase",
|
||
"group": "group-1-camel@1"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_pascal_case",
|
||
"command": "variable-conversion.toPascalCase",
|
||
"group": "group-1-camel@2"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_snake_case",
|
||
"command": "variable-conversion.toSnakeCase",
|
||
"group": "group-2-snake@1"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_snake_upper_case",
|
||
"command": "variable-conversion.toSnakeUpperCase",
|
||
"group": "group-2-snake@2"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_snake_pascal_case",
|
||
"command": "variable-conversion.toSnakePascalCase",
|
||
"group": "group-2-snake@3"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_snake_camel_case",
|
||
"command": "variable-conversion.toSnakeCamelCase",
|
||
"group": "group-2-snake@4"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_kebab_case",
|
||
"command": "variable-conversion.toKebabCase",
|
||
"group": "group-3-kebab@1"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_kebab_upper_case",
|
||
"command": "variable-conversion.toKebabUpperCase",
|
||
"group": "group-3-kebab@2"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_kebab_pascal_case",
|
||
"command": "variable-conversion.toKebabPascalCase",
|
||
"group": "group-3-kebab@3"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_kebab_camel_case",
|
||
"command": "variable-conversion.toKebabCamelCase",
|
||
"group": "group-3-kebab@4"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_space_case",
|
||
"command": "variable-conversion.toSpaceCase",
|
||
"group": "group-4-space@1"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_space_upper_case",
|
||
"command": "variable-conversion.toSpaceUpperCase",
|
||
"group": "group-4-space@2"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_space_pascal_case",
|
||
"command": "variable-conversion.toSpacePascalCase",
|
||
"group": "group-4-space@3"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_space_camel_case",
|
||
"command": "variable-conversion.toSpaceCamelCase",
|
||
"group": "group-4-space@4"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_dot_case",
|
||
"command": "variable-conversion.toDotCase",
|
||
"group": "group-5-dot@1"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_dot_upper_case",
|
||
"command": "variable-conversion.toDotUpperCase",
|
||
"group": "group-5-dot@2"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_dot_pascal_case",
|
||
"command": "variable-conversion.toDotPascalCase",
|
||
"group": "group-5-dot@3"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_dot_camel_case",
|
||
"command": "variable-conversion.toDotCamelCase",
|
||
"group": "group-5-dot@4"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_lower_case",
|
||
"command": "variable-conversion.toLowerCase",
|
||
"group": "group-6-upper-lower@1"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_upper_case",
|
||
"command": "variable-conversion.toUpperCase",
|
||
"group": "group-6-upper-lower@2"
|
||
}
|
||
],
|
||
"variable-conversion.pathConversionMenu": [
|
||
{
|
||
"when": "!_isHideSubMenuItem_windows_style",
|
||
"command": "variable-conversion.pathFormat.toWindowsStyle",
|
||
"group": "group-1-common-style@1"
|
||
},
|
||
{
|
||
"when": "!_isHideSubMenuItem_unix_style",
|
||
"command": "variable-conversion.pathFormat.toUnixStyle",
|
||
"group": "group-1-common-style@2"
|
||
}
|
||
]
|
||
},
|
||
"submenus": [
|
||
{
|
||
"id": "variable-conversion.stringConversionMenu",
|
||
"label": "将变量转换为..."
|
||
},
|
||
{
|
||
"id": "variable-conversion.pathConversionMenu",
|
||
"label": "将路径转换为..."
|
||
}
|
||
],
|
||
"configuration": {
|
||
"title": "Variable Conversion 变量转换",
|
||
"properties": {
|
||
"variable-conversion.disableFormat": {
|
||
"order": 1,
|
||
"markdownDescription": "定义哪些变量命名方式是禁用的\n\nDefine which variable 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.disablePathFormat": {
|
||
"order": 3,
|
||
"markdownDescription": "定义哪些路径风格是禁用的\n\nDefine which path 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.disablePathFormat\": [ ... ],`\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": [
|
||
"windows_style",
|
||
"unix_style"
|
||
],
|
||
"enumDescriptions": [
|
||
"Windows 风格",
|
||
"Unix 风格"
|
||
]
|
||
},
|
||
"default": []
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"scripts": {
|
||
"vscode:prepublish": "npm run compile",
|
||
"compile": "tsc -p ./",
|
||
"watch": "tsc -watch -p ./",
|
||
"pretest": "npm run compile && npm run lint",
|
||
"lint": "eslint src --ext ts",
|
||
"test": "vscode-test",
|
||
"package": "echo \"start `vsce package`\" & vsce package",
|
||
"publish": "vsce publish"
|
||
},
|
||
"devDependencies": {
|
||
"@types/mocha": "^10.0.6",
|
||
"@types/node": "18.x",
|
||
"@types/vscode": "^1.87.0",
|
||
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
||
"@typescript-eslint/parser": "^7.4.0",
|
||
"@vscode/test-cli": "^0.0.8",
|
||
"@vscode/test-electron": "^2.3.9",
|
||
"eslint": "^8.57.0",
|
||
"typescript": "^5.3.3"
|
||
}
|
||
} |