En utilisant winston pour la journalisation node.js, j’obtiens des fichiers journaux JSON. Un fichier journal dans cette veine est simplement une séquence d'objets JSON (délimités par une nouvelle ligne). C'est parfait pour interroger les journaux et les traiter comme des données de première classe!
Cependant, Sublime
et gedit
(du moins les versions que j'utilise sous Ubuntu, sublime 2 et gedit 3.6.2), mettent en évidence json - ils utilisent la même couleur pour les clés et les valeurs, ce qui rend le forage de journaux assez pénible et vraiment impossible de passer d'une manière humaine à distance.
Le chrome extensions
existant pour la mise en surbrillance de json n'est pas utile ici non plus - ils ne peuvent pas gérer une collection d'objets json et échouent donc à l'affichage de ces fichiers journaux sauf si je les transforme manuellement en tableau dans un objet parent synthétique (ce qui les convertit en json objet). Cela est fastidieux dans le cas de la visualisation d’un fichier journal en cours d’écriture et en général ......
Existe-t-il un outil qui puisse à la fois avaler les fichiers journaux JSON en l'état et mettre en même temps les clés en surbrillance dans une couleur différente de celle des valeurs, de sorte que les journaux JSON conviennent également à l'homme, pas seulement à la machine? C'est une vraie douleur.
Merci!
Découvrez le Neon Color Scheme , disponible via Package Control et Github pour Sublime Text. Les clés et les valeurs sont mises en surbrillance dans différentes couleurs, et il existe différentes couleurs de clé pour différents niveaux.
Divulgation complète: je suis responsable de ce projet, mais je pense vraiment que cela vous aidera - cela m'aide certainement lorsque je travaille avec des fichiers JSON à plusieurs niveaux, comme celui présenté ci-dessus.
Si vous aimez le thème par défaut de Monkai, jetez un œil à MonokaiJSON + Theme! Il prend en charge les chaînes, les dictionnaires, les tableaux, etc.
J'ai modifié le thème Twilight original pour ajouter des règles pour un JSON plus joli. C'est une version modifiée de la réponse de @MattDMo et elle a les mêmes couleurs de clé différentes pour différents niveaux. Vous pouvez l'obtenir ici
https://github.com/shaunakv1/twilight-tmTheme-better-json-highlight
Voici à quoi ressemble JSON:
En mélangeant les réponses de (Allen Bargui } _ et de MattDMo , vous pouvez modifier la couleur des clés/valeurs imbriquées en ajoutant simplement plus de dict en spécifiant la profondeur du code en ajoutant un meta
après le source.json Mot.
Localisez le fichier de thème en accédant à Préférences> Parcourir les packages, puis dans le dossier Color Scheme - Default. Modifiez-le en ajoutant ces lignes:
<dict>
<key>name</key>
<string>Json Keys - 1 deep</string>
<key>scope</key>
<string>source.json meta meta.structure.dictionary.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FF0000</string> <!-- your keys color -->
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON Values - 1 deep</string>
<key>scope</key>
<string>source.json meta meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#00FF00</string> <!-- your custom color -->
</dict>
</dict>
<dict>
<key>name</key>
<string>Json Keys</string>
<key>scope</key>
<string>source.json meta.structure.dictionary.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FF0000</string> <!-- your keys color -->
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON Values</string>
<key>scope</key>
<string>source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#00FF00</string> <!-- your custom color -->
</dict>
</dict>
Il est important de ajouter les plus profondes AVANT le reste, car Sublime sélectionnera la première occurrence correspondante. J'ai supposé que l'ajout de plus de meta
fonctionnerait pour des profondeurs plus grandes, mais en réalité ça ne l'a pas été… Mais ça a fait l'affaire pour la profondeur 1 au moins.
en regardant un fichier json dans SublimeText, j'ai réalisé que les clés et les valeurs avaient différentes portées. il est donc très simple de personnaliser votre jeu de couleurs et d’ajouter une couleur différente pour les clés et les valeurs.
les clés ont la portée de source.json meta.structure.dictionary.json string.quoted.double.json
tandis que les valeurs ont source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json
donc, si vous ajoutez cet extrait au bas de vos règles de jeu de couleurs, vous devriez les voir de différentes couleurs:
<dict>
<key>name</key>
<string>Json Keys</string>
<key>scope</key>
<string>source.json meta.structure.dictionary.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FF0000</string> <!-- your keys color -->
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON Values</string>
<key>scope</key>
<string>source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#00FF00</string> <!-- your custom color -->
</dict>
</dict>
Outre les autres bonnes réponses publiées, une autre solution très simple et très élégante au problème consiste à utiliser le thème Boxy Theme . La syntaxe est mise en surbrillance par défaut pour JSON lorsque vous utilisez l'un des schémas de couleurs inclus.
Installez à l’aide de Package Control , où Boxy est répertorié sous le nom Boxy Theme
.
Command Palette
via Command+Shift+P (mac) / Ctrl+Shift+P (win)
Package Control: Install Package
Boxy Theme
et appuyez sur Enter
Package Control: Satisfy Dependencies
Activez le thème et le jeu de couleurs de l'interface utilisateur à l'aide des commandes fournies par le thème:
Command Palette
via Command+Shift+P (mac) / Ctrl+Shift+P (win)
Boxy Theme: Activation
ou Boxy Theme: Configuration
Enter
Thème Boxy avec Boxy Tomorrow Jeu de couleurs appliqué. Les variations de couleur sont disponibles 10 niveaux de profondeur: