2008-09-25 19 views
19

Bien, esta es solo una idea loca que tengo. Stack Overflow se ve muy estructurado e integrable en aplicaciones de desarrollo. Entonces, ¿sería posible, incluso útil, tener un plugin Stack Overflow para, digamos, Eclipse?¿Integra el desbordamiento de pila en IDEs?

¿Qué funciones de Stack Overflow le gustaría tener integradas directamente en su IDE para que pueda usarlas "de forma nativa" sin cambiar a un navegador?

EDIT: Estoy pensando en maneras de una integración más profunda que simplemente usando la página web dentro del IDE. Al igual que cuando utiliza una determinada clase de Java y tiene un problema, las respuestas de SO pueden estallar. Probablemente habrá casos en que algo como esto sea molesto, pero otros pueden ser muy útiles.

+0

Sé que esta es una publicación anterior, pero de nuevo es relevante. La documentación de SO es un nuevo y genial proyecto que alienta a la comunidad a crear código de referencia y explicaciones de varios marcos para que todos puedan beneficiarse. Imagínese esto integrado en su IDE, de modo que incluso pueda compilar y ejecutar el código de referencia recuperado de la API directamente en su IDE. Suena radiante, y yo estaría en todo eso. –

Respuesta

20

Respondiendo a la respuesta de Josh. Esta VS Macro buscará StackOverflow para el texto resaltado en el IDE de Visual Studio.Sólo tienes que seleccionar y presione 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 

Para instalar:

  1. vaya a Herramientas - Macros - IDE
  2. crear un nuevo módulo con un nombre de su elección bajo "MyMacros". O usa un módulo existente.
  3. pegar el código anterior en el módulo
  4. agregar una referencia al espacio de nombres System.Web (por HttpUtility) al módulo
  5. cerrar la ventana IDE macro
  6. vaya a Herramientas - Opciones - Medio Ambiente - Teclado
  7. escriba "google" en el cuadro de texto Mostrar comandos que contienen el cuadro de texto. La macro SearchGoogleForSelectedText debe aparecer
  8. clic en la prensa de texto Teclas de acceso directo, a continuación, pulse ALT + F1
  9. haga clic en el botón Asignar
  10. haga clic en Aceptar

Todo esto está tomado de Google Search VS Macro post de Jeff Atwood, acaba de modificar para buscar StackOverflow en su lugar.

+0

¿Hay alguna manera similar de hacer esto en Eclipse? – Thorsten79

+0

Hice un ligero cambio en su macro, la "s =" ahora parece ser una "q =" –

+0

Aquí hay un [complemento] (https://github.com/MarounMaroun/SO-Eclipse-Plugin) para Eclipse. – Maroun

0

Puede simplemente configurarlo como su página de inicio en Visual Studio.

No estoy seguro de qué beneficio proporcionaría esto ... pero a cada uno es suyo.

3

No sé acerca de Eclipse, pero para Visual Studio, si alguien realmente quisiera esto podría agregar fácilmente la fuente RSS para el "Canal de noticias de la página de inicio" para que la lista de preguntas apareciera en la página de inicio o aún mejor, acórtelo con una etiqueta (like for C#). No es exactamente "integración", pero proporcionaría un vistazo rápido a las cosas recientes con muy poco esfuerzo. Sin embargo, no estoy seguro de cuán "útil" sería.

+0

Hacemos exactamente eso (RSS). Proporciona una manera rápida y fácil de leer los temas. – Gerard

5

En Visual Studio, puede agregar un atajo para buscar un término resaltado en StackOverflow. Jeff Atwood escribió sobre hacer algo similar con Google en su entrada de blog Google search VS.NET macro.

El uso de este enfoque le permite resaltar un término o mensaje de error (o cualquier otro texto seleccionable en el IDE), presionar las teclas de atajo y luego ver todos los resultados coincidentes en StackOverflow.

Estoy seguro de que hay una manera de hacer esto en otros IDE también.

1

Tiene el RSS plugin para que Eclipse lea la alimentación de StackOverflow.

Pero estoy contigo, un plugin de SO Eclipse sería genial.

3

Si StackOverflow puede comenzar a identificar el lenguaje que contiene cada fragmento de código, entonces podría ver un complemento de código completado/fragmento de código en un IDE que responda a una sintaxis especial para realizar búsquedas en SO e insertar la porción de código de respuestas aceptadas

Por ejemplo: en mi fuente me podría escribir:

//# read an XML file 

El // # sintaxis indica al plugin para iniciar una búsqueda y mostrar una lista de títulos de interrogación. Cuando elijo uno, inserta la porción del código de la respuesta aceptada.

+0

Meh: copiar/pegar el código en general es una amenaza. Odiaría hacerlo más fácil de lo que ya es. –

+3

La tesis de doctorado de Yunwen Ye hizo algo como esto. Era un plugin de Emacs llamado CodeBroker, e hizo un análisis de lenguaje natural de los comentarios e intentó inferir la intención del programador y hacer sugerencias de código existente que hace algo similar. –

11

No creo que pueda hacer ningún trabajo con SO integrado en un IDE. Es casi tan malo, si no peor, integrar Digg/Reddit en un IDE.

Cuestiones relacionadas