Intégrer le débordement de pile dans les IDE?
-
02-07-2019 - |
Question
D'accord, c'est juste une idée folle que j'ai. Stack Overflow semble très structuré et intégrable dans les applications de développement. Alors serait-il possible, même utile, d'avoir un plugin Stack Overflow pour, disons, Eclipse?
Quelles fonctionnalités de Stack Overflow voudriez-vous avoir directement intégrées à votre IDE afin que vous puissiez les utiliser "nativement"? sans changer de navigateur?
EDIT: Je pense à des moyens d’intégrer plus profondément que la simple utilisation de la page Web dans l’EDI. Comme lorsque vous utilisez une certaine classe Java et que vous rencontrez un problème, les réponses de SO peuvent apparaître. Il y aurait probablement des cas où quelque chose comme cela est ennuyeux, mais d'autres pourraient être très utiles.
La solution
Suivi de la réponse de Josh. Cette macro VS recherchera dans StackOverflow le texte en surbrillance dans l'EDI de Visual Studio. Mettez en surbrillance et appuyez sur 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
Pour installer:
- allez dans Outils - Macros - IDE
- créez un nouveau module avec le nom de votre choix sous "MyMacros". Ou utilisez un module existant.
- collez le code ci-dessus dans le module
- ajouter une référence à l'espace de noms System.Web (pour HttpUtility) au module
- ferme la fenêtre de la macro IDE
- allez dans Outils - Options - Environnement - Clavier
- tapez " google " dans la zone de texte Afficher les commandes contenant. La macro SearchGoogleForSelectedText doit apparaître
- cliquez dans la zone de texte Appuyez sur les touches de raccourci, puis appuyez sur ALT + F1
- cliquez sur le bouton Attribuer
- cliquez sur OK
Tout cela est tiré de la recherche Google VS macro Google de Google . , juste modifié pour rechercher StackOverflow à la place.
Autres conseils
Je ne pense pas pouvoir réaliser de travail avec SO intégré dans un IDE. C’est presque aussi mauvais, sinon pire que d’intégrer Digg / Reddit dans un IDE.
Dans Visual Studio, vous pouvez ajouter un raccourci pour rechercher un terme en surbrillance dans StackOverflow. Jeff Atwood a écrit sur le fait de faire quelque chose de similaire avec Google dans sa recherche Google dans le cadre d'une macro VS.NET entrée de blog.
Cette approche vous permettrait de mettre en évidence un terme ou un message d'erreur (ou tout autre texte sélectionnable dans l'EDI), d'appuyer sur les touches de raccourci, puis de voir tous les résultats correspondants sur StackOverflow.
Je suis sûr qu'il existe un moyen de faire cela dans d'autres IDE.
Si StackOverflow peut commencer à identifier la langue contenue dans chaque extrait de code, un plug-in de complément de code / extrait de code dans un environnement de développement intégré (IDE) répond à une syntaxe spéciale permettant d'effectuer des recherches sur le SO et d'insérer la partie de code acceptée. réponses.
Exemple: dans mon source, je pourrais taper:
//# read an XML file
La syntaxe // # invite le plug-in à lancer une recherche et à afficher une liste de titres de questions. Lorsque j'en choisis un, il insère la partie de code de la réponse acceptée.
Je ne connais pas Eclipse, mais pour Visual Studio, si quelqu'un le souhaitait vraiment, il pourrait facilement ajouter le flux RSS de la chaîne de télévision "Start Page News Channel". la liste des questions SO est donc apparue dans la page de démarrage, ou mieux encore, réduisez-la avec un tag ( comme pour C # ). Ce n'est pas exactement "intégration", mais cela donnerait un aperçu rapide des choses récentes avec un minimum d'effort. Cependant, vous ne savez pas comment & "utile" " ce serait.
Vous disposez du plug-in RSS permettant à Eclipse de lire le StackOverflow nourrir.
Mais je suis avec vous, un plugin SO Eclipse serait vraiment cool.
Vous pouvez simplement le définir comme page de démarrage dans Visual Studio.
Je ne sais pas quel avantage cela apporterait ... mais à chacun son avantage.