20

わかりました、これは私が持っているクレイジーなアイデアです。スタック オーバーフローは非常に構造化されており、開発アプリケーションに統合できます。では、たとえば Eclipse 用の Stack Overflow プラグインを用意することは可能であり、さらには有用でしょうか?

ブラウザに変更せずに「ネイティブ」に使用できるように、スタック オーバーフローのどの機能を IDE に直接統合したいですか?

編集: IDE 内で Web ページを使用するだけでなく、より深い統合の方法を考えています。たとえば、特定の Java クラスを使用して問題が発生した場合、SO からの回答が炎上する可能性があります。このようなことが煩わしい場合もあるでしょうが、非常に役立つ場合もあります。

4

7 に答える 7

21

Joshの回答をフォローアップします。このVSマクロは、VisualStudioIDEで強調表示されたテキストをStackOverflowで検索します。強調表示して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.Web名前空間(HttpUtilityの場合)への参照をモジュールに追加します
  5. マクロIDEウィンドウを閉じます
  6. [ツール]-[オプション]-[環境]-[キーボード]に移動します
  7. [コマンドを含む表示]テキストボックスに「google」と入力します。SearchGoogleForSelectedTextマクロが表示されます
  8. [ショートカットキーを押す]テキストボックスをクリックしてから、Alt+F1を押します。
  9. [割り当て]ボタンをクリックします
  10. [OK]をクリックします

これはすべて、JeffAtwoodのGoogleSearch VS Macroの投稿から取得したもので、代わりにStackOverflowを検索するように変更されています。

于 2008-09-25T18:06:15.583 に答える
11

SO を IDE に統合して作業を完了できるとは思えません。Digg/Reddit を IDE に統合するのと同じくらい最悪です。

于 2008-09-25T17:08:03.693 に答える
5

Visual Studio では、StackOverflow で強調表示された用語を検索するためのショートカットを追加できます。Jeff Atwood は、 Google 検索 VS.NET マクロのブログ エントリで、Google で同様のことを行うことについて書いています。

このアプローチを使用すると、用語またはエラー メッセージ (または IDE で選択可能なその他のテキスト) を強調表示し、ショートカット キーを押して、一致するすべての結果を StackOverflow で表示できます。

他のIDEでもこれを行う方法があると確信しています。

于 2008-09-25T17:05:44.400 に答える
3

StackOverflow が各コード スニペットに含まれる言語の識別を開始できる場合、SO で検索を実行し、受け入れられた回答のコード部分を挿入するための特別な構文に応答する IDE へのコード補完/コード スニペット プラグインを確認できます。

例:私のソースでは、次のように入力できます。

//# read an XML file

//# 構文は、検索を開始し、質問タイトルのリストを表示するようにプラグインに指示します。1 つを選択すると、受け入れられた回答のコード部分が挿入されます。

于 2008-09-25T17:08:00.603 に答える
2

Eclipse についてはわかりませんが、Visual Studio の場合、誰かが本当にこれを望んでいる場合は、「スタート ページ ニュース チャネル」の SO RSS フィードを簡単に追加できるので、SO の質問リストがスタート ページに表示されます。タグで下に置きます(C# のように)。それは正確には「統合」ではありませんが、非常に少ない労力で最近のものをすばやく見ることができます. ただし、それがどれほど「役立つ」かはわかりません。

于 2008-09-25T17:03:25.797 に答える
1

StackOverflow フィードを読み取るための Eclipse 用のRSS プラグインがあります。

しかし、私はあなたと一緒です。SO Eclipse プラグインは本当にクールです。

于 2008-09-25T17:06:43.087 に答える
0

Visual Studio でスタート ページとして設定できます。

これがどのようなメリットをもたらすかはわかりませんが、それぞれにメリットがあります。

于 2008-09-25T16:59:48.503 に答える