npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ide-plugin

v1.1.9

Published

开放的ide页面开发模版组件

Readme

zxchain-ide

支持主题切换

对于需要支持主题切换的样式,书写在了 src/pages/ide/theme.less 内,主题改变的颜色设计成参数。

功能列表

顶部导航栏

侧面功能栏及目录树对应功能

底部日志控制台、事件列表、世界态开发

编辑器,热键及多标签

方法列表

公用热键

  • ctrl + q :关闭当前编译器
  • shift + left :向左选中
  • shift + right :向左选中
  • shift + up :向上方选择一行
  • shift + down :向下方选择一行
  • pageup :向上翻页
  • pagedown : 向下翻页
  • ctrl+e: 光标移至最右边
  • ctrl+k: 删除光标右侧本行内容
  • ctrl+\: 自动补全

mac系统

  • command + 鼠标左键:跳转到函数方法详情
  • command + shift + f :格式化
  • command + c:复制选中内容
  • command+ v:粘贴所复制到内容
  • command + f:查找替换功能
  • command + s:格式化并保存当前编译器文件
  • command + i: 选中当前所在词汇
  • command + shift + k: 删除当前行
  • command + [: 缩小选中行缩进
  • command + ]: 放大选中行缩进
  • command + /: 注释选中行
  • command + left: 光标聚焦行首
  • command + right: 光标聚焦行尾
  • command + up: 光标聚焦文本首
  • command + down: 光标聚焦文本尾
  • command + shift + left :向左选中本行
  • command + shift + right :向右选中本行
  • command + shift + up :向上方选择文本首
  • command + shift + down :向下方选择文本尾
  • command + shift + f :代码格式化
  • command + shift + s :保存全部
  • ctrl+d: 向右删除
  • ctrl+h: 向左删除
  • ctrl+t: 光标文本后移

windows系统

  • ctrl + 鼠标左键:跳转到函数方法详情
  • ctrl + shift + f :格式化
  • ctrl + c:复制选中内容
  • ctrl+ v:粘贴所复制到内容
  • ctrl + f:查找替换功能
  • ctrl + s:格式化并保存当前编译器文件
  • ctrl + i: 选中当前所在词汇
  • ctrl + shift + k: 删除当前行
  • ctrl + [: 缩小选中行缩进
  • ctrl + ]: 放大选中行缩进
  • ctrl + /: 注释选中行
  • ctrl + left: 光标分词左移
  • ctrl + right: 光标分词右移
  • ctrl + up: 光标聚焦文本首
  • ctrl + down: 光标聚焦文本尾
  • (ctrl或alt) + shift + left :向左分词选中
  • (ctrl或alt) + shift + right :向右分词选中
  • ctrl + shift + up :向上方选择到文本首
  • ctrl + shift + down :向下方选择文本尾
  • ctrl + shift + f :代码格式化
  • ctrl + shift + s :保存全部
  • ctrl+d: 选中当前分词
  • ctrl+h: 向左删除

CI配置


# 构建包 
$ npm run build

# 运行至信链测试环境
# 至信链测试环境需要配置whistle
# zxchain-ide-test-8fs5zjh23d8ab25-1258344699.tcloudbaseapp.com localhost:5176
#
$ npm run test

# 启动文档开发
$ npm run storybook


# 打包文档
$ npm run build-storybook

引入方式


import {IdeComponent} from 'ide-plugin';

<IdeComponent
  rightContentWidth={400}
  headerContent={<IdeHeader/>} 
  leftContent={<FileNav/>}
  rightContent={<IdeGuide/>}
  bottomContent={<BottomConsole />}
  ideEventListener={ideEventListener}/>

// 参数说明

{
  /**
   * ide顶部模块
   */
  headerContent?: React.ReactNode;
  /**
   * ide组件的事件监听函数
   * @returns
   */
  ideEventListener: IdeEventListener,
  userId?: string | number;
  /**
   * 左导航模块,如果不传则页面不展示这个模块 (可切换的导航)
   */
  leftNavMenuContent?: React.ReactNode;
  /**
   * 左导航功能区模块 (一般为随左导航切换的功能区域)
   */
  leftContent?: React.ReactNode;
  /**
   * 左导航功能区模块默认宽度
   */
  leftNavContentWidth?: number;
  /**
   * 编辑区右侧区域模块
   */
  rightContent?: React.ReactNode;
  /**
   * 编辑区右侧区域模块宽度
   */
  rightContentWidth?: number;
  /**
   *  底部日志区域模块,不传则不展示
   */
  bottomContent?: React.ReactNode;
  /**
   * 底部日志区域模块默认高度
   */
  bottomContentHeight?: number;
  /**
   * 自动保存的时间间隔
   */
  autoSaveSpace?: number;
  /**
   * 文件编辑文件tab右侧操作区内容
   */
  codeOptionContent?:React.ReactNode;
}

// IdeEventListener 结构

{
  /**
   * 保存文件
   * @param editorTab  当前编辑tab信息
   * @param doc 保存文件内容
   * @returns 空或者保存的文件内容(中间可能发生了代码各式化,返回空则编辑区域保持原来保存内容,如果返回字符串将覆盖编辑区内容)
   */
  onFileSave?: (editorTab:EditorItem, doc: string, cursorLine?: number, cursorCh?: number) => Promise<string|undefined>;
  /**
   * 自动保存文件,不设置则不自动保存
   * @param editorTab  当前编辑tab信息
   * @param doc 保存文件内容
   * @returns 空或者保存的文件内容(中间可能发生了代码各式化,返回空则编辑区域保持原来保存内容,如果返回字符串将覆盖编辑区内容)
   */
  onFileAutoSave?: (editorTab:EditorItem, doc: string, cursorLine?: number, cursorCh?: number) => Promise<string|undefined>;
  /**
   * 接入自动补全
   * @param editorTab  当前编辑tab信息
   * @param cursorLine 光标所在的行
   * @param cursorCh 光标所在行的具体位置
   * @param doc 保存文件内容
   */
  autocomplete?: (editorTab:EditorItem, doc: string, cursorLine: number, cursorCh: number) => Promise<AutocompleteData[]>;
  /**
   * 美化代码
   * @param param
   * @returns
   */
  fmt?: (param: FmtParam) => Promise<any>;
  /**
   * 接入切换到引用文件位置快捷键, tab+鼠标左键点击调用位置触发
   * @param editorTab  当前编辑tab信息
   * @param cursorLine 光标所在的行
   * @param cursorCh 光标所在行的具体位置
   * @returns
   */
  decl?: (editorTab:EditorItem, doc: string, cursorLine: number, cursorCh: number) => Promise<any>;
  /**
   * 获取当前编辑页面的代码内容
   * @param editorTab  当前编辑tab信息
   * @returns  当前编辑文件内容
   */
  onGetFileContent:(editorTab: EditorItem) => Promise<string>;
  /**
   * 当文件内容加载完毕或更新时触发
   * @param editorTab  当前编辑tab信息
   * @param doc 文件内容
   * @returns
   */
  onFileContentUpdate?: (editorTab:EditorItem, doc: string) => void;
  /**
   * 点击字体扩大按钮
   * @returns
   */
  onAddFontSize?: ()=>void;
  /**
   * 点击字体缩小按钮
   * @returns
   */
  onReduceFontSize?: ()=>void;
  /**
  * 获取tab标签鼠标聚焦弹出信息内容,默认展示path
  * @returns
  */
  onGetFileTipInfo?: (editorTab:EditorItem) => string;
}

// ide数据通过 引入useIdeStore 的方法操作

// 例如

import {useIdeStore} from 'ide-plugin';
const ideStore = useIdeStore();
ideStore.clearEditor();

// 结构说明

。。。。

v1.1.*

IDE组件去除 leftNavMenuContent,leftNavContentWidth, bottomContentHeight属性,改为ideStore 里的leftContentSize,rightContentSize,bottomContentSize控制大小。 ideStore 添加 currentFileTab 当前编辑的文件信息。 添加codeOptionContent 支持自定义编辑文件tab右侧操作区内容 IdeFileTabItemProp 标签的action 添加保存文件 saveFile 类型 添加setEditorTheme 修改ide编辑区主题样式 添加openEditorByPull 为向后最加tab, openEditor改为向前最加 添加saveAll 保存所有文件 添加 onGetFileTipInfo 支持自定义tab标签鼠标聚焦弹出信息内容