Colorazione diversa per proprietà e valori di Json


0

Usando N ++ per ispezionare rapidamente Json, ho il seguente problema:
Tutto è grigio. Proprietà / valori di testo.

Ma in N ++ Style Configurator , non esiste un'opzione per il valore e il nome della proprietà. È solo una citazione singola o doppia citazione.

Esiste un linguaggio o una configurazione che fornirà una colorazione più colorata per Json?

Esempio:

Per il seguente Json:

{"description":{"title":"Contiguous U.S., Average Temperature","units":"Degrees Fahrenheit","base_period":"1901-2000"},"data":{"189512":{"value":"50.34","anomaly":"-1.68"},"189612":{"value":"51.99","anomaly":"-0.03"},"189712":{"value":"51.56","anomaly":"-0.46"}}}

N ++ darà questa rappresentazione: enter image description here

I tuoi occhi devono cercare il : quindi tornare indietro per leggere il nome della proprietà. Soprattutto su dati multilinea (rientro con rientro e ritorno automatico in modo da non scorrere orizzontalmente all'infinito).

Mentre mi aspettavo quel tipo di risultato (Do not min the dark theme) da quicktype.io

enter image description here


Un problema che non ho con Xml quando il testo esce dal Tag.
Drag and Drop

Clic Language - & gt; J - & gt; JSON. Dovrebbe auto applicare gli stili al tuo documento
Burgi

@Burgi, beh, sto parlando del configuratore di stile, ho pensato che fosse ovvio che lo stile era già selezionato. Ma è il mio male l'ultima riga può essere letta come "Esiste un linguaggio che fornirà colorazione per Json?". E la risposta sarà JSON. Permettimi di modificare un'immagine per mostrarti cosa intendo con più colori e colori
Drag and Drop

Quando chiedo altro linguaggio è perché c'è stato un tempo in cui la colorazione da un linguaggio non correlato ha dato un risultato migliore su qualche codice di blocco. Lambda C # e Java vengono in mente. Ma era nel 2008.
Drag and Drop

Posso chiedere perché il voto negativo? So che N ++ non è Vim o EDI. Ma l'analisi semplice e l'evidenziazione non sono un'evoluzione elevata. La domanda non è legittima ("Non devi farlo, copia il passato nel tuo altro editor che fa il punto giusto")? Per base - nessuna ricerca (usa la luce standard higtlight)?
Drag and Drop

Risposte:


0

Il Scintilla componente utilizzato da Notepad ++ è responsabile dei lexer per l'evidenziazione della sintassi. Apparentemente, il progettista di quel lexer non ha deciso di distinguere tra nomi e valori delle proprietà, anche se sembra una buona idea. Per dare un suggerimento per quel miglioramento nel lexer, dovresti andare a vedere se il più recente Scintilla JSON Lexer ha già incorporato quel cambiamento, e se no, inserisci un richiesta con il progetto Scintilla. Se il cambiamento è già presente, o se Scintilla rilascia una nuova versione con quella correzione, dovresti farlo chiedi a Notepad ++ developer aggiornare Scintilla per includere quella correzione. (E l'ultima volta NPP aggiornato è Scintilla era da 3.34 a 3.56 - circa 4 anni fa - rispetto alla Scintilla 4.1.3 più recente

Soluzione alternativa # 1: cambia il Style Configurator & gt; JSON & gt; Operatore colore per avere qualcosa che spicca tra la proprietà e il valore - magari con uno sfondo giallo brillante o qualcosa del genere - per rendere più facile ai tuoi occhi trovare il : separatori, almeno ...

Soluzione n. 2: in Forum della comunità , Claudia Frank aveva lavorato su un lexer basato su PythonScript che avrebbe consentito linguaggi definiti dall'utente con espressioni regolari, piuttosto che il semplicistico UDL 2.1. La mia collezione di link al suo sforzo è a https://notepad-plus-plus.org/community/topic/16164/bug-javascript-multiline-character-not-understood-by-notepad/11 . Con qualche sforzo, potresti essere in grado di definire la regex necessaria per analizzare JSON nel modo che preferisci.


aggiornare : Potresti riuscire a ottenere un UDL (User Defined Language) per fare ciò che desideri. Ne ho trovato uno veloce che avrà le differenze di evidenziazione che hai descritto. Come un effetto collaterale sgradevole, rompe la piegatura (quindi non può crollare { ... } accoppiamenti. (Ho provato a impostare le opzioni di piegatura UDL, ma le pieghe annidate non funzionavano correttamente, almeno al primo tentativo)

  • Lingua & gt; Definisci la tua lingua ... : Creare nuovo = JsonPropertyValues.
  • Operatori e amp; Delimitatori
  • Operatori 1 = , : " ' { }, STYLER = imposta i colori che vuoi per la punteggiatura
  • Delimitatore 1 stile = APERTO: :, Chiudi = ((EOL)), STYLER = imposta il colore che vuoi che il lato VALUE sia; impostato Nesting: permettere Operators 1
  • Delimitatore 2 stile = APERTO: ", Chiudi = ", STYLER = imposta il colore per il lato sinistro (proprietà) quando tra virgolette, non è necessario alcun nidificazione
  • Delimitatore 3 stile = APERTO: ', Chiudi = ', STYLER = imposta il colore per il lato sinistro (proprietà) quando è in virgolette singole, non è necessario alcun nidificazione

Potresti voler impostare Nesting: includere Numbers su tutte quelle voci STYLER sopra. E poi vai al Commento & amp; Numero scheda e definire lo STYLER per impostare la colorazione per i numeri pure.

È possibile impostare il Ext scatola a json, se vuoi che si applichi a tutti .JSON file, o potresti semplicemente applicare manualmente Lingua & gt; JsonPropertyValues a qualsiasi JSON che si desidera analizzare in questo modo.

Ad ogni modo, questo è un punto di partenza ragionevole, basato su ciò che hai descritto; sentiti libero di personalizzarlo o di espanderlo oltre le funzionalità incluse.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.