Hello,

I'm futzing with our docs and noticed that the authors have different 
indentation styles for multi-line Gremlin traversals.

I think we should converge on a similar style? ………

And guess what, I think my style is the best.

g.V().out("knows").out("attended").     // <1>
  group().by("state").by()              // <2>
     select("Vermont").unfold()         // <3>
  in("attended").has("gpa")             // <4>
  order()                               // <5>
    by("age",decr).                     // <6>
    by("gpa",incr).
  limit(10).values("name")              // <7>

Key features:

        1. A bunch of in().outs().filters().etc. on a single line until it gets 
too long.
        2. If you bust a barrier (reducer, aggregator, etc.), new line.
        3. When a next line component is an "add on" to the previous line 
component, 2 space indent.
                - that select() is "almost like" a by().
                - unfold() is a dirty sucky you just tack on the end and don't 
make it too prominent as its just data formatting.
        4. Back to a series of in().outs().etc., new line.
        5. Another barrier -- new line. 
        6. If there is only one by()-modulator (or a series of short ones), 
keep it on one line. If its complex, each by() is a line.
        7. Back to a series outs().filters().maps().etc.

In summary, 

        1. 2 space indent. 
        2. Nothing is on equal spacing with "g."
        3. Barriers form line breaks.
        4. by()-modulators form indented "paragraphs."
        5. Standard filters.maps.flatmaps are single line until it gets 
unwieldy.

Thoughts?,
Marko.

http://markorodriguez.com

Reply via email to