Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

wscode

yelloxing332MITdeprecated2.1.2

Please use https://github.com/hai2007/Open-Web-Editor

🎉 An Editor Used on the Browser Side.

wscode, vscode, edit, web

readme

Web Studio Code

🎉 Web Studio Code - An Editor Used on the Browser Side.

Downloads install size CDN Version License

Web Studio Code

温馨提示:使用过程中,你可以查看 版本历史 来了解是否需要升级!

兼容Chrome、Safari、Edge、Firefox、Opera和IE(9+)等常见浏览器!

如何引入

我们推荐你使用npm的方式安装和使用:

npm install --save wscode

当然,你也可以通过CDN的方式引入:

<script src="https://cdn.jsdelivr.net/npm/wscode"></script>

如何使用

  • 特别注意:当前最后一个可用版本(非beta和alpha版本)请查看master分支的说明!
import WSCode from 'wscode';

var wscode = new WSCode({

    // 编辑器挂载点(必选)
    el: document.getElementById('wscode'),

    // 初始化文本(可选)
    content: "初始化文本内容",

    // 编辑器字体(可选,默认"新宋体")
    "font-family": string,

    // 编辑器字重(可选,默认600)
    "font-weight": number,

    // 着色方法(可选,默认不特殊着色)
    shader: function(textString){
        return [
            [{
                content:"内容",
                color:"文字颜色"
            },
            ...],
            ...
        ];
    },

    // 格式化方法(可选)
    format: function(textString, tabNumber){
        return "格式化后的文本";
    },

    // 辅助输入(可选)
    input: function(dom, options, contentArray){
        /*
        1.其中dom和contentArray分别表示辅助的悬浮结点和内容数组;
        2.options的一些重要的辅助信息,是一个json,包括以下内容:
            {
                leftNum:光标前面有多少个字符
                lineNum:当前行之前有多少行
                x:光标left坐标
                y:光标top坐标
                lineHeight:一行文本的高
            }
        */

       // 返回的是键盘操作,可以有任意多个(可选)
       return {
            // keyString可以取:
            //    ”up“:按下键盘向上键
            //    ”down“:按下键盘向下键
            //    等
            // 具体的查看这里: https://yelloxing.github.io/core.js/tools-api/index.html#keyString
            "keyString":function(){

                // 最后返回true或false,默认false表示阻止默认行为(或原有行为)
                return boolean;
            },
            ...
       };
    },

    // 设置颜色(可选)
    color: {
        background: "#d6d6e4", /*编辑器背景*/
        text : "#000000", /*文本颜色*/
        number: "#888484", /*行号颜色*/
        edit: "#eaeaf1", /*编辑行背景色*/
        cursor: "#ff0000", /*光标颜色*/
        select: "#6c6cf1", /*选择背景*/
    },

    // 设置一个tab表示多少个空格(可选,默认4)
    tabSpace: number,

    // 是否只读(默认false,如果设置true表示当前编辑器可以选择复制等操作,不可以进行内容修改)
    readonly:boolean,

    // 行号是否隐藏(默认false,如果设置true表示当前编辑器行号隐藏)
    noLineNumber:boolean

});

返回的wscode里面挂载着后续可控方法:

  • 格式化代码
wscode.format();
  • 获取当前编辑器代码
wscode.valueOf();
  • 编辑器管理的文本发生改变后会主动触发callback方法
wscode.updated(callback);
  • 在当前光标位置输入新的内容
// cursor和length默认都是0,前者表示光标偏移量,后者表示替换个数
wscode.input(content[, cursor, number]);
  • 触发编辑器命令
/**
 * 参数:terminalString 字符串类型,表示命令语句,有以下可选:
 *  1.'ctrl+a':全选
 *  2.'ctrl+c':复制
 *  3.'ctrl+x':剪切
 *  4.'delete':删除当前选中的内容
 * 
 * 温馨提示:需要注意的是,部分命令需要用户交互触发才可以成功,这主要是安全性问题导致的!
 */
wscode.terminal(terminalString);

相关项目

开源协议

MIT

Copyright (c) 2020 走一步 再走一步

changelog

No more records! - - - v1.3.2: date:2020-05-13 changes:

  -  修复由于转义问题导致的<,>和&等特殊字符显示问题
  -  修复由于滚动条导致的点击切行交互错误

v1.3.3: date:2020-05-13 changes:

  -  添加字体font-family可配置
  -  添加光标点击定位功能

v1.3.4: date:2020-05-14 changes:

  -  优化光标控制(增加键盘上下键位置计算)
  -  增加tab键,font-weight等配置接口
  -  优化中文输入的时候输入口显示样式

v1.4.0: date:2020-05-16 changes:

  -  预留lang配置选项,为内置语言提供接口
  -  添加光标选择(删除,tab多行添加等)

v1.4.1: date:2020-05-17 changes:

  -  添加复制、剪切等快捷键

v1.4.2: date:2020-05-17 changes:

  -  修复复制或剪切后光标自动消失问题

v1.5.1: date:2020-05-18 changes:

  -  添加内置着色(支持html+css+javascript)

v1.5.2: date:2020-05-19 changes:

  -  修复初始化选择区域为空导致的错误
  -  添加全选(ctrl + A)功能

v1.5.3: date:2020-05-22 changes:

  -  修复javascript字符串着色错误
  -  添加对css和javascript中边界的着色功能

v1.5.4: date:2020-05-25 changes:

  -  针对css补充着色(完毕)

v1.5.5: date:2020-05-26 changes:

  -  针对javascript补充着色(完毕)

v1.5.6: date:2020-05-26 changes:

  -  补充javascript着色细节
  -  修复ctrl+A功能BUG
  -  修复issue2(https://github.com/yelloxing/Web-Studio-Code/issues/2)

v1.6.0: date:2020-06-03 changes:

  -  添加对标准JSON的支持(着色和格式化开发完毕)

v1.7.0: date:2020-06-05 changes:

  -  HTML格式化(内嵌套的CSS和ES无格式)

v1.7.1: date:2020-06-05 changes:

  -  修复IE和Edge不支持透明色问题
  -  修复IE浏览器对Symbol的支持问题

v1.7.2: date:2020-06-06 changes:

  -  解决错误的HTML模板格式化卡顿问题

v1.7.4: date:2020-06-12 changes:

  -  添加文本内容改变通知钩子`this.updated(callback);`

v1.7.5: date:2020-06-28 changes:

  -  针对编辑器滚动后聚焦位置错误进行了修复

v1.8.0: date:2020-07-01 changes:

  -  使用新的方式改写了着色后页面更新方式,大大提高了效率
  -  第一次引入diff模式来选择性更新页面内容而不是一次性全部重新生成

v1.8.1: date:2020-07-01 changes:

  -  修复在特殊情况下匹配的重复利用行数为负的情况

v1.9.0: date:2020-07-03 changes:

  -  添加输入辅助方法(input配置提供:https://github.com/yelloxing/Web-Studio-Code/issues/9)
  -  对整体的UI进行比较小的优化

v2.0.0: date:2020-07-27 changes:

  -  废弃内置的语言支持,专心提供通用的编辑器

v2.0.1: date:2020-08-13 changes:

  -  优化鼠标选择操作的时候空白行无选择效果的问题
  -  修复同一个页面同时存在多于一个编辑界面的时候,鼠标操作串起来问题

v2.0.3: date:2020-08-25 changes:

  -  添加新的配置项readonly用来设置当前编辑器界面是否可以编辑,默认可编辑

v2.0.4: date:2020-10-09 changes:

  -  添加新的配置项noLineNumber用来设置当前编辑器界面行号是否可见,默认可见

v2.1.0: date:2020-10-12 changes:

  -  新增命令行操作模式方法this.terminal()

v2.1.1: date:2020-10-21 changes:

  -  新增命令行命令(下列命令都因为安全问题需要用户主动触发才可以正确执行)
      ctrl+c:复制当前选中的内容
      ctrl+x:剪切当前选中的内容

v2.1.2: date:2021-01-13 changes:

  - 修复编辑器第一行编辑页面更新错误