XML und JSON in gedit formatieren

Zuerst muss das Plugin „Externe Werkzeuge“ unter BearbeitenPlugins aktiviert werden. Danach über WerkzeugeManage External Tools… den Dialog zum Verwalten externer Werkzeuge öffnen.

Über das Plus-Zeichen unten links ein neues Werkzeug hinzufügen und einen Namen vergeben.

In das Textfeld mit dem Label Bearbeiten folgendes Skript einfügen:

#! /usr/bin/env python
 
import sys
import xml.etree.ElementTree as etree
import traceback

def indent_xml(element):
    def indent(e, lvl=0):
        i = "\n" + lvl * "  "
        if len(e):
            if not e.text or not e.text.strip():
                e.text = i + "  "
            if not e.tail or not e.tail.strip():
                e.tail = i
            for e in e:
                indent(e, lvl + 1)
            if not e.tail or not e.tail.strip():
                e.tail = i
        else:
            if lvl and (not e.tail or not e.tail.strip()):
                e.tail = i

    indent(element)

    class dummy():
        pass

    data = []

    f = dummy()
    f.write = data.append

    etree.ElementTree(element).write(f, encoding="UTF-8")

    return "".join(data)

result = ''
for line in sys.stdin:
	result += line
try:
	result = indent_xml(etree.fromstring(result))
except:
	etype, evalue, etraceback = sys.exc_info()
	traceback.print_exception(etype, evalue, etraceback, file=sys.stderr)
	result = traceback.format_exc()
print result

Außerdem folgende Einstellungen vornehmen:

Speichern Nichts
Eingabe Momentan geöffnetes Dokument
Ausgabe Momentan geöffnetes Dokument

Über das Plus-Zeichen unten links ein neues Werkzeug hinzufügen und einen Namen vergeben.

In das Textfeld mit dem Label Bearbeiten folgendes Skript einfügen:

#! /usr/bin/env python
 
import json
import sys
 
j = json.load(sys.stdin)
print json.dumps(j, sort_keys=True, indent=4)

Außerdem folgende Einstellungen vornehmen:

Speichern Nichts
Eingabe Momentan geöffnetes Dokument
Ausgabe Momentan geöffnetes Dokument
  • Zuletzt geändert: 2019-03-31 15:27