Skip to content

Instantly share code, notes, and snippets.

@sogaiu
Created May 12, 2025 07:28
Show Gist options
  • Save sogaiu/171e2e8425d71db00b579f389ae1cd5b to your computer and use it in GitHub Desktop.
Save sogaiu/171e2e8425d71db00b579f389ae1cd5b to your computer and use it in GitHub Desktop.
examples of pretty printing janet data
(comment
(def src-0
``
@{main @{:doc "(main)\n\n" :source-map ("dogs.janet" 11 1) :value <function main>} odin @{:source-map ("dogs.janet" 1 1) :value @{:name "Odin" :type "German Shepherd"}} people @{:source-map ("dogs.janet" 4 1) :value ({:dogs (@{:name "Skadi" :type "German Shepherd"} @{:name "Odin" :type "German Shepherd"}) :name "ian"} {:dogs (@{:name "Skadi" :type "German Shepherd"} @{:name "Odin" :type "German Shepherd"}) :name "kelsey"} {:dogs () :name "jeffrey"})} skadi @{:source-map ("dogs.janet" 2 1) :value @{:name "Skadi" :type "German Shepherd"}} :current-file "dogs.janet" :macro-lints @[] :source "dogs.janet"}
``)
(fmt src-0)
# =>
@``
@{main @{:doc "(main)\n\n"
:source-map ("dogs.janet" 11 1)
:value <function main>}
odin @{:source-map ("dogs.janet" 1 1)
:value @{:name "Odin"
:type "German Shepherd"}}
people @{:source-map ("dogs.janet" 4 1)
:value ({:dogs (@{:name "Skadi"
:type "German Shepherd"}
@{:name "Odin"
:type "German Shepherd"})
:name "ian"}
{:dogs (@{:name "Skadi"
:type "German Shepherd"}
@{:name "Odin"
:type "German Shepherd"})
:name "kelsey"}
{:dogs ()
:name "jeffrey"})}
skadi @{:source-map ("dogs.janet" 2 1)
:value @{:name "Skadi"
:type "German Shepherd"}}
:current-file "dogs.janet"
:macro-lints @[]
:source "dogs.janet"}
``
(def src-1
``
@{main @{:doc "(main)\n\n" :val "hello"} odin @{:value @{:name "Odin" :type "German Shepherd" :smell "good"}} skadi @{:value @{:name "Skadi" :type "German Shepherd"}} :current-file "dogs.janet" :source "dogs.janet"}
``)
(fmt src-1)
# =>
@``
@{main @{:doc "(main)\n\n"
:val "hello"}
odin @{:value @{:name "Odin"
:type "German Shepherd"
:smell "good"}}
skadi @{:value @{:name "Skadi"
:type "German Shepherd"}}
:current-file "dogs.janet"
:source "dogs.janet"}
``
(def src-2
"{:a 1 :b 2 :c 3}")
(fmt src-2)
# =>
@``
{:a 1
:b 2
:c 3}
``
(def src-3
"{:a {:x 8 :y 9} :b 2 :c 3}")
(fmt src-3)
# =>
@``
{:a {:x 8
:y 9}
:b 2
:c 3}
``
(def src-4
"@{:a 1 :b 2 :c 3}")
(fmt src-4)
# =>
@``
@{:a 1
:b 2
:c 3}
``
(def src-5
"@{:a @{:x 8 :y 9} :b 2 :c 3}")
(fmt src-5)
# =>
@``
@{:a @{:x 8
:y 9}
:b 2
:c 3}
``
(def src-6
"{:a {:x 8 :y {:ant 1 :bee 2}} :b 2 :c 3}")
(fmt src-6)
# =>
@``
{:a {:x 8
:y {:ant 1
:bee 2}}
:b 2
:c 3}
``
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment