これが役立つVisualStudioマクロです。
それが何をするか
これで、おそらく次のような場所でT4MVC参照を使用します。
- レイアウト=MVC.Shared.Views.MasterSiteTheme;
- ScriptManager.AddResource(Links.Content.Script.jQueryXYZ_js);
- <link type = "text / css" href = "@ Links.Content.Style.SiteTheme_css" />
- View(MVC.Account.Views.SignIn);を返します。
- @ Html.Partial(MVC.Common.Views.ContextNavigationTree)
- @ Html.ActionLink( "サインイン/登録"、MVC.Account.SignIn())
F12(定義に移動)はすでに最後の箇条書き(アクション)で機能しますが、このハックは他のシナリオ(リソース)をカバーすることを目的としています。
大きい
Imports EnvDTE
Imports System.IO
Public Module NavT4Link
Sub NavigateToLink()
DTE.ExecuteCommand("Edit.GoToDefinition")
Dim navpath As String = Path.GetFileName(DTE.ActiveDocument.FullName)
Dim isContentLink As Boolean = navpath.Equals("T4MVC.cs")
If (isContentLink Or navpath.EndsWith("Controller.generated.cs")) Then
Dim t4doc As TextDocument = DTE.ActiveDocument.Object()
navpath = CurrentLinePathConstant(t4doc)
If isContentLink Then
t4doc.Selection.MoveToPoint(t4doc.Selection.ActivePoint.CodeElement(vsCMElement.vsCMElementClass).StartPoint)
t4doc.Selection.FindText("URLPATH")
navpath = Path.Combine(CurrentLinePathConstant(t4doc), navpath)
End If
If navpath.StartsWith("~") Then
DTE.ActiveDocument.Close(vsSaveChanges.vsSaveChangesPrompt)
Dim proj As Object = DTE.Solution.FindProjectItem(DTE.ActiveDocument.FullName).ContainingProject
navpath = Path.GetDirectoryName(proj.Fullname()) + navpath.TrimStart("~")
DTE.ItemOperations.OpenFile(navpath)
End If
End If
End Sub
Function CurrentLinePathConstant(ByVal t4doc As TextDocument) As String
t4doc.Selection.SelectLine()
Dim sa() As String = t4doc.Selection.Text().Split("""")
If sa.Length > 1 Then Return sa(sa.Length - 2) Else Return ""
End Function
End Module
インストール
- Visual Studioで、[Alt-F8]を押してマクロエクスプローラーを開きます。
- [マイマクロ]を右クリックし、[新しいモジュール...]を選択して、[追加]をクリックします。
- すべてのテキストをここに示されているコードに置き換えます。
- マクロエディタを保存して終了します。
- 「ツール:オプション」を開きます。
- 左側のペインで、[環境:キーボード]を選択します。
- [コマンドを含む]テキストフィールドに「T4」と入力します。
- [ショートカットキーを押す:]フィールドで[F12]キーを押します。
- 「割り当て」と「OK」をクリックします。
パッチが適用されていないVSでは、このインストールプロセスは「バインド可能な」マクロにはなりません。回避策は、(CTRL-SHIFT-RR)で空のマクロを記録し、名前を変更せずにコードを貼り付けることでした。VSにマクロをインストールするためのより文書化されたアプローチを誰かが知っている場合は、コメントしてください。
注意事項/注意事項
これは、現在のF12機能を置き換えることを目的としているため、T4MVCリンクでない場合は通常どおりに実行され、そうでない場合はリソースを開き続けます。ほとんどの場合を処理しますが、T4MVCで生成された空のコントローラーメソッドは処理しません。あなたが前にしたのと同じ場所であなたが捨てられるもの。
コンテンツ/アセット/リンクリソースの場合、たとえば画像ファイルの場合、ソリューションエクスプローラーでそのリソースに移動するのはおそらく適切ですが、VisualStudioのドキュメントにはその機能が表示されませんでした。