Integrare Stack Overflow in IDE?
-
02-07-2019 - |
Domanda
Okay, questa è solo un'idea folle che ho. Stack Overflow sembra molto strutturato e integrabile nelle applicazioni di sviluppo. Quindi sarebbe possibile, anche utile, avere un plug-in Stack Overflow per, diciamo, Eclipse?
Quali funzionalità di Stack Overflow vorresti avere integrato direttamente nel tuo IDE in modo da poterlo utilizzare " nativamente " senza passare a un browser?
EDIT: sto pensando a modi di integrazione più profonda rispetto al semplice utilizzo della pagina Web all'interno dell'IDE. Come quando usi una certa classe Java e hai un problema, le risposte da SO potrebbero divampare. Probabilmente ci sarebbero casi in cui qualcosa di simile è fastidioso, ma altri potrebbero essere molto utili.
Soluzione
Seguendo la risposta di Josh. Questa macro VS cercherà il testo evidenziato in StackOverflow nell'IDE di Visual Studio. Basta evidenziare e premere Alt + F1
Public Sub SearchStackOverflowForSelectedText()
Dim s As String = ActiveWindowSelection().Trim()
If s.Length > 0 Then
DTE.ItemOperations.Navigate("http://www.stackoverflow.com/search?q=" & _
Web.HttpUtility.UrlEncode(s))
End If
End Sub
Private Function ActiveWindowSelection() As String
If DTE.ActiveWindow.ObjectKind = EnvDTE.Constants.vsWindowKindOutput Then
Return OutputWindowSelection()
End If
If DTE.ActiveWindow.ObjectKind = "{57312C73-6202-49E9-B1E1-40EA1A6DC1F6}" Then
Return HTMLEditorSelection()
End If
Return SelectionText(DTE.ActiveWindow.Selection)
End Function
Private Function HTMLEditorSelection() As String
Dim hw As HTMLWindow = ActiveDocument.ActiveWindow.Object
Dim tw As TextWindow = hw.CurrentTabObject
Return SelectionText(tw.Selection)
End Function
Private Function OutputWindowSelection() As String
Dim w As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
Dim ow As OutputWindow = w.Object
Dim owp As OutputWindowPane = ow.OutputWindowPanes.Item(ow.ActivePane.Name)
Return SelectionText(owp.TextDocument.Selection)
End Function
Private Function SelectionText(ByVal sel As EnvDTE.TextSelection) As String
If sel Is Nothing Then
Return ""
End If
If sel.Text.Length = 0 Then
SelectWord(sel)
End If
If sel.Text.Length <= 2 Then
Return ""
End If
Return sel.Text
End Function
Private Sub SelectWord(ByVal sel As EnvDTE.TextSelection)
Dim leftPos As Integer
Dim line As Integer
Dim pt As EnvDTE.EditPoint = sel.ActivePoint.CreateEditPoint()
sel.WordLeft(True, 1)
line = sel.TextRanges.Item(1).StartPoint.Line
leftPos = sel.TextRanges.Item(1).StartPoint.LineCharOffset
pt.MoveToLineAndOffset(line, leftPos)
sel.MoveToPoint(pt)
sel.WordRight(True, 1)
End Sub
Per installare:
- vai su Strumenti - Macro - IDE
- crea un nuovo modulo con un nome a tua scelta sotto " MyMacros " ;. Oppure usa un modulo esistente.
- incolla il codice sopra nel modulo
- aggiungi un riferimento allo spazio dei nomi System.Web (per HttpUtility) al modulo
- chiude la finestra IDE macro
- vai su Strumenti - Opzioni - Ambiente - Tastiera
- digita " google " nella casella di testo Mostra comandi contenenti. La macro SearchGoogleForSelectedText dovrebbe essere visualizzata
- fai clic nella casella di testo Premi tasti di scelta rapida, quindi premi ALT + F1
- fai clic sul pulsante Assegna
- fai clic su OK
Tutto questo è tratto dal Ricerca Google VS Macro di Jeff Atwood , appena modificato per cercare StackOverflow invece.
Altri suggerimenti
Non credo che sarò in grado di svolgere qualsiasi lavoro con SO integrato in un IDE. È quasi altrettanto negativo, se non peggio, dell'integrazione di Digg / Reddit in un IDE.
In Visual Studio, è possibile aggiungere un collegamento per cercare un termine evidenziato in StackOverflow. Jeff Atwood ha scritto di fare qualcosa di simile con Google nella sua Ricerca Google Macro VS.NET post di blog.
L'uso di questo approccio ti consentirebbe di evidenziare un termine o un messaggio di errore (o qualsiasi altro testo selezionabile nell'IDE), premere i tasti di scelta rapida e quindi vedere tutti i risultati corrispondenti su StackOverflow.
Sono sicuro che c'è un modo per farlo anche negli altri IDE.
Se StackOverflow può iniziare a identificare la lingua contenuta in ogni frammento di codice, allora potrei vedere un plugin di completamento del codice / frammento di codice a un IDE che risponde a una sintassi speciale per eseguire ricerche su SO e inserire la parte di codice accettata risposte.
Ad esempio: nella mia fonte potrei digitare:
//# read an XML file
La sintassi // # richiede al plug-in di avviare una ricerca e visualizzare un elenco di titoli di domande. Quando ne scelgo uno, inserisce la parte di codice della risposta accettata.
Non so di Eclipse, ma per Visual Studio, se qualcuno lo desiderasse davvero, potrebbero facilmente aggiungere il feed RSS SO per il canale di notizie "Pagina iniziale" " quindi l'elenco delle domande SO è apparso nella pagina iniziale, o meglio, restringerlo con un tag ( come per C # ). Non è esattamente "integrazione", ma fornirebbe una rapida occhiata alle cose recenti con uno sforzo estremamente ridotto. Tuttavia, non sono sicuro di come "utile" sarebbe.
Hai il plugin RSS per Eclipse per leggere StackOverflow mangime.
Ma sono con te, un plug-in SO Eclipse sarebbe davvero bello.
Potresti semplicemente impostarlo come pagina iniziale in Visual Studio.
Non sono sicuro di quale beneficio ciò fornirebbe ... ma a ciascuno il suo.