zoukankan      html  css  js  c++  java
  • Vs宏 之 打开URL指定的文件

    在自 定义Mvc 项目进行进行调试的过程中,查找文件比较浪费时间。所以我需要一个工具,来完成如下工作:

    1.我在 Chrome 上Copy 一个待调试链接。

    2.在VS中快速打开该链接所在的 View(ASPX) 和 Controller( CS)

    很巧网上也有类似方案:http://www.cnblogs.com/yiyanxiyin/archive/2007/06/26/796238.html

    但我需要的是MVC的知定义结构,代码:

       

        'Udi 2012年9月20日
        Sub OpenMvc()
    
            Dim ClipBoardThread As System.Threading.Thread
            ClipBoardThread = New System.Threading.Thread(AddressOf getClipString_core)
            With ClipBoardThread
                .ApartmentState = ApartmentState.STA
                .IsBackground = True
                .Start()
                '-- Wait for copy to happen
                .Join()
            End With
    
    
    
            ClipBoardThread = Nothing
    
            Dim url = InputBox("输入 LongFor - PM 网址(IIS 需要配置成应用程序),支持如下格式:" + vbNewLine _
                                 + vbNewLine + _
                               "1. http://localhost/pm/Admin/Home/Index.aspx 格式 " + vbNewLine + _
                               "2. /pm/Admin/Home/Index.aspx 格式" + vbNewLine + _
                               "3. ~/Admin/Home/Index.aspx 格式" + vbNewLine + _
                               "4. localhost/pm/Admin/Home/Index.aspx 格式 " + vbNewLine + _
                              "", "直接打开URL小工具", ClipString)
    
            url = url.Trim()
    
            If (url.Length = 0) Then Return
    
            Dim path As String
    
            path = New FileInfo(DTE.Solution.FullName).DirectoryName
    
    
            If (url.StartsWith("http://") = False) Then
    
                If (url.StartsWith("/")) Then
                    url = "http://localhost" + url
                ElseIf (url.StartsWith("~/")) Then
                    url = "http://localhost/pm" + url.Substring(1)
                Else
                    url = "http://" + url
                End If
            End If
    
            Dim sect = url.Substring(url.IndexOf("/", "http://".Length + 1) + 1).Split("/")
    
            Dim area = sect(1)
            Dim controller = sect(2)
            Dim action = sect(3).Split(".")(0)
    
            Dim cs As String
            Dim aspx As String
    
            '普通Web
            If ("ReportWeb" = area) Then
                path += "\MyWeb\"
    
                cs = path + area + "\" + controller + "\" + action + ".aspx.cs"
                aspx = path + area + "\" + controller + "\" + action + ".aspx"
    
                If (File.Exists(cs)) Then
                    DTE.ItemOperations.OpenFile(cs)
                    FindWord(action)
                End If
    
                If (File.Exists(aspx)) Then DTE.ItemOperations.OpenFile(aspx)
    
            Else
                If (",Admin,cs,Host,".IndexOf("," + area + ",") >= 0) Then
                    path += "\MyWeb\Area\"
    
                Else
                    path += "\MyWeb\pm\"
    
                End If
    
    
                cs = path + area + "\Controllers\" + controller + ".cs"
                If (File.Exists(cs) = False) Then cs = path + area + "\Controllers\" + controller + "Controller.cs"
    
                aspx = path + area + "\Views\" + controller + "\" + action + ".aspx"
    
    
                If (File.Exists(cs)) Then
                    DTE.ItemOperations.OpenFile(cs)
                    FindWord(action)
                End If
    
                If (File.Exists(aspx)) Then DTE.ItemOperations.OpenFile(aspx)
            End If
    
        End Sub
    
    
        Dim ClipString As String
        'Udi 2012年9月20日
        Sub getClipString_core()
            ClipString = Clipboard.GetDataObject().GetData(System.Windows.Forms.DataFormats.StringFormat)
        End Sub
    
    
        Sub FindWord(ByVal word As String)
            DTE.ExecuteCommand("Edit.Find")
            DTE.Find.FindWhat = word
            DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
            DTE.Find.MatchCase = True
            DTE.Find.MatchWholeWord = True
            DTE.Find.Backwards = False
            DTE.Find.MatchInHiddenText = False
            DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
            DTE.Find.Action = vsFindAction.vsFindActionFind
            If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then
                Exit Sub
            End If
            DTE.Windows.Item("{CF2DDC32-8CAD-11D2-9302-005345000000}").Close()
        End Sub
    alarm   作者:NewSea     出处:http://newsea.cnblogs.com/    QQ,MSN:iamnewsea@hotmail.com

      如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
  • 相关阅读:
    C++:Ubuntu 中GCC和G++的安装
    pycharm所有包
    机器学习--推荐引擎
    均值漂移法 + 轮廓系数+DBSCAN算法
    聚类模型
    事件预测 -- 解决分类问题
    网格搜索
    置信概率
    样本类别均衡化
    爬虫用到的知识点
  • 原文地址:https://www.cnblogs.com/newsea/p/2636480.html
Copyright © 2011-2022 走看看