chrisreedio/filament-monaco-editor
最新稳定版本:v1.0.0-beta.1
Composer 安装命令:
composer require chrisreedio/filament-monaco-editor
包简介
This is my package filament-monaco-editor
README 文档
README
Filament v5 form field integration for Monaco Editor, including dedicated Blade syntax highlighting.
Compatibility
- PHP ^8.2
- Filament 5.x
Installation
composer require chrisreedio/filament-monaco-editor
Run the package build to generate frontend assets:
cd vendor/chrisreedio/filament-monaco-editor
npm install
npm run build
Publish package config and views (optional):
php artisan vendor:publish --tag="filament-monaco-editor-config" php artisan vendor:publish --tag="filament-monaco-editor-views" php artisan filament:assets
Usage
Use the field directly in your form schema:
use ChrisReedIO\MonacoEditor\Forms\Components\MonacoCodeEditor; MonacoCodeEditor::make('template') ->language('blade') ->theme('vs-dark') ->height('24rem') ->options([ 'tabSize' => 2, 'insertSpaces' => true, ]);
Blade, PHP, and custom heights:
MonacoCodeEditor::make('blade_view') ->language('blade') ->theme('vs-dark'); MonacoCodeEditor::make('php_code') ->language('php') ->theme('vs-light') ->minHeight(320) ->readonly();
You can also use the package entrypoint facade for concise creation:
use MonacoEditor; MonacoEditor::blade('blade_view')->height('20rem'); MonacoEditor::php('php_payload')->readonly();
Fluent API
language(string $language)theme(string $theme)minHeight(string|int $height)/height(string|int $height)readonly(bool $condition = true)options(array $options)(merged into the final Monaco options)getConfig()/getMonacoConfig()for Alpine payload
Configuration
Publish and customize config/monaco-editor.php:
return [ 'default_language' => 'blade', 'default_theme' => 'vs-dark', 'default_min_height' => '16rem', 'defaults' => [ 'fontSize' => 14, 'lineNumbers' => 'on', 'scrollBeyondLastLine' => false, 'minimap' => ['enabled' => false], ], 'blade' => [ 'keywords' => [ 'if', 'elseif', 'else', 'endif', 'foreach', 'endforeach', 'for', 'endfor', 'while', 'endwhile', 'php', 'endphp', 'csrf', 'method', 'can', 'endcan', 'auth', 'guest', 'unless', 'endunless', ], 'directives' => [ 'if', 'elseif', 'else', 'endif', 'foreach', 'endforeach', 'section', 'endsection', ], 'patterns' => [ ['/\$[A-Za-z_][A-Za-z0-9_]*/', 'variable'], ], 'delimiters' => [ 'output' => ['{{', '}}'], 'raw' => ['{!!', '!!}'], 'comment' => ['{{--', '--}}'], ], ], ];
Blade highlighting
bladelanguage is registered only whenlanguage('blade')is used.- Tokens include output/raw/comment delimiters and directives (
@if,@foreach, etc.). - You can add custom syntax patterns via
blade.patterns.
Build artifacts consumed by Filament
resources/dist/components/monaco-code-editor.jsresources/dist/monaco-code-editor.css
The package service provider wires these assets through Filament Asset registration and script data.
Development
npm run build
composer test
Credits
- Chris Reed
- Inspired by the broader Monaco ecosystem
License
This package is released under the MIT license.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 5
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-04-16