• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            桃源谷

            心靈的旅行

            人生就是一場旅行,不在乎旅行的目的地,在乎的是沿途的風景和看風景的心情 !
            posts - 32, comments - 42, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            在Visual Studio使用宏來定制新的注釋格式

            Posted on 2009-12-21 21:13 lymons 閱讀(2329) 評論(0)  編輯 收藏 引用 所屬分類: C++ 、工程管理 、開發環境

            在Visual Studio定制新的注釋格式

            在本文中,使用Visual Studio2003作為例子來描述宏的做成步驟。(我想在Visual Studio2005、2008中也應該是一樣的)  
                 
            在編寫ASP代碼時,可以使用單引號來注釋掉不要的代碼。在Visual Studio的IDE環境中也支持使用塊注釋的方式把一整段的代碼注釋掉。  
            不過有的時候,也有要求用<%' ~ %>這種注釋格式來注釋掉HTML中的代碼,但是包括Visual Studio在內的一些流行的編輯器都不支持這種格式的注釋方式。不過還好,Visual Studio的IDE支持宏的功能,因此我們可以使用VBScript宏來定制任意格式的代碼注釋。
            例如:
            <%' if(LengthB(frmMe.txtUserCd.value) > <%= LENGTH_USR_CD %><%'){ %>
            <%'  alert("使用者的ID長度有誤"); %>
            <%'  frmMe.txtUserCd.focus(); %>
            <%'  return false; %>
            <%' } %>
             if(LengthB(frmMe.txtUserCd.value) > <%= LENMAX_USR_CD %>){
              alert(
            "使用者的ID長度有誤");
              frmMe.txtUserCd.focus();
              return 
            false;
             }

            在JavaScript代碼中使用<% ~ %>可以隱藏其間的代碼。因此,在網頁代碼中有很多的地方就存在<% ~ %>的符號,  
              也就是說<% ~ %>和我們要添加的注釋<%' ~ %>格式有沖突。    
              其中,值得注意的地方是,這種注釋格式在每遇到一個%>符號時要新添加一個<%',而不是簡單的在一行的首尾添加<%' ~ %>

             

            1. 打開宏編輯器(Macros IDE)  
              1.1 啟動Visual Studio?。玻埃埃抵螅瑥闹鞑藛沃羞x擇:  
                 Tools → Macros → Macros 



            1.2 點擊菜單選項“Macros IDE“后,Microsoft Visual Studio Marcos這個編輯器就會啟動。    
              1.3 如果這是第一次編輯宏的話,此時隨著編輯器的啟動,一個叫做“My Macros“的工程自動會被打開  
                  在工程"My Macros"中應該有兩個模塊,一個是EnvironmentEvent ,另一個是 Module1    
              1.4 咱們可以選擇任何一個模塊來添加宏代碼。這里我們選擇 Module1,雙擊模塊名字則進入到編輯模式。
                            該模塊中只有4行代碼.每行代碼都有用,請不要刪除.


            其中,Imports EnvDTE 這句非常有用,后面用到的幾乎所有的對象都出自EnvDTE這個命名空間。  
                  DTE 是Development Tools Enviroment的縮寫。

            2.1 在“Public Module Module1“和“End Module“之間,寫入以下的代碼
            2. 在宏編輯器中寫入創建注釋的VBScript代碼  
             
             
                     首先,為了能給一段代碼添加注釋,我們要做成AddHTMLcomment()函數


            圖片中的代碼如下所示,請原樣拷貝到Module1中
            Sub AddHTMLcomment()   
                      
            '得到當前文檔中被用戶選擇的代碼片斷   
                      Dim selection As TextSelection = DTE.ActiveDocument.Selection()   
                      
            '創建一個編輯點,用于指示在被選擇的代碼片斷中的修改位置。類似于C語言中的指針   
                      Dim start As EditPoint = selection.TopPoint.CreateEditPoint()   
                      
            '得到已選擇的代碼片斷的終點   
                      Dim endpt As TextPoint = selection.BottomPoint   
              
                      
            '在當前文檔中打開Undo功能   
                      DTE.UndoContext.Open("Comment Region")   
              
                      Try   
                          
            '在一行代碼中如果出現一個注釋尾"%>",則在它后面插入一個注釋頭"<%'"   
                          Dim objMovePt As EditPoint   
                          
            Do While start.FindPattern("%>", , objMovePt)   
                              
            If objMovePt.GreaterThan(endpt) Then   
                                  
            Exit Do   
                              
            End If   
                              start.MoveToPoint(objMovePt)   
                              start.Insert(
            "<%'")   
                          
            Loop   
              
                          
            '在一行的行首和行尾分別插入注釋頭和注釋尾   
                          start = selection.TopPoint.CreateEditPoint()   
                          
            Do While (start.LessThan(endpt))   
                              
            '在這里插入注釋頭   
                              start.Insert("<%' ")   
              
                              
            '在行尾插入注釋尾   
                              start.EndOfLine()   
                              start.Insert(
            " %>")   
              
                              start.LineDown()   
                              start.StartOfLine()   
                          
            Loop   
                      Finally   
                          
            'If an error occured, then need to make sure that the undo context is cleaned up.   
                          'Otherwise, the editor can be left in a perpetual undo context   
                          DTE.UndoContext.Close()   
                      
            End Try   
              
                  
            End Sub 
            其中,該函數分兩個部分,第一個部分是先查找選擇的代碼片斷中是否存在注釋尾,如果    
              存在的話,則在它后面插入一個注釋頭。函數FindPattern是編輯點對象中的一個查找函數。  
              該函數有三個參數:第一個是要查找的對象(一般是字符串),第三個則是如果找到該字符串,  
              則指示該字符串后面的第一個字符在代碼片斷中的位置,也是一個編輯點對象。第二個參數我們不用關心,  
              調用時什么也不寫即可。第二個部分則是遍歷每一個行,在行首和行尾插入注釋頭和注釋尾    
                 
             
              此后,為了可以刪除代碼中的注釋, 我們要增加DelHTMLcomment()函數  
                把下面的代碼原樣的拷貝到Module1中
            Sub DelHTMLcomment()   
                      
            Dim selection As TextSelection = DTE.ActiveDocument.Selection()   
                      
            Dim start As EditPoint = selection.TopPoint.CreateEditPoint()   
                      
            Dim endpt As TextPoint = selection.BottomPoint   
              
                      DTE.UndoContext.Open(
            "Comment Region")   
              
                      Try   
                          
            '刪除代碼中的所有注釋頭   
                          Dim objMovePt As EditPoint   
                          
            Do While start.FindPattern("<%'", , objMovePt)   
                              
            If objMovePt.GreaterThan(endpt) Then   
                                  
            Exit Do   
                              
            End If   
              
                              start.Delete(
            3)   
                          
            Loop   
              
                          
            '只刪除行尾的注釋尾   
                          start = selection.TopPoint.CreateEditPoint()   
                          
            Do While (start.LessThan(endpt))   
                              
            Dim len As Long = start.LineLength()   
                              
            Dim num As Long = start.Line()   
              
                              start.MoveToLineAndOffset(num, 
            len - 2)   
                              
            If start.GetText(3<> " %>" Then   
                                  
            MsgBox("L" & num & "行的最后幾個字符不是  %> ,請按CTRL+Z恢復原來的代碼!")   
                                  
            Exit Do   
                              
            End If   
              
                              start.Delete(
            3)   
              
                              start.LineDown()   
                              start.StartOfLine()   
                          
            Loop   
                      Finally   
                          
            'If an error occured, then need to make sure that the undo context is cleaned up.   
                          'Otherwise, the editor can be left in a perpetual undo context   
                          DTE.UndoContext.Close()   
                      
            End Try   
              
                  
            End Sub 
              該函數分兩個部分,第一個部分把代碼中的所有注釋頭全部刪掉,第二部分則是刪除注釋尾。  
              與AddHTMLcomment()相比,邏輯稍微簡單一些。其中稍微值得注意的地方是,該函數對行尾有  
              特殊要求,即在行尾的最后三個字符必須是注釋尾    
                 
             
             
            3. 請存盤后關閉宏編輯器  
              3.1 請按「Ctrl+S」鍵,然后從主菜單"File"中選擇"Close And Return"關閉編輯器




            4. 打開Visual Studio的“Macro Explorer“  
              4.1 在主菜單中作以下的選擇  
                  View → Other Windows → Macros Explorer


            4.2 此時、在Visual Studio IDE的右側則會出現Marcos Explorer樹狀列表


            5. 選擇完整的一段代碼給它添加注釋以及取消注釋  
              5.1 用鼠標選擇要添加注釋的代碼


            5.2 雙擊Macros Explorer樹中的AddHTMLcomment項目即可給這段代碼添加注釋


            5.3 如果想取消注釋,則雙擊Macros Explorer樹中的DelHTMLcomment項目即可為選擇的代碼取消所加的注釋

            我的個人簡歷第一頁 我的個人簡歷第二頁
            国产精品美女久久久免费| 国内精品久久久久影院优| 亚洲嫩草影院久久精品| 久久久久一级精品亚洲国产成人综合AV区| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 国产免费福利体检区久久| 青青草国产97免久久费观看| 伊人久久大香线蕉综合热线| 国产成年无码久久久久毛片| 久久93精品国产91久久综合| 囯产极品美女高潮无套久久久| 久久中文娱乐网| 伊人伊成久久人综合网777| 国产精品美女久久久m| 色偷偷88欧美精品久久久| 国产Av激情久久无码天堂| 狠狠色丁香婷婷久久综合| 久久国产乱子精品免费女| 亚洲色大成网站WWW久久九九| 国产精品无码久久久久 | 色偷偷888欧美精品久久久| 99久久国产综合精品女同图片| 国产成人99久久亚洲综合精品| 精品乱码久久久久久久| 久久婷婷五月综合成人D啪| 国产成人无码精品久久久免费 | 欧美粉嫩小泬久久久久久久| 久久青青草原综合伊人| 国产精品视频久久| 久久国产热精品波多野结衣AV| 久久久无码精品亚洲日韩京东传媒 | 久久性精品| 久久国产精品一区| 久久综合精品国产一区二区三区 | 久久久久综合国产欧美一区二区| 色综合久久天天综合| 日本免费一区二区久久人人澡 | 久久se精品一区精品二区| 国产精品久久自在自线观看| 99国内精品久久久久久久| 国产伊人久久|