README ¶
q
q is a better way to do print statement debugging.
Type q.Q
instead of fmt.Printf
and your variables will be printed like this:
Why is this better than fmt.Printf
?
- Faster to type
- Pretty-printed vars and expressions
- Easier to see inside structs
- Doesn't go to noisy-ass stdout. It goes to
$TMPDIR/q
. - Pretty colors!
Basic Usage
import "github.com/y0ssar1an/q"
...
q.Q(a, b, c)
// Alternatively, use the . import and you can omit the package name.
// q only exports the Q function.
import . "github.com/y0ssar1an/q"
...
Q(a, b, c)
For best results, dedicate a terminal to tailing $TMPDIR/q
while you work.
Install
go get -u github.com/y0ssar1an/q
Put these aliases in your shell config. Typing qq
will then start tailing
$TMPDIR/q
.
alias qq="$(echo "$GOPATH" | cut -d : -f 1)/src/github.com/y0ssar1an/q/q.sh"
alias rmqq="rm $TMPDIR/q"
Editor Integration
Sublime Text
cp $GOPATH/src/github.com/y0ssar1an/q/qq.sublime-snippet Packages/User/qq.sublime-snippet
Atom
Navigate to your snippets.cson
file by either opening ~/.atom/snippets.cson
directly or by selecting the Atom > Open Your Snippets
menu. You can then add
this code snippet to the bottom and save the file:
'.source.go':
'q log':
'prefix': 'qq'
'body': 'q.Q($1)'
VS Code
In the VS Code menu go to Preferences
and choose User Snippets
. When the
language dropdown menu appears select GO
. Add the following snippet to the
array of snippets.
"q.Q": {
"prefix": "qq",
"body": [
"q.Q($1)"
],
"description": "Quick and dirty debugging output for tired Go programmers"
}
vim/Emacs
TBD Send me a PR, please :)
Haven't I seen this somewhere before?
Python programmers will recognize this as a Golang port of the
q
module by zestyping.
Ping does a great job of explaining q
in his awesome lightning talk from
PyCon 2013. Watch it! It's funny :)
FAQ
Why q.Q
?
It's quick to type and unlikely to cause naming collisions.
Is q.Q()
safe for concurrent use?
Yes.
Documentation ¶
Overview ¶
Package q provides quick and dirty debugging output for tired programmers.
q.Q() is a fast way to pretty-print variables. It's easier than typing fmt.Printf("%#v", whatever). The output will be colorized and nicely formatted. The output goes to $TMPDIR/q, away from the noise of stdout.
q exports a single Q() function. This is how you use it:
import "github.com/y0ssar1an/q" ... q.Q(a, b, c)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
This section is empty.