How to Write CoffeeScript Efficiently(esa-matti.suuronen.org)
esa-matti.suuronen.org
How to Write CoffeeScript Efficiently
http://esa-matti.suuronen.org/blog/2011/11/28/how-to-write-coffeescript-efficiently/
5 comments
Should have been renamed to "Some Vim tricks for CoffeeScript writing".
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 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}} = professionsI 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?
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.
Frankly, this is not an efficient workflow for CoffeeScript.
sadly, this could also be called "why it is difficult to write CoffeScript efficiently without some vim plugins"