es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eres un traductor español que traduce documentos de TI. Traduce lo siguiente al español. Maneja el salto de línea generado por el editor Monaco.

No he logrado manejar los saltos de línea / nueva línea / retorno de carro en Monaco Editor cuando se procesa con PHP (Laravel). Quiero almacenar el código en MySQL después. Finalmente, el código almacenado se mostrará de todos modos en el editor de Monaco.

¿Cuál es la mejor práctica para hacerlo?

Esto no resuelve el problema. Las etiquetas están rotas.

“ `php
// viene del área de texto
$codigo = preg_replace(‘/\r\n|\r|\n/’, ‘\n’, request()->custom_script);

$this->storeToMySQL($codigo);
“ `

Blade:

`html
<label for="">Custom Script</label>
<div class="monaco-editor-container" style="height: 250px; border: 1px solid rgb(238, 238, 238);"></div>
<textarea name="custom_script" id="monaco_editor_textarea" style="display: none; white-space: pre-line"></textarea>
``javascript
require([“vs/editor/editor.main”], function () {
const monacoEditor = monaco.editor.create(document.querySelector(‘.monaco-editor-container’), {
value: {!! $monacoValue !!},
language: ‘html’,
base: ‘vs’,
fontSize: “14px”,
minimap: { enabled: false },
});

$('#monaco_editor_textarea').val(monacoEditor.getModel().getValue())

monacoEditor.onKeyDown(debounce(e => {
    $('#monaco_editor_textarea').val(monacoEditor.getModel().getValue())
}, 500))

});
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La mejor práctica para manejar los saltos de línea en Monaco Editor al procesar con PHP (Laravel) es utilizar la función preg_replace() para convertir todos los tipos de saltos de línea a un solo tipo (\n). Por ejemplo, $code = preg_replace('/\r\n|\r|\n/', '\n', request()->custom_script);.

    Luego, al almacenar el código en MySQL, simplemente use la variable $code que se ha convertido para tener saltos de línea consistentes.

    Para mostrar el código almacenado en Monaco Editor, pase el código a la opción value del editor. En la plantilla blade, crea un textarea oculto y establece su valor en el valor del modelo del editor usando jQuery. Además, vincula el evento keydown en el editor para actualizar el textarea oculto con el último valor del modelo usando la función debounce().

Comments are closed.