10 comments

[ 2.8 ms ] story [ 27.3 ms ] thread
Could someone explain how {@foo} = bar compiles into this.foo = bar.foo;?
"@" is an alias for "this.", so "@foo" is the same as "this.foo".

{foo} = bar is using destructuring assignment, it means, take property "foo" of bar and put it in variable foo, so

    {foo} = bar
compiles to

    var foo = bar.foo;
Thanks! It was the destructuring part that I wasn't understanding right away.
No problem! CoffeeScript's destructuring is really nice, IMO:

    [first, rest..., last] = someArray

    professions =
      programmer:
        studyTime: "5 years"
        salary: 10000
      salesman:
        studyTime: "2 years"
        salary: 15000
    
    {programmer: {salary}} = professions
    
    console.log "A programmer's salary is %s", salary
EDIT: Fixed bug, "developer" should be "programmer".

   {developer: {salary}} = professions
Should have been renamed to "Some Vim tricks for CoffeeScript writing".
I followed the link to the Syntastic plugin and can't get it to work. The version on github doesn't have the SyntasticEnable function for some reason, so I used the package on vim.org. I added the statusline changes and SyntaxEnable php to my vimrc, still does absolutely nothing. I'm not seeing anything different on my statusline when saving files and the :Errors function doesn't show anything either. Ideas?
sadly, this could also be called "why it is difficult to write CoffeScript efficiently without some vim plugins"
Manually compiling your CoffeeScripts just seems archaic. Is there no equivalent to Sinatra AssetPack for node.js?

Frankly, this is not an efficient workflow for CoffeeScript.