Leek Tomato 韭菜番茄
鼠标悬浮底部状态栏能预览股票分时图
在 VS Code 里一边写代码一边盯盘的轻量级 A 股行情扩展。侧边栏维护你的自选股列表,勾选的股票会以最新价与涨跌幅的形式显示在底部状态栏,点击即可跳转同花顺分时网页查看详细走势。
功能特性
- 侧边栏自选股列表:在活动栏新增一个「Leek Tomato」入口,集中管理所有自选股票。
- 自选股分组:可从列表标题栏创建分组,并通过分组右键菜单重命名;分组可拖拽排序,股票可拖入不同分组管理。
- 拖拽排序:在股票列表中直接拖动即可调整显示顺序。
- 勾选即上状态栏:勾选的股票会自动在底部状态栏生成独立的行情条目,显示名称、最新价、涨跌幅。
- 实时行情刷新:通过东方财富接口批量拉取最新价与涨跌幅,仅在 A 股交易时段内按设定间隔自动刷新,避免非交易时段的无效请求。
- 状态栏快速跳转:点击任意状态栏股票条目,自动打开同花顺分时网页查看完整走势。
- 悬浮预览分时图:把鼠标悬停在底部状态栏的股票条目上,会拉取同花顺当日分时数据并就地绘制成分时图,含价格线、均价线,以及昨收 / 开盘 / 最低 / 最高 / 最新五个参考价及其数值标签,无需离开编辑器即可快速看走势。
- 悬浮预览买卖盘:悬浮提示中还会以表格展示东方财富五档买卖盘(买一~买五 / 卖一~卖五的价格与挂单量,单位为手),交易时段内按设定间隔自动刷新,盯盘挂单一目了然。
- 搜索添加:支持按股票名称 / 代码模糊搜索并加入自选。
- 快捷操作:列表项右侧提供「移动到顶部」「移动到底部」「删除股票」的内联按钮,配合搜索按钮快速增删。
- 自动持久化:股票列表与勾选状态自动保存到 VS Code 设置,跨会话保留。
使用方法
- 在活动栏点击 Leek Tomato 图标,打开「股票列表」视图。
- 点击视图标题栏的 🔍 搜索按钮,输入股票名称或代码,选中后即可加入自选。
- 点击视图标题栏的创建分组按钮新建分组;拖动分组可调整顺序,右键分组可重命名。
- 勾选 / 取消勾选列表项,控制哪些股票显示在底部状态栏。
- 在列表中拖动股票可调整顺序或移动到其他分组;点击列表项右侧的 ⬆ / 🗑 可置顶或删除。
- 点击底部状态栏的股票条目,浏览器会打开同花顺分时网页。
- 鼠标悬停底部状态栏的股票条目,即可在悬浮提示中看到当日分时图。
- 实时行情(最新价 / 涨跌幅)仅在 A 股交易时段(9:30–11:30、13:00–15:00)内按设定间隔自动刷新,非交易时段保留最后一次获取的数据。
- 分时图在启动时拉取一次,交易时段内按
leekTomato.trendRefreshInterval 设定的间隔(默认 15 秒)更新当日分时;非交易时段若接口无当日数据,悬浮提示回退为纯文本,点击条目仍可打开网页查看完整走势。
- 买卖盘在启动时拉取一次(非交易时段为上一交易日收盘缓存的五档),交易时段内按
leekTomato.orderBookRefreshInterval 设定的间隔(默认 5 秒)更新;非交易时段不轮询,保留缓存数据展示。
- 当 VS Code 窗口失焦或最小化 / 隐藏时,行情定时器继续更新状态栏,分时与买卖盘定时器自动暂停;切回窗口时恢复,并立即补取一次分时与买卖盘数据。
分时图配色说明
分时图中各元素的颜色固定不变,便于一眼区分:
| 元素 |
颜色 |
说明 |
| 价格曲线 / 填充 |
红 / 绿 |
唯一随涨跌变色的元素:当日上涨为红,下跌为绿 |
| 均价线 |
橙(虚线) |
成交均价 VWAP |
| 昨收价 |
灰(虚线) |
上一交易日收盘价,价格曲线涨跌的基准 |
| 开盘价 |
紫(虚线) |
当日开盘价 |
| 最低价 |
浅绿(虚线) |
当日最低成交价 |
| 最高价 |
浅红(虚线) |
当日最高成交价 |
| 最新价 |
蓝 |
当日最新成交价,含端点标记 |
上述 5 个参考价的线条与左侧数值标签颜色固定,不随涨跌改变;当若干参考价价位接近时,左侧数值会自动错开 11px 以上避免重叠。
悬浮提示的头部还会以一张图例条横向列出这 5 个参考价(颜色与图表一致):昨收显示其价格作为基准,开盘 / 最低 / 最高 / 最新则显示相对昨收的涨幅百分比(始终带正负号、保留 2 位小数)。由于 VS Code 的悬浮提示会剥离内联文字着色,图例条用 SVG 图片渲染以保证颜色正常显示。
扩展设置
本扩展贡献以下设置(可在「设置 → Leek Tomato」中修改):
| 设置 |
类型 |
默认值 |
说明 |
leekTomato.stocks |
array |
[] |
侧栏股票列表(按显示顺序),由插件自动维护 |
leekTomato.groups |
array |
[] |
侧栏股票分组及顺序,由插件自动维护 |
leekTomato.checkedStocks |
array |
[] |
已勾选、在底部状态栏显示的股票代码,由插件自动维护 |
leekTomato.refreshInterval |
number |
5000 |
交易时间内侧栏行情的刷新间隔(毫秒),最小 1000 |
leekTomato.trendRefreshInterval |
number |
15000 |
交易时间内底部状态栏分时图的刷新间隔(毫秒),最小 3000,修改后立即生效 |
leekTomato.orderBookRefreshInterval |
number |
5000 |
交易时间内底部状态栏悬浮提示五档买卖盘的刷新间隔(毫秒),最小 1000,修改后立即生效 |
leekTomato.statusBarFormat |
string |
{name} {price} {change} |
底部状态栏股票显示格式,可用占位符:{name} 股票名称、{price} 最新价、{change} 涨跌幅 |
leekTomato.statusBarPriority |
integer |
25 |
底部状态栏股票条目的起始优先级,数值越大越靠左,修改后立即生效 |
leekTomato.statusBarRiseColor |
string |
#F44336 |
状态栏上涨股票的文字颜色,修改后立即生效 |
leekTomato.statusBarFallColor |
string |
#C9AD06 |
状态栏下跌股票的文字颜色,修改后立即生效 |
例如把状态栏改为只显示名称和涨跌幅:
"leekTomato.statusBarFormat": "{name} {change}"
命令
| 命令 |
标题 |
说明 |
leek-tomato.searchStock |
搜索股票 |
按名称 / 代码搜索并添加自选 |
leek-tomato.createGroup |
创建分组 |
新建一个空的股票分组 |
leek-tomato.renameGroup |
重命名分组 |
修改选中分组的名称 |
leek-tomato.moveToTop |
移动到顶部 |
将选中股票移至列表顶部 |
leek-tomato.moveToBottom |
移动到底部 |
将选中股票移至列表底部 |
leek-tomato.removeStock |
删除股票 |
从自选列表中删除 |
leek-tomato.openStockPage |
打开分时网页 |
在浏览器打开同花顺分时图(状态栏点击触发) |
已知问题
- 行情数据来源于第三方公开接口,接口变更或限流时可能出现刷新失败。
- 当前仅支持 A 股,暂不支持港股 / 美股。
Release Notes
0.0.1
初始版本:侧边栏自选股管理、状态栏实时行情、交易时段自动刷新、同花顺分时网页跳转、鼠标悬浮状态栏预览当日分时图。
开发
# 安装依赖
npm install
# 监听编译(esbuild + tsc 类型检查)
npm run watch
# 类型检查 / lint / 打包
npm run package
# 运行测试
npm test
按 F5 在「扩展开发主机」中调试本扩展。
许可证
MIT
| |