1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee
Files
variable-conversion-vscode-…/src/handler/status-bar-handler.ts
2025-07-14 14:41:37 +08:00

55 lines
1.8 KiB
TypeScript

import * as vscode from 'vscode';
// docs: https://code.visualstudio.com/api/references/vscode-api#StatusBarItem
let statusBarItemList: Array<vscode.StatusBarItem> = [];
/**
* 创建状态栏按钮
*
* @since 2024-04-07
*/
export function createStatusBarItem() {
// 变量转换状态栏 2024.04.07
const createVariableConvertStatusBarItem = () => {
const statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
// Icon Listing docs: https://code.visualstudio.com/api/references/icons-in-labels#icon-listing
statusBarItem.text = '$(find-replace)变量转换';
statusBarItem.command = 'variable-conversion.convertCase';
// statusBarItem.color = 'red';
// statusBarItem.show();
return statusBarItem;
};
// 路径转换状态栏 2024.12.14
const createPathConvertStatusBarItem = () => {
const statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
statusBarItem.text = '$(sync-ignored)路径转换'; // italic symbol-null
statusBarItem.command = 'variable-conversion.convertPath';
statusBarItemList.push(statusBarItem);
return statusBarItem;
};
statusBarItemList.push(
createVariableConvertStatusBarItem(),
createPathConvertStatusBarItem(),
);
}
/**
* 判断是否展示状态栏按钮
*
* @since 2024-04-07
*/
export function updateStatusBarItemVisible(selectTextLength: number) {
let editor = vscode.window.activeTextEditor;
if (editor && selectTextLength > 0) {
statusBarItemList.forEach(statusBarItem => {
statusBarItem.show();
});
return;
}
statusBarItemList.forEach(statusBarItem => {
statusBarItem.hide();
});
}