Интегрировать переполнение стека в IDE?
Ладно, у меня просто сумасшедшая идея. Stack Overflow выглядит очень структурированным и интегрируемым в приложения для разработки. Так возможно ли было бы, даже полезно, иметь плагин Stack Overflow, скажем, для Eclipse?
Какие функции Stack Overflow вы бы хотели напрямую интегрировать в IDE, чтобы вы могли использовать его "изначально", не переходя в браузер?
РЕДАКТИРОВАТЬ: я думаю о способах более глубокой интеграции, чем просто использование веб-страницы внутри IDE. Например, когда вы используете определенный класс Java и у вас есть проблема, ответы от SO могут вспыхнуть. Вероятно, будут случаи, когда что-то подобное раздражает, но другие могут быть очень полезными.
7 ответов
Продолжая ответ Джоша. Этот макрос VS будет искать в Stackru выделенный текст в Visual Studio IDE. Просто выделите и нажмите Alt+F1
Public Sub SearchStackruForSelectedText()
Dim s As String = ActiveWindowSelection().Trim()
If s.Length > 0 Then
DTE.ItemOperations.Navigate("http://www.stackru.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) в модуль
- закройте окно макроса IDE
- перейдите в Инструменты - Параметры - Среда - Клавиатура
- введите "google" в поле Показать команды, содержащие текст. Должен появиться макрос SearchGoogleForSelectedText
- щелкните в текстовом поле "Сочетание клавиш", затем нажмите ALT+F1
- нажмите кнопку Назначить
- нажмите ОК
Все это взято из поста Джеффа Этвуда " Макрос Google Search VS", вместо этого он был изменен для поиска в Stackru.
Я не думаю, что смогу выполнить какую-либо работу с SO, интегрированным в IDE. Это почти так же плохо, если не хуже, чем интеграция Digg/Reddit в IDE.
В Visual Studio вы можете добавить ярлык для поиска выделенного термина в Stackru. Джефф Этвуд писал о том, как сделать что-то подобное с Google, в своей записи в блоге макросов VS.NET о поиске Google.
Использование этого подхода позволит вам выделить термин или сообщение об ошибке (или любой другой выбираемый текст в IDE), нажать сочетания клавиш, а затем просмотреть все соответствующие результаты в Stackru.
Я уверен, что есть способ сделать это и в других IDE.
Если Stackru может начать определять язык, который содержит каждый фрагмент кода, то я мог бы видеть плагин дополнения кода / кода-фрагмента для IDE, который отвечает на специальный синтаксис для выполнения поиска в SO и вставки части кода принятых ответов.
Например: в моем источнике я мог бы напечатать:
//# read an XML file
Синтаксис //# предлагает плагину начать поиск и отобразить список заголовков вопросов. Когда я выбираю один, он вставляет часть кода принятого ответа.
Я не знаю об Eclipse, но для Visual Studio, если бы кто-то действительно хотел этого, он мог бы легко добавить SO RSS-фид для "Новостного канала стартовой страницы", чтобы список вопросов SO появился на стартовой странице, или, что еще лучше, узкий это с тегом ( как для C#). Это не совсем "интеграция", но она позволит быстро взглянуть на последние вещи с минимальными усилиями. Однако не уверен, насколько "полезным" это будет.
У вас есть плагин RSS для Eclipse для чтения ленты Stackru.
Но я с тобой, плагин SO Eclipse был бы действительно крут.
Вы можете просто установить его в качестве стартовой страницы в Visual Studio.
Не уверен, какую пользу это даст... но каждому свое.