爲VS.NET 2005增加Atlas Scripts的代碼提示功能

一直在不遺餘力地向周圍地人傳播Atlas的Declarative Syntax,卻總是得到“太難編寫”的回答。最近有一次無論如何也找不出一個問題,最終發現是一個拼寫錯誤,憤憤之餘,無奈之下,只得設法爲VS增加爲Atlas的代碼提示功能。苦於缺乏相關資料,MSDN上盡是如何爲VS.NET 2003下Web Control增加客戶端提示的文章。不過幸運地是,這些文章也給了我提示和方向。摸索數小時之後總算有所門道,奮戰略有小成,不敢獨享。雖然期間也曾遇到過一些頭疼事,例如VS.NET編輯器無法區分HTML的,幸運的是最終找到了解決辦法。

  先來看一下效果吧:













  可以看出,這個代碼提示其實就是和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。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章