Вопрос

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

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

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

Это было полезно?

Решение

Развиваем ответ Джоша.Этот макрос 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

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

  1. перейдите в меню Инструменты - Макросы - IDE
  2. создайте новый модуль с именем по вашему выбору в разделе "MyMacros".Или используйте существующий модуль.
  3. вставьте приведенный выше код в модуль
  4. добавьте ссылку на System.Веб-пространство имен (для HttpUtility) в модуль
  5. закройте окно IDE макроса
  6. перейдите в меню Инструменты - Параметры - Среда - Клавиатура
  7. введите "google" в поле Показать команды, содержащие текстовое поле.Должен появиться макрос SearchGoogleForSelectedText
  8. щелкните в текстовом поле "Нажать сочетание клавиш", затем нажмите ALT + F1
  9. нажмите кнопку Назначить
  10. нажмите кнопку ОК

Все это взято из книги Джеффа Этвуда Поиск В Google ПРОТИВ макроса сообщение, просто измененное для поиска в StackOverflow вместо этого.

Другие советы

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

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

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

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

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

Например:в моем исходном коде я мог бы ввести:

//# read an XML file

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

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

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

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

Вы могли бы просто установить его в качестве своей начальной страницы в Visual Studio.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top