给混合项目添加JS校验

最近在Eclipse编写一个多语言混合项目,项目本身是Android Project,但是又有大量JS代码,我想知道自己写的JS代码有没有语法错误。除了使用带错误提示的JS编辑器外,还可以对项目添加针对JS的builder和nature,这样项目在编译时能生成带有错误信息的marker,很方便。
做法很简单:
打开项目的 .project 文件,添加如下两段信息

<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>

<nature>org.eclipse.wst.jsdt.core.jsNature</nature>

以上配置针对Eclipse安装了Eclipse WST(Web Standerd Toolkit)的情况,如果安装了其他的JS builder/validator可以类比。

添加以上配置后可能会带来一些困扰,比如项目引用了第三方的一些JS lib库(jquery.js/ext.js 等),这些第三方库可能本身没有问题,但是validator可能认为它们有错误,会生成错误marker影响编译。
比如常用的jquery-1.7.2.min.js文件会被wst的jsvalidator认为有错误。

这时候应该做的就是:打开项目properties->Java Script->Include Path->Source->Excluded
点击edit,在Exclusion Patterns里填上你不需要校验的JS文件或目录。我的是assets/webapp/lib/ (即所有第三方JS库)。OK。

ALL DONE.

一件坑爹感十足的小事

之前为了放本blog,从sugarhosts合租了台服务器
后来他们调整机房,服务器从欧洲搬到了美国
此后不多久我发现blog在公司无法访问了,我单纯的以为因为我在子域名下架设的推特客户端被公司网关检测到并自动屏蔽了
最近我因为换了主机,原来这个就转卖给了朋友
朋友换了主域名后反映从家里(南京电信宽带)也没法访问
用了几个电信手机也无法访问,但是南京其他地方电信也有能访问的,反正情况各异
我当时果断认为是电信路由的问题,立即打10000号投诉
电信反馈倒是也不算慢,两天内反馈了两次,但是都没能解决
此时我又想到,莫非是因为之前我不规矩,IP被墙了?
于是和sugarhosts沟通更换IP,客服提示我把不能访问时的ping和tracert信息给他们
朋友在不能打开的情况下,ping和tarcert竟然是通畅的
我看到他在浏览器里打www.***.com,提示他直接输入***.com,刷就好了
原来是我自己粗心,添加DNS的时候没有对www做A记录
添上很快就可以了
但是!公司内依然无法访问这台主机
我当时就无语了,头脑混乱时我又意识到:it must be very simple!!
等我仔细看了主机IP后恍然大悟!
尼玛这台主机IP是 108.xxx.xxx.xxx,我们公司内网地址也是特么这个网段的!!
怪不得除了公司内部,其他地方都能访问,挂代理也没问题
原来被公司主路由当作内部网段给拦截了!
太特么坑爹!!!
我怎么老犯这种低级错误呢!!!!

Eclipse的语法着色如何保存和恢复

自定义的Eclipse语法着色(Color Syntax),想要在其他工作空间(Workspace)使用一样的配置。
但是通过Export->Preference是无法导出语法着色配置的,正确的做法是:
将workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings目录下
org.eclipse.jdt.ui.prefs (java编辑器的语法着色)
org.eclipse.ui.editor.prefs (Text Editor)
如果还定制了其他语言的(JS,C等)就吧对应的文件复制粘贴到目标工作空间下即可。
不同的系统平台是完全兼容的(Mac, Linux, Win).

参考
http://stackoverflow.com/questions/372837/eclipse-syntax-highlighting-preferences