状态栏
创建状态栏
使用createStatusBarItem创建一个状态栏. 支持对齐的方式为左对齐,优先级的设置为100。
ts
let myStatusBarItem: vscode.StatusBarItem;
myStatusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 100);
subscriptions.push(myStatusBarItem);1
2
3
2
3
上面状态栏创建好了,但是状态栏的具体显示信息是什么呢?
如果想点击触发命令 myStatusBarItem.command = myCommandId;
状态栏的内容显示
ts
//增加两个事件处理: 编辑器激活和编辑器文本选中
context.subscriptions.push(vscode.window.onDidChangeActiveTextEditor(updateStatusBarItem));
context.subscriptions.push(vscode.window.onDidChangeTextEditorSelection(updateStatusBarItem));
updateStatusBarItem();1
2
3
4
2
3
4
显示的功能
计算选中的总行数,在底部左侧展示,如果没有选中不掩藏状态栏
ts
function updateStatusBarItem(): void {
const n = getNumberOfSelectedLines(vscode.window.activeTextEditor);
if (n > 0) {
myStatusBarItem.text = `yu->$(megaphone) ${n} 行选中`;
myStatusBarItem.show();
} else {
myStatusBarItem.hide();
}
}
function getNumberOfSelectedLines(editor: vscode.TextEditor | undefined): number {
let lines = 0;
if (editor) {
console.log(editor,'editor');
console.log(editor.selections,'edieditor.selectionstor');
lines = editor.selections.reduce((prev, curr) => prev + (curr.end.line - curr.start.line), 0);
}
return lines;
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18