j-CloudEditor
- Il fonctionne dans l'IFRAM
- prend en charge plusieurs curseurs (
shift + cmd + arrow-down/up) - prend en charge la recherche du texte sélectionné (
cmd + d) - prend en charge les barres de défilement personnalisées
- Le diff tracker
- Un simple emmet plugin
- Soutenir la collaboration en temps réel
- Code de source : https://github.com/totaljs/editor
- Il utilise l’éditeur : CodeMireau
- très petit code
Configuration :
parent {String}un sélecteur pour le conteneur principal (defaut:auto)autosave {Boolean}reflète automatiquement la valeur de l'éditeur sur le chemin du composant (defaut:true)event {String}Un chemin vers lafunction(name, value)clickerrorsshortcutcursorContient la position du cursorchangecontient des changements partiels pour la collaboration en temps réel (config.realtimedoit êtretrue)
contextmenu {String}Un chemin vers lafunction(opt)realtime {Boolean}permet d'envoyer des modifications en temps réel à la méthodeevent(nom de l'événement estchange)keywords {String}Les mots-clés dans la forme d’e.g.ID,PATHminheight {Number}optionnel, une hauteur minimale (defaut:0)margin {Number}en option, une marge verticale (par défaut :0)- NEW:
url {String}facultatif, un lien vers l'éditeur (défaut://cdn.componentator.com/editor/1.min.html)
Méthode :
component.insert('some text')component.replace('text', 'newvalue')component.search('text', callback(output))component.select(from, [to])component.goto(pos)component.focus()component.save(callback(value))component.marker(name, [from], [to], [color])ajoute + modifie (avecfrom) et supprime (sans argentfrom)component.change(changes)pour la collaboration en temps réel (changespeut être généré dans la fonctionconfig.event)component.clear()efface toutes les modificationscomponent.replaceselections(selections)component.replaceselection(selection)component.replacerange(value, from, [to])component.command(cmd)exécute la méthodecodemirror.execCommand()component.exec(a, [b], [c])exécute la méthodedocument.execCommand(a, b, c)
Important:
Les arguments from, to, pos doivent être sous la forme : { line: Number, ch: Number }.
Utilisez-le avec <ui-component name="cloudeditor">. Lorsque le composant n'est pas encore chargé, jComponent le télécharge lors de la première utilisation depuis l'adresse dans DEF.fallback (le CDN Componentator par défaut). Auteur : Peter Širka. Source : le référentiel de composants Componentator, licence MIT.
<ui-component name="LAZY menu"></ui-component>
<div style="width:600px;height:200px;border:1px solid #E0E0E0">
<ui-component name="cloudeditor" path="editormodel" config="contextmenu:editor_contextmenu;event:editor_event;realtime:1"></ui-component>
</div>
<br />
<div style="width:600px;height:200px;border:1px solid #E0E0E0">
<ui-component name="cloudeditor" path="editormirrored" config="readonly:1;$id:mirrored"></ui-component>
</div>
<div class="clearfix"></div>
<script>
var editorbody = '\n\n<h1>HELLO WORLD</h1>\n\n';
var editormodel = { mode: 'clientside', body: editorbody, keywords: 'WORLD' };
var editormirrored = { mode: 'clientside', body: editorbody };
function editor_event(type, value) {
switch (type) {
case 'change':
SETTER('#mirrored/change', value);
break;
case 'cursor':
SETTER('#mirrored/marker', 'Peter', value.from);
break;
}
SETTER('!menu/hide');
}
function editor_contextmenu(obj) {
var opt = {};
opt.x = obj.x;
opt.y = obj.y;
opt.items = [];
opt.items.push({ id: '1', name: 'Test item 1' });
opt.items.push({ id: '2', name: 'Test item 2' });
opt.items.push({ id: '3', name: 'Test item 3' });
opt.items.push({ id: '4', name: 'Test item 4' });
opt.callback = function(selected) {
console.log(selected);
};
SETTER('menu/show', opt);
}
</script>