I am writing some node command line utilities. They all start with the line:
#!/usr/bin/env node
With Eclipse Juno and the Nodeclipse Node.js plugin, this line of code produces an error as shown:
OK, so #
is not a valid comment character in javascript, but it is a valid character in Linux/UNIX as the shebang of the first line in a file. But how can I set up Eclipse to ignore this error? This is a problem for me because code formatting does not work if you have errors. I have to delete the line. Hit CTRL-SHIFT-F and add the line back.
I have tried a lot of things and researched, but I can't find an answer.
There is a duplicate question out there, eclipse javascript syntax error on hashbang line, but my question has more info.
EDIT:
Looks like there was something added to jshint to allow shebangs in the first line. Maybe I need to update my node-eclipse, or maybe the node-eclipse project needs to update jshint?
- My jshint eclipse integration is version 0.9.6.
- My nodeclipse is 0.4.0.20130519...
I upgraded to
- jshint eclipse integration 0.9.9.20131029
- nodeclipse 0.7.0.20131101
That did not help.
Here is my JSHint version in eclipse:
EDIT 2:
Thanks for the answer VonC. But I think this shows that I do not have a BOM in the file. Any other ideas?
$ od -N 20 -t x1 hello.js
0000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 6e
0000020 6f 64 65 0a
0000024
EDIT 3:
With regard to Paul Verest's answer below, I tried to turn off JSDT validation, but I can't seem to do it. I unchecked "Enable JavaScript semantic validation" (In Eclipse, see Window > Preferences > JavaScript > Validator > Errors/Warnings), but the issue remains.
I am now uninstalling Eclipse Web Developer Tools 3.4.2. That did not seem to help and now my CSS and HTML editors are gone. Now I have tried to disable JSDT validation by following some of the ideas in this SO question, How do I remove javascript validation from my eclipse project?.
So I went into my project properties and went to JavaScript > Validation. I have set everything to "Enabled project specific settings" and unchecked "Errors/Warnings", "JSDOC", etc. Even so, I think validation is still running since the problem persists! My "Builders" Properties only lists the "JSHint Problem Checker" which is enabled. (I am doing all this on a new test project with a hello.js).
EDIT 4, THE ANSWER
It was not easy, but I ended up hacking the .project file in Eclipse. I had this:
<natures>
<nature>org.nodeclipse.ui.NodeNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
I removed the jsdt nature and now the error on the shebang line is GONE! I did this in my test project and my real project. It worked! This is actually pretty helpful since I can format the file and I'm actually running jshint now.