2008-09-25 12 views
19

Okay, das ist nur eine verrückte Idee, die ich habe. Stack Overflow sieht in Entwicklungsanwendungen sehr strukturiert und integrierbar aus. Wäre es möglich, sogar nützlich, ein Stack Overflow-Plugin für zB Eclipse zu haben?Stapelüberlauf in IDEs integrieren?

Welche Funktionen von Stack Overflow hätten Sie gerne direkt in Ihre IDE integriert, damit Sie sie "nativ" verwenden können, ohne zu einem Browser wechseln zu müssen?

EDIT: Ich denke über Wege der tieferen Integration als nur die Verwendung der Webseite in der IDE. Wenn Sie eine bestimmte Java-Klasse verwenden und ein Problem haben, können die Antworten von SO aufflammen. Es würde wahrscheinlich Fälle geben, in denen so etwas nervig ist, aber andere können sehr hilfreich sein.

+0

Ich weiß, das ist ein alter Post, aber es ist wieder relevant, denke ich! SO-Dokumentation ist ein cooles neues Projekt, das die Community ermutigt, Referenzcode und Erklärungen zu verschiedenen Frameworks zu erstellen, damit alle davon profitieren können. Stellen Sie sich vor, dass dies in Ihre IDE integriert ist, sodass Sie den Referenzcode, der von der API direkt in Ihrer IDE abgerufen wird, kompilieren und ausführen können. Hört sich an, und ich wäre überall dabei. –

Antwort

20

Nach Joshs Antwort. Dieses VS Macro sucht StackOverflow nach hervorgehobenem Text in der Visual Studio IDE.Markieren Sie einfach und drücken Sie 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 

zu installieren:

  1. gehen Sie auf Extras - Makros - IDE
  2. ein neues Modul mit einem Namen Ihrer Wahl unter "MyMacros" erstellen. Oder verwenden Sie ein vorhandenes Modul.
  3. fügen Sie den obigen Code in das Modul
  4. einen Verweis auf den Namespace System.Web hinzufügen (für HttpUtility) an das Modul
  5. dem Makro IDE Fenster
  6. gehen Sie auf Extras in der Nähe - Optionen - Umwelt - Tastatur
  7. Geben Sie "google" in die Show-Befehle ein, die Textfeld enthalten. Die SearchGoogleForSelectedText Makro zeigen sollte
  8. Klick in der Presse Shortcut-Tasten Textbox, und drücken Sie ALT + F1
  9. klicken Sie auf die Schaltfläche Zuweisen
  10. klicken Sie auf OK

Das alles von Jeff Atwood genommen wird Google Search VS Macro Post, geändert, um stattdessen StackOverflow zu suchen.

+0

Gibt es einen ähnlichen Weg, dies in Eclipse zu tun? – Thorsten79

+0

Ich habe eine kleine Änderung an Ihrem Makro vorgenommen, das "s =" scheint nun ein "q =" zu sein –

+0

Hier ist ein [plugin] (https://github.com/MarounMaroun/SO-Eclipse-Plugin) für Eclipse. – Maroun

0

Sie könnten es einfach als Ihre Startseite in Visual Studio festlegen.

Nicht sicher, welchen Nutzen dies bieten würde ... aber jedem sein eigenes.

3

Ich weiß nicht über Eclipse, aber für Visual Studio, wenn jemand wirklich wollte, könnten sie leicht den SO RSS-Feed für den "Start Page News Channel" hinzufügen, so dass die SO-Fragenliste auf der Startseite erschien noch besser, verengen Sie es mit einem Tag (like for C#). Es ist nicht gerade "Integration", aber es würde einen schnellen Blick auf die letzten Dinge mit extrem wenig Aufwand ermöglichen. Allerdings nicht sicher, wie "nützlich" wäre.

+0

Wir machen genau das (RSS). Es bietet eine schnelle und einfache Möglichkeit, die Themen zu überfliegen. – Gerard

5

In Visual Studio können Sie eine Verknüpfung hinzufügen, um nach einem markierten Begriff in StackOverflow zu suchen. Jeff Atwood schrieb in seinem Blogeintrag Google search VS.NET macro etwas über Google ähnlich.

Mit diesem Ansatz können Sie einen Begriff oder eine Fehlermeldung (oder einen anderen auswählbaren Text in der IDE) markieren, die Tastenkombinationen drücken und dann alle übereinstimmenden Ergebnisse in StackOverflow sehen.

Ich bin mir sicher, es gibt einen Weg, dies auch in anderen IDEs zu tun.

1

Sie haben die RSS plugin für Eclipse, um den StackOverflow-Feed zu lesen.

Aber ich bin mit dir, ein SO Eclipse-Plugin wäre wirklich cool.

3

Wenn StackOverflow die Sprache identifizieren kann, die jedes Code-Snippet enthält, dann könnte ich ein Code-Vervollständigung/Code-Snippet-Plugin zu einer IDE sehen, die auf eine spezielle Syntax für die Suche auf SO reagiert und den Code-Teil von akzeptierte Antworten.

ZB: in meiner Quelle könnte ich geben:

//# read an XML file 

Die // # Syntax fordert das Plugin eine Suche und zeigt eine Liste der Frage Titel zu starten. Wenn ich eins auswähle, fügt es den Codeteil der angenommenen Antwort ein.

+0

Meh - Kopieren/Einfügen Code im Allgemeinen ist eine Bedrohung - ich würde es hassen, es einfacher zu machen, als es bereits ist. –

+3

Yunwen Yes Doktorarbeit hat so etwas gemacht. Es war ein Emacs-Plug-in namens CodeBroker, und einige natürliche Sprache Parsing von Kommentaren und versuchte, die Absicht des Programmierers abzuleiten und Vorschläge für vorhandenen Code, der etwas ähnliches tut. –

11

Ich glaube nicht, dass ich in der Lage sein werde, die Arbeit mit SO in eine IDE integriert zu bekommen. Es ist fast genauso schlimm, wenn nicht sogar schlimmer als die Integration von Digg/Reddit in eine IDE.