代码改变世界

为VS.NET 2005增加Atlas Scripts的代码提示功能

2006-09-25 17:28  Jeffrey Zhao  阅读(4259)  评论(62编辑  收藏  举报

一直在不遗余力地向周围地人传播Atlas的Declarative Syntax,却总是得到“太难编写”的回答。最近有一次无论如何也找不出一个问题,最终发现是一个拼写错误,愤愤之余,无奈之下,只得设法为VS增加为Atlas的代码提示功能。苦于缺乏相关资料,MSDN上尽是如何为VS.NET 2003下Web Control增加客户端提示的文章。不过幸运地是,这些文章也给了我提示和方向。摸索数小时之后总算有所门道,奋战略有小成,不敢独享。虽然期间也曾遇到过一些头疼事,例如VS.NET编辑器无法区分HTML的<select />和Atlas Scripts里的<select />,幸运的是最终找到了解决办法。

先来看一下效果吧:













可以看出,这个代码提示其实就是和VS.NET对于HTML代码提示完全相同,因此可以非常快速地使用Declarative Syntax进行开发,也不会有拼写错误构成的无奈问题。由于制作代码提示需要一份完整的参考,而Atlas Client Library中的资料又不全,因此目前只支持只有Library里完整描述的所有Tag。一些比如listView,dataSource, webRequestManager,validator等tag我会在归纳完全后补全代码提示的功能。如果有哪位朋友已经完整归纳出这些,能否借给我参考一下,谢谢。:)

添加这些Atlas Scripts的Intelligence支持的步骤如下:

1、点击这里下载所需的XSD文件,VS.NET 2005需要通过识别这个文件来提供所需的代码提示。

2、将压缩包内的Atlas_IE6_0.XSD复制到“%VS8_DIR%\Common7\Packages\schemas\html”目录中。(比如在我的机器上就是:“D:\Program Files\Microsoft Visual Studio 8\Common7\Packages\schemas\html”目录)

3、打开注册表编辑器(开始——运行——regedit),找到目录“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{1B437D20-F8FE-11D2-A6AE-00104BCC7269}\Schemas”,可以发现“Schema 1”,“Schema 2”……如图:


4、紧跟着Schema N的最大值再建一个目录(似乎VS.NET在这里只是检查连续的编号),如上图中“Schema 21”。

5、在刚建立的目录中添加三个字符串类型的值:
File:html\Atlas_IE6_0.XSD
Friendly Name:Atlas - Internet Explorer 6
URIhttp://schemas.microsoft.com/intellisense/atlas_ie6
如图:


6、打开VS.NET 2005,点击菜单:Tools——Options。

7、展开树状菜单:Text Editor——HTML——Validation,在右侧上方Target下拉框内选择“Atlas - Internet Explorer 6”,这就代表了选择我们刚才的XSD文件。如图:


8、展开树状菜单:Text Editor——HTML——Format,在右侧将“Client tag”和“Client attributes”均设为“As entered”。这样Editor就会保留输入时的原有大小写形式,否则将会变成全部大写或者全部小写。如图:



现在,打开一个aspx文件,在<body />或<form />里输入<atlasscript type="text/xml-script" />,然后就能尽情享受Intelligence带来的便利了。不过,需要注意在真正运行前,需要把<atlasscript />改成<script />。由于Editor对于<script />的内容会不认做标签,但是如果撤销<script />的这一特性,在输入小于号“<”以后会出现本不该有的代码提示功能,非常讨厌,所以只能出此下策。但是个人觉得,与能够获得Intelligence功能相比,这点不方便还是能够忍受的吧。

另外,如果在使用中发现了什么问题,也请马上告诉我,我会对Schema进行修改,谢谢。

最后再提一下,现在我提供的Schema还不够完整,因为缺少了一些tag的详细资料,我正在归纳,也会及时更新。如果有哪位朋友能够提供的话,在下不胜感激。另外,目前我是扩展了Internet Explorer 6的Validation Schema,如果完整了所有的tag信息,我也会制作扩展HTML 4.01等其他Validation的Schema。


Schema同步更新,相关更新文章:
1、补充部分官方文档里没有的Client Library以及代码提示Schema更新(一)
2、补充部分官方文档里没有的Client Library以及代码提示Schema更新(二)
3、补充部分官方文档里没有的Client Library以及代码提示Schema更新(三)

VS 2005中文版用户请留意:
VS 2005中文版用户请谨慎使用我提供的Atlas Xml Scripts Intellisense方法