From eedf861ea7bd9b8134b5dbcce8ef5f4eae339faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E5=A2=A8?= <2291200076@qq.com> Date: Sun, 7 Apr 2024 03:50:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BA=95=E6=A0=8F=E6=8C=89?= =?UTF-8?q?=E9=92=AE=EF=BC=8C=E6=94=AF=E6=8C=81=E9=80=9A=E8=BF=87=E5=BA=95?= =?UTF-8?q?=E6=A0=8F=E6=8C=89=E9=92=AE=E8=A7=A6=E5=8F=91=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E8=BD=AC=E6=8D=A2=EF=BC=9B=E6=9B=B4=E6=96=B0=20README?= =?UTF-8?q?.md=EF=BC=9Brelease=20version=201.0.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++ README.md | 15 ++++++-- image/step2-press-status-bar-button.png | Bin 0 -> 14864 bytes ...p2-variable-conversion-on-context-menu.png | Bin 0 -> 20302 bytes package-comment.jsonc | 2 +- package.json | 2 +- src/extension-handler/status-bar-handler.ts | 32 ++++++++++++++++++ src/extension.ts | 13 +++++++ 8 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 image/step2-press-status-bar-button.png create mode 100644 image/step2-variable-conversion-on-context-menu.png create mode 100644 src/extension-handler/status-bar-handler.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cab0cb..65570a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --> +## 1.0.6 + +### Added + +- Add a status bar button to trigger string conversion (添加底栏按钮,支持通过底栏按钮触发字符串转换) + ## 1.0.5 ### Fixed diff --git a/README.md b/README.md index ce150b6..274c4f5 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,22 @@ A powerful variable naming conversion extension. You can use it through the edit > 可以通过 `Ctrl + D` 快捷键选中光标所在的单词
> You can press `Ctrl + D` to select the word near the cursor -#### 2. 按 `Shift + Alt + T`
Press `Shift + Alt + T` +#### 2. 按 `Shift + Alt + T`
Press `Shift + Alt + T` ![Step2. Press Shift + Alt + T](image/step2-press-shift-alt-t.gif) -或者右键 -> 将字符串转换为...
Or right-click on the selected text -> Convert string to... +或者点击状态栏的 `字符串转换` 按钮
+Or click the `String Conversion` button in the status bar + +![Step2. Press Status Bar Button](image/step2-press-status-bar-button.png) + +或者右键 -> `字符串转换`
+Or right-click -> `String Conversion` + +![Step2. Variable conversion on the context menu](image/step2-variable-conversion-on-context-menu.png) + +或者右键 -> 将字符串转换为...
+Or right-click on the selected text -> Convert string to... ![Step2. Right-click on the selected text](image/step2-right-click-on-the-selected-text.gif) diff --git a/image/step2-press-status-bar-button.png b/image/step2-press-status-bar-button.png new file mode 100644 index 0000000000000000000000000000000000000000..79652eaa830a4eafae0a3245f034367a7b04392f GIT binary patch literal 14864 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 literal 0 HcmV?d00001 diff --git a/image/step2-variable-conversion-on-context-menu.png b/image/step2-variable-conversion-on-context-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..1a69de1abb6063f9044e09150f95e5a4bbb51c44 GIT binary patch literal 20302 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 0) { + statusBar.show(); + return; + } + statusBar.hide(); +} \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index a20b894..4f72623 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -4,6 +4,7 @@ import * as vscode from 'vscode'; import handleEditorReplace from './extension-handler/editor-submenu-handler'; import { handleQuickPick } from './extension-handler/quick-pick-handler'; import { SupportCase } from './type-definition/SupportCaseType'; +import { createStatusBarItem, updateStatusBarItemVisable } from './extension-handler/status-bar-handler'; // This method is called when your extension is activated // Your extension is activated the very first time the command is executed @@ -22,11 +23,20 @@ export function activate(context: vscode.ExtensionContext) { // vscode.window.showInformationMessage('Hello World from variable-conversion!'); // }); + let selectTextLength = 0; + createStatusBarItem(); + vscode.window.onDidChangeActiveTextEditor(event => { + updateStatusBarItemVisable(selectTextLength); + }); + // 用于判断是否展示右键菜单 vscode.window.onDidChangeTextEditorSelection(event => { const text = event.textEditor.document.getText(event.selections[0]); // console.log('text.length', text.length); vscode.commands.executeCommand('setContext', '_textSelectionLength', text.length); + + selectTextLength = text.length; + updateStatusBarItemVisable(selectTextLength); }); // 初始(VSCode 插件初始化)时也判断一次 (考虑上次关闭 VSCode 有选区,重新打开后 VSCode 回复选区但用户未重新切换选区的场景) @@ -37,6 +47,9 @@ export function activate(context: vscode.ExtensionContext) { // 获取选中的文本 let text = document.getText(selection); vscode.commands.executeCommand('setContext', '_textSelectionLength', text.length); + + selectTextLength = text.length; + updateStatusBarItemVisable(selectTextLength); } else { // vscode.window.showInformationMessage('editor is undefined'); console.log('editor is undefined');