3

Visual Studio 2008 でキーワードの大文字化をプログラムで強制する最も簡単な方法は何ですか?

独自のコマンド区切り言語 (HTML など) を使用します。古いエディターから Visual Studio 2008 への移行を試みています。コーディング標準では、コマンドを大文字にすることになっています。古いエディターは、コマンドの開始区切り文字を認識し、終了区切り文字が入力されるかエスケープ キーが押されるまで大文字化を強制するようにカスタマイズされています。

Visual Studio 2008 でこれを行う最善の方法は何ですか? マクロまたはアドインで実行できますか?

(2009 年 1 月 12 日編集)

これまでの提案に感謝します。彼らは私の質問に答えていないと思います。

説明:

  • 以前のエディターは CodeWright だったので、そこでのカスタマイズは Visual Studio に移植できません。
  • ソース コードは C# ではありません。StyleCop は C# 専用のようです。私たちの言語は HTML のようなマークアップ言語に似ていますが、区切り文字とコマンドが異なります。
  • 私は実際に開発者のタイプとして大文字を使用しようとしていますが、適切な大文字の使用について思い出させるのではありません。コマンドはすべて区切られているため、現在のエディターは、最初の区切り文字が入力されると実際に Caps Lock をオンにします。終了区切り文字またはエスケープ キーが押されると、Caps Lock はオフに戻ります。これは、キーボードの Caps Lock の状態とは無関係です。
4

3 に答える 3

4

Microsoft の Web サイトから入手できるStyleCopを試してください。特定のコーディング標準に合わせてルール セットを調整する必要がある場合があります。私たちが使用するコーディング標準については、箱から出してほぼ完璧でした。

于 2009-01-09T00:16:21.777 に答える
1

これは最善の解決策ではないかもしれませんが、これが私が思いついたものです。

マクロを使用して、キー押下イベントをキャプチャします。

方法は次のとおりです。

  1. Visual Studioで、[ツール]->[マクロ]->[マクロIDE ]メニューに移動します
  2. 「MyMacros」をダブルクリックして、さまざまなパーツを表示します
  3. 「EnvironmentEvents」をダブルクリックします
  4. 環境イベントモジュール内に次のコードを追加します。
  5. ファイルを保存し、通常のVSIDEに戻ってテストします。

    Private My_AutoCaps As Boolean = False
    Private Sub TextDocumentKeyPressEvents_BeforeKeyPress(ByVal Keypress _
      As String, ByVal Selection As EnvDTE.TextSelection, _
      ByVal InStatementCompletion As Boolean, ByRef CancelKeyPress As Boolean) _
      Handles TextDocumentKeyPressEvents.BeforeKeyPress
         Dim fileName As String = UCase(Selection.DTE.ActiveDocument.Name)
         If ( fileName.EndsWith(".CPI") ) Then
             If (My_AutoCaps) Then
                 'MsgBox(Keypress)
                 If (Keypress = "(" Or Keypress = ":") Then
                     'MsgBox("End of command character pressed.")
                     My_AutoCaps = False
                     Return
                 ElseIf (Keypress >= "a" And Keypress <= "z") Then
                     'MsgBox("Letter pressed.")
                     Selection.Text = UCase(Keypress)
                     CancelKeyPress = True
                 End If
             Else 'AutoCap is not on yet
                 If (Keypress = "^") Then
                     'MsgBox("You pressed the Start Command character.")
                     My_AutoCaps = True
                     Return
                 End If
             End If
         End If
    End Sub
    

このマクロは*.CPIファイルに制限されています。

Escキーをキャプチャする方法はまだわかりませんが、これは今のところ機能します。

于 2009-01-15T22:06:26.193 に答える
1

時間がかかりますが、このSO 投稿では、VS2005 の検証セットアップにタグを追加する方法を示しています。2008年に方法が変わったとは思わない。

古いバージョンの Visual Studio から移行する場合は、古い設定とカスタム タグをインポートするだけでよい場合があります。

于 2009-01-09T00:15:46.210 に答える