Le plugin Ace intègre l'éditeur de code Ace dans MODx Revolution de manière simple et rapide.
Caractéristiques
- Il est très simple. Vraiment.
- Fonctionne de suite avec une configuration par défaut.
- Utilise la dernière version 1.4.1 de Ace (vous voulez une autre version? Modifiez l'URL !)
- Charge la bibliothèque Ace (et ses extensions) depuis le CDNJS (configurable)
- CTRL-D pour dupliquer (configurable)
- Complétion automatique sur CTRL-SPACE (configurable)
- Mise en évidence de la syntaxe MODX
- Intégration d'Emmet (configurable) Documentation
- Support plein écran (F11 lorsque le curseur est dans l'éditeur)
- Tout surligneur syntaxique pour vos chunk, snippet, TV, ressource!
- Définissez un type de MIME spécifique pour vos chunck (comme un shebang)
- Par exemple, text/x-sass doit avoir la syntaxe SASS en surbrillance
- Tout surligneur syntaxique pour vos TVs!
- Définissez un type de MIME spécifique pour vos chunck directement dans la description, par exemple text/html pour avoir un surlignage syntaxique HTML
- Mise en retrait et retrait automatique
- Rechercher et remplacer par des expressions régulières
- Mise en évidence des parenthèses correspondantes
- Affiche les caractères cachés
- Glisser-déposer du texte à l'aide de la souris
- Enveloppe de la ligne
- Pliage des codes
- Multiples curseurs et sélections
- Vérificateur de syntaxe en direct
- Couper, copier et coller
Installation
Aller dans le gestionnaire d'extention, installer Ace il fait parti des extra les plus utilisé.
Vous pouvez affiner sa configuration en allant dans les paramètre du système.
Propriétés du plugin Ace
Le plugin offre plusieurs propriétés utiles.
- Thème : nom du thème de l'éditeur (vous pouvez les tester tous ici : )
- par défaut : chrome
Thèmes lumineux : chrome, nuages, crimson_editor, aube, dreamweaver, éclipse, github, iplastic, solarized_light, textmate, demain, xcode, kuroir, katzenmilch, sqlserver
Thèmes sombres : ambiance, chaos, nuages_midnight, dracula, cobalt, gruvbox, gob, idle_fingers, kr_theme, merbivore, merbivore_soft, mono_industriel, monokai, pastel_on_dark,
solarized_dark, terminal, tomorrow_night, tomorrow_night_blue, tomorrow_night_bright, tomorrow_night_eighties, twilight, vibrant_ink
- SoftWraps : Définir les soft wraps de l'éditeur (off, libre, printMargin ou un certain nombre de colonnes)
- par défaut : off
- FontSize : Définir la taille de la police de l'éditeur (en px, em, rem ou %)
- par défaut : 12px
- SoftTabs : Activer les tabulations souples (4 espaces) au lieu des tabulations dures (caractère de tabulation)
- par défaut : true
- ReplaceCTRLDKbdShortcut : Remplacez le raccourci clavier CTRL-D (ou CMD-D) pour effectuer une action plus sensée, qui consiste à dupliquer la ligne ou la sélection courante (au lieu de supprimer, ce qui est le comportement par défaut)
- par défaut : true
- Autocomplétion : Activer l'auto-complétion : aucune, de base (afficher sur CTRL-Space) ou en direct (afficher sur la frappe). Notez que "ext-language_tools.js" doit être disponible à côté de ace.js (sera récupéré à partir de /ext-language_tools.js)
- par défaut : de base
- SettingsMenu : Ajouter un menu de paramètres accessible avec CTR-Q (ou CMD-Q)
- par défaut : false
Notez que "ext-settings_menu.js" doit être disponible à côté de ace.js (sera récupéré à partir de /ext-settings_menu.js)
- spellcheck : Activer la vérification de l'orthographe
- par défaut : false
Notez que "ext-spellcheck.js" doit être disponible à côté de ace.js (sera récupéré sur /ext-spellcheck.js)
- EmmetPath : URL ou chemin d'accès au fichier Emmet js
- par défaut : https://cloud9ide.github.io/emmet-core/emmet.js
Pour plus d'informations, voir ici
- Emmet : Activer Emmet
- par défaut : false
Notez que le fichier Emmet JS doit être chargé en premier (voir EmmetPath, il doit être correctement paramétré)
Notez que "ext-emmet.js" doit être disponible à côté de ace.js (sera récupéré sur /ext-emmet.js)
Il est recommandé de désactiver la propriété ReplaceCTRLDKbdShortcut lorsque vous utilisez Emmet (car elle remplace un raccourci Emmet CTRL-D)
- AcePrintMarginColumn : Position de la colonne de marge d'impression
- par défaut : 0
Définir la position des caractères de la marge d'impression (utile par exemple si vous souhaitez coder avec 80 caractères de large maximum)
Régler sur 0 pour le désactiver complètement
- ChunkDetectMIMEShebang : Activez la détection MIME de type "shebang-style" pour les morceaux (dans la description ou dans la première ligne du contenu du morceau).
- par défaut : true
Ceci est particulièrement utile si votre morceau contient directement du JS, ou du SASS, ou quoi que ce soit d'autre que du HTML...
Voir le chapitre "Détection MIME pour les morceaux" ci-dessous.
- ToggleFullScreenKeyBinding : Liaison par clé utilisée pour basculer l'éditeur en plein écran (exemple : Ctrl-P ou F11 ou tout ce que vous voulez)
- par défaut : F11
Voir ces exemples contraignants pour la syntaxe clé.
- ToggleFullScreenShowButton : Afficher le bouton de basculement en plein écran (en haut à droite de l'éditeur)
- par défaut : true
- EditorHeight : Hauteur de l'éditeur (en px, em, rem ou %)
- par défaut : (utilise la hauteur par défaut de l'éditeur)
- EditorTVHeight : Hauteur de l'éditeur pour les variables du modèle - a priorité sur la valeur de EditorHeight (en px, em, rem ou %)
- par défaut : (utilise la hauteur par défaut de l'éditeur)
Cartographie des extensions de fichiers
- Voici comment une extension de fichier est mise en correspondance avec son type MIME :
- .tpl: text/html
- .htm: text/html
- .html: text/html
- .css: text/css
- .scss: text/x-scss
- .sass: text/x-sass
- .less: text/x-less
- .svg: image/svg+xml
- .xml: application/xml
- .xsl: application/xml
- .js: application/javascript
- .json: application/json
- .php: application/x-php
- .sql: text/x-sql
- .txt: text/plain
- .htaccess: application/x-extension-htaccess
- .coffee: application/vnd.coffeescript
- .litcoffee: application/vnd.coffeescript
- .ts: application/x-typescript
- .ini: text/x-ini
- .ejs: text/x-ejs
- .md: text/markdown
- .pl: application/x-perl
Détection MIME pour les TV's
Par défaut, les TV's ne seront pas visualisées avec Ace.
Cependant, si vous avez une TV de type <textarea>, vous pouvez définir un type MIME dans sa description pour activer l'éditeur Ace pour cette TV.
- Detected MIME values are
- text/x-smarty
- text/html
- application/xhtml+xml
- text/css
- text/x-scss
- text/x-sass
- text/x-less
- image/svg+xml
- application/xml
- text/xml
- text/javascript
- application/javascript
- application/json
- text/x-php
- application/x-php
- text/x-sql
- text/x-markdown
- text/plain
- text/x-twig
Détection MIME pour les Chunks (fonction ChunkDetectMIMEShebang)
Par défaut, les chunck sont en HTML et ils sont mis en évidence comme tels. Cependant, vous pouvez vouloir stocker d'autres types de données dans un morceau et souhaiter une mise en évidence appropriée. Par exemple, vous pourriez vouloir stocker directement du code Javascript, css, svg ou SASS, ou LESS, etc..
La propriété ChunkDetectMIMEShebang (activée par défaut) vous permettra de spécifier, si nécessaire, un type de MIME spécifique pour mettre en valeur votre chunk.
- Les valeurs MIME détectées sont
- text/x-smarty
- text/html
- application/xhtml+xml
- text/css
- text/x-scss
- text/x-sass
- text/x-less
- image/svg+xml
- application/xml
- text/xml
- text/javascript
- application/javascript
- application/json
- text/x-php
- application/x-php
- text/x-sql
- text/x-markdown
- text/plain
- text/x-twig
Les exemples ci-dessous concernent un chunck qui est utilisé pour stocker du contenu SASS (le type correspondant est <li>text/x-sass</li> ou <li>text/x-scss</li>).
Vous pouvez spécifier cette valeur directement dans votre chunck, sur la première ligne (généralement à l'intérieur d'un commentaire):
Vous pouvez également préciser cette valeur dans la description du chunck.
Intégrer ACE à vos TVs
Ce plugin ajoute ACE a vos TVs.
- Installation
- Creer le plugin après avoir installé ACE.
- entrez le code
/* Add ACE code editor to your textarea TVs. Author: evd (hello@evd.me) */ //Applique Ace au Tvs 3,4,5,7 qui doivent être en type d'entrée TexteArea $tvs = array( array( 'id' => 3, 'height' => '600px', 'mimeType' => 'text/html' ), array( 'id' => 4, 'height' => '200px', 'mimeType' => 'application/json' ), array( 'id' => 5, 'height' => '350px', 'mimeType' => 'application/json' ), array( 'id' => 7, 'height' => '600px', 'mimeType' => 'text/html' ) ); if ($modx->event->name != 'OnDocFormRender') { return; } if ($modx->getOption('which_element_editor', null, 'Ace') !== 'Ace') { return; } $script = ''; foreach ($tvs as $tv) { $id = is_array($tv) ? $tv['id'] : $tv; $height = isset($tv['height']) ? $tv['height'] : ''; $mimeType = isset($tv['mimeType']) ? $tv['mimeType'] : ''; $tvId = '#tv' . $id; $setHeightScript = !empty($height) ? 'this.style.height="' . $height . '";' : ''; $aceScript = 'MODx.ux.Ace.replaceTextAreas([this], "' . $mimeType . '");'; $script .= 'Ext.each(Ext.query("' . $tvId . '"), function() { ' . $setHeightScript . $aceScript . '});' . PHP_EOL; } if ($script) { $modx->controller->addHtml(''); }
- Cocher OnDocRender
- Modifier les parametres des TVs a affecté