Macro per VS.NET per creare le #region nel codice

Come sapete su VS.NET c'è la possibità di raggruppare delle aree di codice tra i tag #region e #endregion (o #Region e #End Region se parlate VB.NET).
 
Metterlo sempre a mano prima e dopo la zona di codice da racchiudere è un po' una palla, quindi ho cercato un po' e ho trovato questa macro per VS.NET che ho sistemato un po' perchè per come seleziono io il testo non sempre funzionava.Smile stupito
 
    ' MakeRegion inserts #region and #endregion tags 
    ' around selected text in the VS editor.
    
Sub MakeRegion()
        
Dim rName As String = ""
        
Dim pad As String = ""
        
Dim junk As String
        Dim 
count, i As Integer
        Dim 
startpoint, endpoint As EditPoint

        
With DTE.ActiveDocument.Selection
            startpoint = .TopPoint.CreateEditPoint()
            endpoint = .BottomPoint.CreateEditPoint
        
End With

        If 
startpoint.EqualTo(endpoint) Then
            Exit Sub
        End If

        
'ELR: ADDED THIS, to move the startpoint to the start of the line
        'so that the Pad function works correctly
        
If Not startpoint.AtStartOfLine Then
            
startpoint.StartOfLine()
        
End If

        
rName = InputBox("Region Name:")

        DTE.UndoContext.
Open("Insert A Region")
        
Try
            
junk = startpoint.GetText(startpoint.LineLength)

            pad = 
String.Empty

            For 
count = 0 To junk.Length - 1
                
If junk.Substring(count, 1).Equals(" ") Or _
                junk.Substring(count, 1).Equals(vbTab) 
Then
                    
pad += junk.Substring(count, 1)
                
Else
                    Exit For
                End If
            Next
            
'ELR: ADDED Test for Languages
            
If DTE.ActiveDocument.Language = "CSharp" Then
                
' C Sharp Code
                
startpoint.Insert(String.Format("{0}#region {1}{2}", pad, rName, vbCrLf))
                
if endpoint.LineLength=0 then
                    
endpoint.Insert(String.Format("{0}#endregion // {1}{2}", pad, rName, vbCrLf))
                
Else
                    
endpoint.Insert(String.Format("{0}#endregion // {1}{2}", vbCrLf & pad, rName, vbCrLf))
                
End If
            Else
                
' VB Code
                
startpoint.Insert(String.Format("{0}#Region ""{1}""{2}", pad, rName, vbCrLf))
                
If endpoint.LineLength = 0 Then
                    
endpoint.Insert(String.Format("{0}#End Region '{1}{2}", pad, rName, vbCrLf))
                
Else
                    
endpoint.Insert(String.Format("{0}#End Region ' {1}{2}", vbCrLf & pad, rName, vbCrLf))
                
End If
            End If
        Finally
            
DTE.UndoContext.Close()
        
End Try
    End Sub
 
Suggerisco di copiare tutto il codice in una nuova macro e di assegnare un bel shortcut da tastiera (tipo ALT-R) per creare le region.

powered by IMHO

Emoticon Formatter: rilasciata la versione CTP (1.0.1807.200)

Siamo in periodo di CTP, quindi mi pare giusto rilasciare anche il mio plugin per IMHO in versione CTP Smile

Questo è il file zip contenente il plugin: Scarica

Installazione

Una veloce spiegaizone in attesa di un bel readme.txt dentro allo zip Smile che strizza l'occhio

Per installare il plugin è sufficiente estrarlo nella root della vostra installazione di IMHO, in modo che tutti i files vadano per conto loro nella loro cartella di destinazione

Per chi non si fidasse i file sono 3:

  • com.piyosailing.IMHO.Emoticon.resources.dll: va nella cartella appdir\en-US ed è il satellite assembly con le risorse in inglese

  • com.piyosailing.IMHO.Emoticon.EmoticonFormatter: va nella cartella appdir\formatters\Emoticon ed è l'assembly principale del plugin

  • emoticons.xml: va nella cartella appdir\formatters\Emoticon\icons ed è un file d'esempio con l'elenco delle icone prese dal sito di help della MS

Known Issues

Ovviamente, essendo alla sua prima uscita pubblica, ed essendo anche il mio programma WindowsForms (come avevo già accennato ho sempre lavorato con ASP.NET) potrebbe avere bachi, malfunzionamenti, potrebbe formattarvi il disco del PC e anche quello dell'IPod collegato e forse anche la memoria coi programmi della lavatrice, quindi, "uomo avvisato..." Smile angelo

Scherzi a parte, l'unica cosa che potrebbe sembrare un problema, ma non lo è veramente, e la sistemerò più avanti, è che la prima volta che premerete su "Formatters>Emoticon Formatter 1.0" si blocca tutto mentre scarica per la prima volta le icone dal web, poi le altre volte le legge dalla cache locale e quindi la finestra di scelta delle icone si apre molto, molto, molto più velocemente. Questo succedo ovviamente se avete deciso di non disabilitare il settaggio "mantieni copia locale delle icone" e se non sono già passati i n giorni dall'ultimo aggiornamento della cache locale (anche n è configurabile tra i settaggi del plugin)

TODO

  • Mettere nella finestra di configurazione un pulsante per forzare l'aggiornamento della la cache locale
  • Scaricare le icone alla cambio del file di configurazione
  • Mettere la procedura di scaricamento in un thread separato (ed evitare che tutto l'applicativo si blocchi in attesa della fine del download)... magari anche con una bella progress bar Smile con occhiali da sole

Licenza d'uso

Il sorgente per il momento è ancora sul mio portatile, e quindi non potete vederne i commenti: il tutto è rilasciato con licenza GPL...

Ora sono le quasi le 2 di notte, è meglio andare a dormire: fortunatamente (e cosa rara da un paio di settimane) domani non lavoro e quindi potrò riposarmi... ehm... ora che ci penso, come diceva Lorenzo, con i regali di Natale da fare e così via non so quanto mi riposerò

powered by IMHO

«dicembre»
domlunmarmergiovensab
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678