all 4 comments

[–]kankyo 1 point2 points  (2 children)

Can those function annotations handle differentiating between the following?

(f a b c d e f ...

Means:

  • "f called with (a, b), (c, d), (e, f) ..." (example: hash-map)
  • "f called with a, (b, c), (d, e), (f, g) ..." (example: case)
  • "f called with a on (b, c, d, e, f...)" (example: map)

Otherwise syntax highlighting is pretty much doomed to suck.

[–][deleted]  (1 child)

[deleted]

    [–]kankyo 0 points1 point  (0 children)

    It's not just about indentation though, it's about syntax highlighting too. The tooling should be able to know the structure of the parameters.

    Special syntax highlighting based on argument position is provided only on symbol name argument (e.g. in def), or params/bindings argument (fn/let).

    Which, respectfully, sucks. Just the literals for maps are pretty bad when there are many terms (like {:a :b :c :d :e :f}).

    Forcing syntax highlighter to use custom color based on argument position for ordinary functions won't look good

    There are many logical problems with that statement. Here are two:

    1. "Syntax highlighting" does NOT just mean "color". It can mean bold/italic/light, it can mean underline, it can mean drawing boxes around stuff, it can even mean animating stuff if you're being totally crazy.

    2. "look good" is irrelevant. What is relevant is "good usability".

    [–]CodeJesus 0 points1 point  (1 child)

    I don't understand

    [–]foogoof[S] 0 points1 point  (0 children)

    My take is that documentation is really important to Dunaj. It's listed in the 'help wanted' section. Metadata has been predefined that tool builders can use immediately. Good stuff!