首页 > 其他分享 >【保姆级VSCode 插件开发之状态栏按钮展示和交互】

【保姆级VSCode 插件开发之状态栏按钮展示和交互】

时间:2024-08-30 12:26:10浏览次数:13  
标签:插件 Bar 状态栏 VSCode 按钮 图标

保姆级VSCode 插件开发

例如:第一章 VSCode 插件开发入门之状态栏


文章目录


前言

今天我们来说一下VSCode 状态栏(Status Bar)的认识和相关开发,如何在状态栏中添加交互按钮。

一、VSCode状态栏(Status Bar)的认识

在 Visual Studio Code (VSCode) 中, 状态栏(Status Bar)是位于窗口底部的一条信息栏, 用于显示与当前工作环境和活动相关的重要信息。它提供了多种功能和信息,帮助用户更好地理解和控制他们的开发环境。具体如图所示:
VSCode状态栏图示
VSCode 的状态栏是一个集成了多种信息和功能的界面元素,能够帮助开发者快速获取上下文信息和执行常见操作。利用状态栏提供的信息,用户可以更高效地管理代码编辑、调试和版本控制等任务。

  • 在状态栏(Status Bar)上点击右键,可以选择显示哪些状态。(鼠标悬停在状态栏上的不同状态按钮可以看到状态对应的名称)
  • 状态栏的按钮可以实现点击执行某些操作的功能。
  • 如果状态栏被隐藏了,
    • 可以在工具栏中的View -> Appearance -> Status Bar 中打开或隐藏
    • 也可以点击左下角的设置图标,进入设置界面,找到“Appearance”或者直接搜索“Status Bar”,确保状态栏的可见性被开启。
    • 按下Ctrl+Shift+P打开命令面板,输入“Status Bar”或者“活动栏”,选择“切换状态栏可见性”或者“切换活动栏可见性”来显示状态栏。

二、如何在VSCode插件中添加交互式按钮?

1.extension.ts中代码解析

代码如下(示例):

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    // Create a new status bar item that we can now manage
    const myStatusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100); // 创建一个状态栏项, 位置在右侧,优先级为100(优先级越高,显示的位置越靠右)
    myStatusBarItem.text = '$(debug-start) Hello World'; // 状态栏项显示的文本,也就是按钮的名字
    myStatusBarItem.tooltip = 'Click to execute Hello World command'; // 鼠标悬停在按钮上时显示的提示信息
    myStatusBarItem.command = 'extension.helloWorld'; // 点击按钮时执行的命令
    myStatusBarItem.show(); // 显示状态栏项,让状态栏项显示在状态栏中

    // Register the command that is invoked when the status bar item is clicked
    const helloWorldCommand = vscode.commands.registerCommand('extension.helloWorld', () => { // 注册一个命令,当点击状态栏项时执行
        vscode.window.showInformationMessage('Hello World!'); // 显示一个信息提示框
    });

    // Add to a list of disposables which are disposed when this extension is deactivated
    context.subscriptions.push(myStatusBarItem); // 将状态栏项添加到插件的订阅列表中
    context.subscriptions.push(helloWorldCommand); // 将命令添加到插件的订阅列表中, 添加到插件的订阅列表中,当插件被停用时,这些订阅会被自动释放
}

export function deactivate() {}

2.package.json

代码如下(示例):

......
  "contributes": {
    "commands": [
      {
        "command": "MdPreview.helloWorld",
        "title": "Hello World"
      }
    ]
  },
 ......

3.运行结果展示

运行结果如下:
新添加状态栏项展示

4. 按钮显示之Octicons图标集

myStatusBarItem.text = '$(debug-start) Hello World'; // 状态栏项显示的文本,也就是按钮的名字

其中$(debug-start)就代表Hello World 前面的有三角号,这个是可以修改的。在 VS Code 中,状态栏项的图标可以使用 Octicons 图标集。以下是一些常用的图标:
$(check) - ✔️
$(x) - ❌
$(alert) - ⚠️
$(info) - ℹ️
$(question) - ❓
$(sync) -

标签:插件,Bar,状态栏,VSCode,按钮,图标
From: https://blog.csdn.net/XWWW668899/article/details/141713665

相关文章

  • vscode-snippets,教你一个#include打出所有所需代码
    前言之前在打cf之类的比赛的时候总能看到别人的代码最开始总是一大串的火车头,相信也有人和我一样很喜欢这样的火车头,喜欢这样的风格化代码(别人能不能看懂是另外一回事)。但是每次复制粘贴这些火车头就很麻烦,有没有什么办法能一键打出火车头呢,这里提供一种思路,帮你一个#include打出......
  • idea 安装插件 Apifox Helper
    Java代码自动生成API文档什么是ApifoxHelper「ApifoxHelper」是Apifox针对IntelliJIDEA推出的插件,可以本地识别Java、Kotlin后端项目的源代码,自动生成 API文档 并同步到Apifox项目中,团队成员可即时查看文档内容,实现团队内高效协作对于常见的框架开箱即用,真......
  • maven 插件之 maven-shade-plugin,解决同包同名 class 共存问题的神器
    开心一刻有一天螃蟹出门,不小心撞倒了泥鳅泥鳅很生气地说:你是不是瞎啊!螃蟹说:不是啊,我是螃蟹概述maven-shade-plugin官网已经介绍的很详细了,我给大家简单翻译一下Thispluginprovidesthecapabilitytopackagetheartifactinanuber-jar,includingitsdependenciesa......
  • 插件开发:生成AI虚拟主播直播带货!
    随着人工智能技术的飞速发展,AI虚拟主播在电商直播领域逐渐成为新宠,它们不仅具备无档期风险、人设稳定可控、24小时不间断直播等优势,还能通过智能交互显著提升用户体验和购买转化率。本文将深入探讨如何开发一个AI虚拟主播直播带货插件,并通过解析六段关键源代码,帮助读者理解这一复杂......
  • pageHelper分页插件导致的查询慢的问题优化
    首先在yml中配置mybatis:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl会进行sql语句打印问题:进行分页查询时pageHelper自动生成的count语句相当于在查询语句外包一层selectcount(1)from(你的查询语句)对于你的查询语句的返回条件中有较......
  • VSCode常用插件
    VsCode插件市场地址https://marketplace.visualstudio.comVsCode拓展插件安装快捷键:Ctrl+Shift+X进入拓展面板,到应用商店文本框中搜索拓展。 适用于VSCode的中文(简体)语言包拓展名称:Chinese(Simplified)LanguagePackforVisualStudioCode插件市场地址:https://mar......
  • 虚幻5数字人,UE5如何使用VaRest插件用POST请求连接OpenAI的ChatGPT,保姆级教程
    首先整理下,需要用到的插件或者密钥:1.VaRest插件,Epic商城直接安装(免费)2.OpenAI的密钥,要去OpenAI的官网获取1.安装VaRest插件(免费)打开EPIC商城,在虚幻商城中搜索VaRest点击免费后获取,然后点击安装到引擎 选择对应的UE版本,我这里就选择5.32.新建UE5.3的项目在库中找到U......
  • 博客园-awescnb插件-geek皮肤优化--浏览器ico图标修改
    简介通过js方式自定义修改博客园-awescnb插件-geek皮肤下浏览器ico图标图标准备准备自定义的图标,上传至博客园个人的相册中代码注入定义自定义HTML:博客园->管理->设置->页脚HTML代码添加相关代码//更换ico图标functionupdateICO(){varlink=docum......
  • vue3导入excel表格并展示(使用xlsx插件+vite+element-plus)/js上传表格(js+xlsx)
    第一步:下载两个库npminstallfile-saver--savenpminstallxlsx--save第二步:引入import{saveAs}from'file-saver'import*asXLSXfrom'xlsx'第三步:给组件设置点击事件<el-form-item@click="handleExport">导出</el-for......
  • vue3导入excel表格并展示(使用xlsx插件+vite+element-plus)/js上传表格(js+xlsx)
    首先下载两个库npminstallxlsx--savenpminstallfile-saver--save然后在你需要导出的组件里引入库import{saveAs}from'file-saver'import*asXLSXfrom'xlsx'创建函数consthandleExport=()=>{letoneDimensionalArray=[]lettwoDimensionalArray......