conquer/codemirror

Yii2 codemirror 小部件

安装数: 234,897

依赖者: 6

建议者: 0

安全: 0

星标: 34

关注者: 3

分支: 13

开放问题: 4

类型:yii2-extension

2.0.2 2022-07-19 07:11 UTC

This package is auto-updated.

Last update: 2024-09-24 00:16:52 UTC


README

描述

CodeMirror 是一个基于 JavaScript 实现的适用于浏览器的多用途文本编辑器。它专门用于代码编辑,并附带多种语言模式和插件,实现更高级的编辑功能。更多详情请访问 CodeMirror

安装

安装此扩展的首选方式是通过 composer

安装方法如下:

$ php composer.phar require conquer/codemirror "*"

或者添加以下内容到你的 composer.json 文件的 require 部分:

"conquer/codemirror": "*"

使用

use conquer\codemirror\CodemirrorWidget;

$form->field($model, 'code')->widget(
    CodemirrorWidget::className(),
    [
        'preset'=>'php',
        'options'=>['rows' => 20],
    ]
);

你可以使用现成的预设,也可以创建自己的。为此,指定你的预设文件夹。

use conquer\codemirror\CodemirrorWidget;

$form->field($model, 'code')->widget(
    CodemirrorWidget::className(),
    [
        'presetsDir'=>'/path_to_your_presets',
        'preset'=>'sql',
    ]
);

通常,你可以通过直接指定属性来定制小部件。

use conquer\codemirror\CodemirrorWidget;
use conquer\codemirror\CodemirrorAsset;

$form->field($model, 'code')->widget(
    CodemirrorWidget::className(),
    [
        'assets'=>[
            CodemirrorAsset::MODE_CLIKE,
            CodemirrorAsset::KEYMAP_EMACS,
            CodemirrorAsset::ADDON_EDIT_MATCHBRACKETS,
            CodemirrorAsset::ADDON_COMMENT,
            CodemirrorAsset::ADDON_DIALOG,
            CodemirrorAsset::ADDON_SEARCHCURSOR,
            CodemirrorAsset::ADDON_SEARCH,
        ],
        'settings'=>[
            'lineNumbers' => true,
            'mode' => 'text/x-csrc',
            'keyMap' => 'emacs'
        ],
    ]
);
JavaScript

要从 JavaScript 访问 CodeMirror 实例,你可以使用 CodeMirror.instances[] 。示例

    var instanceName = document.getElementById('textarea-id').dataset.codeMirror;

    var cm = CodeMirror.instances[instanceName];

    var code = cm.getValue();   // Get the current editor content
    /*
        cm.save();              // Copy the content of the editor into the textarea
        cm.toTextArea();        // Remove the editor, and restore the original textarea
    */

许可证

conquer/codemirror 在 MIT 许可证下发布。有关详细信息,请参阅附带文件 LICENSE.md