/ / Go: formater la chaîne selon les mots clés - aller

Go: formater la chaîne selon les mots clés - go

Dans Go (golang), quelle serait la meilleure façon de formater une chaîne comme celle-ci:

select col1, col2, col3 from foo where col1 > 1000 and col2 < 2000

Pour ça:

SELECT col1, col2, col3
FROM foo
WHERE col1 > 1000
AND col2 < 2000

Serait-il préférable de le diviser, alors si c'est un mot-clé, insérez un "n" devant lui. Et s'il contient ET etc., ajoutez également un onglet ou des espaces devant lui.

Mais que faire si la chaîne était comme ça:

if (1 > 0)
begin
if (2 > 1)
begin
select * from foo
end
end

Ensuite, le formatage devient un peu plus compliqué, car vous auriez besoin d'onglets supplémentaires pour la requête interne après le début. Et le deuxième début devrait également être formaté.

Réponses:

1 pour la réponse № 1

Si vous voulez vraiment faire cela, vous avez besoin d'un analyseur SQL à part entière. Celui-là pourrait fonctionner, mais pour ce que je vois, la sortie n'est pas vraiment ce que vous recherchez. Vous devez donc le modifier vous-même.