2008-09-25 16 views
19

Tamam, bu benim sahip olduğum çılgın bir fikir. Yığın Taşması, geliştirme uygulamalarına çok yapılandırılmış ve bütünleştirilebilir görünüyor. Yani, Eclipse için bir Stack Overflow eklentisine sahip olmak bile faydalı olabilir mi?IDE'lere Yığın Taşımı Entegre Edilsin mi?

Yığın Taşması'nın hangi özellikleri IDE'nize doğrudan entegre edilmek istiyorsa, tarayıcıya geçiş yapmadan "yerel olarak" kullanabilirsiniz.

DÜZENLEME: IDE içindeki web sayfasını kullanmaktan çok daha kapsamlı bir bütünleşme yolları düşünüyorum. Belirli bir Java sınıfını kullandığınızda ve bir probleminiz olduğunda olduğu gibi, SO yanıtları da alev alabilir. Muhtemelen böyle bir şeyin can sıkıcı olduğu durumlar olabilir, ama diğerleri çok yardımcı olabilir.

+0

Bu eski bir yazı olduğunu biliyorum, ama yine de ilgili olduğunu düşünüyorum! SO dökümantasyonu, toplumu, herkesin yararlanması için çeşitli çerçevelerin referans kodunu ve açıklamalarını oluşturması için cesaretlendiren yeni ve havalı bir projedir. Bunu doğrudan IDE'nizde API'den alınan referans kodunu derleyip yürütebilmeniz için IDE'nize entegre ettiğinizi düşünün. Rad'a ses çıkarır ve herşeyin üstünde olurdum. –

cevap

20

Josh'un cevabını takip eder. Bu VS Makro, Visual Studio IDE'de vurgulanmış metin için StackOverflow'u arayacaktır.Sadece vurgulamak ve basın 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 

yüklemek için:

  1. Araçlar gitmek - makrolar - IDE
  2. "MyMacros" altında istediğiniz bir adla yeni bir Modülü oluşturun. Veya mevcut bir modülü kullanın. Seçenekler - - Çevre -
  3. Araçlar gitmek makro IDE penceresi
  4. kapatmak modülüne (HttpUtility için) System.Web ad başvuru ekleyin modüle yukarıdaki kodu yapıştırın Klavye
  5. İçeren Komutları İçeren metin kutusunda
  6. "google" yazın. SearchGoogleForSelectedText makro sonra ALT + F1
  7. basın basın Kısayol Tuşları metin kutusuna
  8. tıklamaya göstermelidir Ata düğmesini tıklayın
  9. tık
Bu, tüm Jeff Atwood Google Search VS Macro görevden alınır

Tamam, Yerine StackOverflow aramak için sadece değiştirildi.

+0

Eclipse'de bunu yapmak için benzer bir yolu var mı? – Thorsten79

+0

Makronuzda küçük bir değişiklik yaptım, "s =" artık bir "q =" gibi görünüyor. –

+0

İşte Eclipse için bir [eklenti] (https://github.com/MarounMaroun/SO-Eliplip-Plugin). – Maroun

0

Bunu, Visual Studio'da Başlangıç ​​sayfanız olarak ayarlayabilirsiniz.

Bunun ne yarar sağlayacağından emin değil ... ama her biri için.

3

Eclipse hakkında bilgi sahibi değilim, ancak Visual Studio için, eğer gerçekten bunu isterse, "Başlangıç ​​Sayfası Haber Kanalı" için SO RSS beslemesini kolayca ekleyebilirler, böylece SO soru listesi başlangıç ​​sayfasında görünürdü veya daha da iyisi, bir etiketle daralt (like for C#). Tam olarak "entegrasyon" değil, ama son derece az çabayla son olaylara hızlı bir bakış getirecektir. Ancak, nasıl "yararlı" olacağını emin değilim.

+0

Tam olarak bunu yapıyoruz (RSS). Konuları gözden geçirmenin hızlı ve kolay bir yolunu sunar. – Gerard

5

Visual Studio'da, StackOverflow'ta vurgulanmış bir terimi aramak için bir kısayol ekleyebilirsiniz. Jeff Atwood, Google search VS.NET macro blog girişinde Google ile benzer bir şey yapmayı yazdı.

Bu yaklaşımı kullanarak bir terim veya hata mesajını (veya IDE'deki herhangi bir seçilebilir metni) vurgulamanızı, kısayol tuşlarına basmanızı ve StackOverflow'taki tüm eşleşen sonuçları görmenizi sağlar.

Diğer IDE'lerde de bunu yapmanın bir yolu olduğundan eminim.

1

StackOverflow beslemesini okumak için Eclipse için RSS plugin'a sahipsiniz.

Ama ben seninleyim, bir SO Eclipse eklentisi gerçekten harika olurdu.

3

StackOverflow, her bir kod snippet'inin içerdiği dili tanımlamaya başlayabilirse, bir kod tamamlama/kod snippet eklentisini, SO üzerinde arama yapmak için özel bir sözdizimine yanıt veren ve kod bölümünün eklendiği bir IDE'ye görebiliyordum kabul edilen cevaplar.

Örn: benim kaynağında ben yazabilirsiniz:

//# read an XML file 

// # sözdizimi bir arama başlatmak ve soru başlıklarının listesini görüntülemek için eklenti ister. Birini seçtiğimde, kabul edilen cevabın kod kısmını ekler.

+0

Meh - kopya/yapıştırılan kod genel olarak bir tehdittir - zaten olduğundan daha kolay yapmaktan nefret ediyorum. –

+3

Yunwen Ye'nin doktora tezi böyle bir şey yaptı. CodeBroker adlı bir Emacs eklentisiydi ve yorumların bazı doğal dillerini ayrıştırarak programcının niyetini çıkarmayı denedi ve benzer bir şey yapan mevcut kod önerilerini yaptı. –

11

Bir IDE'ye entegre edilmiş SO ile yapılmış herhangi bir işi alabileceğimi düşünmüyorum. Digg/Reddit'i bir IDE'ye entegre etmekten daha kötü değilse, neredeyse kötü.

İlgili konular