Подтвердить что ты не робот

Интегрировать StackOverflow в IDE?

Хорошо, это просто сумасшедшая идея. StackOverflow выглядит очень структурированным и интегрируемым в приложения для разработки. Так что, возможно, даже полезно иметь плагин StackOverflow для, скажем, Eclipse?

Какие функции StackOverflow вы хотели бы встроить в вашу среду IDE, чтобы вы могли использовать ее "изначально", не переходя в браузер?

EDIT: Я думаю о способах более глубокой интеграции, чем просто использовать веб-страницу внутри IDE. Подобно тому, как вы используете определенный Java-класс и имеете проблему, ответы от SO могут вспыхнуть. Вероятно, будут случаи, когда что-то вроде этого раздражает, но другие могут быть очень полезными.

4b9b3361

Ответ 1

После ответа Джоша. Этот макрос VS будет искать StackOverflow для выделенного текста в среде Visual Studio IDE. Просто выделите и нажмите 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

Для установки:

  • перейдите в Инструменты - Макросы - IDE
  • создайте новый модуль с именем по вашему выбору в разделе "MyMacros". Или используйте существующий модуль.
  • вставьте указанный выше код в модуль
  • добавьте ссылку на пространство имен System.Web(для HttpUtility) в модуль
  • закрыть окно макроса макроса
  • перейти в Инструменты - Параметры - Среда - Клавиатура
  • введите "google" в Show Commands, содержащий текстовое поле. Макрос SearchGoogleForSelectedText должен отображаться
  • нажмите в текстовом поле "Нажмите клавиши быстрого доступа", затем нажмите ALT + F1
  • нажмите кнопку "Назначить"
  • нажмите "ОК"

Это все взято из сообщения Jeff Atwood Google Search VS Macro, только что измененного для поиска в StackOverflow.

Ответ 2

Я не думаю, что смогу выполнить любую работу с SO, интегрированной в среду IDE. Это почти так же плохо, если не хуже, чем интеграция Digg/Reddit в среду IDE.

Ответ 3

В Visual Studio вы можете добавить ярлык для поиска выделенного термина в StackOverflow. Джефф Этвуд писал о том, как делать что-то подобное с Google в своем блоге в Google....

Используя этот подход, вы сможете выделить термин или сообщение об ошибке (или любой другой выбираемый текст в среде IDE), нажать клавиши быстрого доступа, а затем просмотреть все соответствующие результаты в StackOverflow.

Я уверен, что есть способ сделать это и в другой среде IDE.

Ответ 4

Я не знаю об Eclipse, но для Visual Studio, если кто-то действительно этого хотел, они могли легко добавить канал SO RSS для "Начального канала новостей", поэтому список вопросов SO появился на стартовой странице или даже лучше, сузить его с помощью тега (как для С#). Это не совсем "интеграция", но это обеспечило бы быстрый взгляд на недавние вещи с очень небольшими усилиями. Тем не менее, не уверен, насколько это "полезно".

Ответ 5

Если StackOverflow может начать идентифицировать язык, который содержит каждый фрагмент кода, я мог бы увидеть плагин для завершения кода/кода-снипета в среде IDE, которая отвечает на специальный синтаксис для выполнения поиска на SO и вставку части кода принятого ответы.

Например: в моем источнике я могу ввести:

//# read an XML file

Синтаксис//# предлагает плагину начать поиск и отобразить список названий вопросов. Когда я выбираю один, он вставляет часть кода принятого ответа.

Ответ 6

У вас есть RSS-плагин для Eclipse, чтобы прочитать поток StackOverflow.

Но я с тобой, плагин SO Eclipse будет действительно круто.

Ответ 7

Вы можете просто установить его как свою стартовую страницу в Visual Studio.

Не знаю, какую выгоду это принесло бы... но каждому свое.