Domanda

Qual è il modo più semplice per forzare programmaticamente la capitalizzazione delle parole chiave in Visual Studio 2008?

Lavoriamo con un linguaggio delimitato da comandi proprietari (come HTML). Stiamo tentando di migrare da un vecchio editor a Visual Studio 2008. I nostri standard di codifica sono di capitalizzare i comandi. Il vecchio editor è personalizzato per riconoscere il comando di inizio delimitatore e per forzare la maiuscola fino a quando non viene digitato il delimitatore di fine o viene premuto il tasto Esc.

Qual è il modo migliore per farlo in Visual Studio 2008? Può essere fatto con una macro o un componente aggiuntivo?

(Modificato 1-12-2009)

Grazie per i suggerimenti finora. Non credo che rispondano alla mia domanda.

Chiarimenti:

  • L'editor precedente era CodeWright, quindi le personalizzazioni non sono portabili in Visual Studio.
  • Il codice sorgente non è C #. StyleCop sembra essere specificamente per C #. La nostra lingua è simile ai linguaggi di markup come HTML ma con caratteri e comandi delimitatore diversi.
  • Sto cercando di capitalizzare effettivamente i tipi di sviluppatore, non di ricordare loro la corretta capitalizzazione. Dato che i comandi sono tutti delimitati, il nostro attuale editor attiva il Caps Lock quando viene digitato il delimitatore iniziale. Quando si preme il delimitatore di fine o il tasto Esc, il blocco maiuscole viene disattivato. Questo è indipendente dallo stato del BLOC MAIUSC sulla tastiera.
È stato utile?

Soluzione 3

Questa potrebbe non essere la soluzione migliore, ma ecco cosa mi è venuto in mente.

Usa le macro per acquisire gli eventi Key Press.

Ecco come:

  1. In Visual Studio vai al menu Strumenti- > Macros- > Macros IDE
  2. Fai doppio clic su " MyMacros " per vedere le diverse parti
  3. Fai doppio clic su " EnvironmentEvents "
  4. Aggiungi il seguente codice nel modulo Eventi ambientali.
  5. Salva il file e torna al normale IDE VS per testare.

    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
    

Questa macro è limitata ai file * .CPI.

Non ho ancora capito come catturare il tasto Esc, ma per ora funzionerà.

Altri suggerimenti

Prova StyleCop , disponibile dal sito Web di Microsoft. Potrebbe essere necessario modificare il set di regole per gli standard di codifica specifici. Per gli standard di codifica che utilizziamo, è stato quasi perfetto immediatamente.

Mentre richiede molto tempo, questo SO ti mostra come aggiungere tag all'impostazione di convalida in VS2005. Non credo che il metodo sia cambiato nel 2008.

Se stai passando da una versione precedente di Visual Studio, potresti essere in grado di importare solo le tue vecchie impostazioni e tag personalizzati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top