cacko / yii2-widget-monaco
Yii2 widget for Monaco Editor
Fund package maintenance!
cacko
Installs: 15
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.4.14
- ext-fileinfo: *
- npm-asset/monaco-editor: 0.33.0
- scssphp/scssphp: ^1.4
- yiisoft/yii2: ~2.0.41
Requires (Dev)
- clean/phpdoc-md: ^0.19.1
README
Simplifies adding Monaco Editor if you are screwed having to use Yii2 with its amazing jQuery inhericance.
Install
composer require cacko/yii2-widget-monaco
Demo
Sorta demo and playground - https://yii.cacko.net/monaco/widget.
Usage
Options
- editorConfig - generally you can pass every option from the API which will override any crap you put before
Editor
with ActiveForm:
use Cacko\Yii2\Widgets\MonacoEditor\Widget\Editor as MonacoEditor; <?= $form->field($model, 'script')->widget(MonacoEditor::class)->label(t('Code')) ?>
as a standalone widget
use Cacko\Yii2\Widgets\MonacoEditor\Widget\Editor as MonacoEditor; <?= MonacoEditor::widget([ 'model' => $model, 'attribute' => 'script', 'language' => 'javascript', ]) ?>
or without a model
use Cacko\Yii2\Widgets\MonacoEditor\Widget\Editor as MonacoEditor; <?= MonacoEditor::widget([ 'name' => 'script', 'language' => 'javascript', ]) ?>
Diff Viewer
use Cacko\Yii2\Widgets\MonacoEditor\Widget\DiffEditor as MonacoDiffEditor; <?= MonacoDiffEditor::widget([ 'model' => $model, 'parent' => $parent, 'attribute' => $attribute, ]) ?>
Persistance
for persisting the editor/diff options not in a cookie, inject your own implementation of Cacko\Yii2\Widgets\MonacoEditor\models\EditorSettingsInterface.
\Yii::$container->set(EditorSettingsInterface::class, MyAmazingShite::class);
there also a controller interface you may want to implement your own controller Cacko\Yii2\Widgets\MonacoEditor\controllers\ControllerInterface
.