سؤال

حسنًا، هذه مجرد فكرة مجنونة لدي.يبدو Stack Overflow منظمًا للغاية وقابلاً للتكامل في تطبيقات التطوير.فهل من الممكن، أو حتى من المفيد، الحصول على مكون إضافي لـ Stack Overflow لـ Eclipse على سبيل المثال؟

ما هي ميزات Stack Overflow التي ترغب في دمجها مباشرة في IDE الخاص بك حتى تتمكن من استخدامه "محليًا" دون التغيير إلى المتصفح؟

يحرر:أفكر في طرق للتكامل الأعمق بدلاً من مجرد استخدام صفحة الويب داخل IDE.كما هو الحال عندما تستخدم فئة Java معينة وتواجه مشكلة، فقد تظهر الإجابات من SO.من المحتمل أن تكون هناك حالات يكون فيها شيء من هذا القبيل مزعجًا، لكن حالات أخرى قد تكون مفيدة جدًا.

هل كانت مفيدة؟

المحلول

متابعة إجابة جوش.سيبحث VS Macro هذا في 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.Web (لـ HttpUtility) إلى الوحدة النمطية
  5. أغلق نافذة IDE للماكرو
  6. انتقل إلى الأدوات - الخيارات - البيئة - لوحة المفاتيح
  7. اكتب "google" في مربع النص "إظهار الأوامر التي تحتوي على".يجب أن يظهر الماكرو SearchGoogleForSelectedText
  8. انقر داخل مربع النص "اضغط على مفاتيح الاختصار"، ثم اضغط على ALT+F1
  9. انقر فوق الزر تعيين
  10. انقر فوق موافق

كل هذا مأخوذ من جيف أتوود بحث جوجل مقابل ماكرو تم تعديله للتو للبحث في StackOverflow بدلاً من ذلك.

نصائح أخرى

لا أعتقد أنني سأتمكن من إنجاز أي عمل باستخدام SO المدمج في IDE.إنه أمر سيء تقريبًا، إن لم يكن أسوأ من دمج Digg/Reddit في IDE.

في Visual Studio، يمكنك إضافة اختصار للبحث عن مصطلح مميز في StackOverflow.كتب جيف أتوود عن القيام بشيء مماثل مع Google في كتابه بحث جوجل VS.NET ماكرو دخول بلوق.

سيسمح لك استخدام هذا الأسلوب بتمييز مصطلح أو رسالة خطأ (أو أي نص آخر يمكن تحديده في IDE)، والضغط على مفاتيح الاختصار، ثم رؤية جميع النتائج المطابقة على StackOverflow.

أنا متأكد من أن هناك طريقة للقيام بذلك في بيئة تطوير متكاملة (IDE) أخرى أيضًا.

إذا تمكن StackOverflow من البدء في تحديد اللغة التي يحتوي عليها كل مقتطف تعليمات برمجية، فيمكنني رؤية مكون إضافي لاستكمال التعليمات البرمجية/مقتطف التعليمات البرمجية إلى IDE الذي يستجيب لبناء جملة خاص لإجراء عمليات البحث على SO وإدراج جزء التعليمات البرمجية للإجابات المقبولة.

على سبيل المثال:في المصدر الخاص بي قد أكتب:

//# read an XML file

يطالب بناء الجملة //# المكون الإضافي ببدء البحث وعرض قائمة بعناوين الأسئلة.عندما أختار واحدة، فإنها تُدرج جزء الكود الخاص بالإجابة المقبولة.

لا أعرف شيئًا عن Eclipse، لكن بالنسبة إلى Visual Studio، إذا أراد شخص ما ذلك حقًا، فيمكنه بسهولة إضافة موجز SO RSS لـ "قناة أخبار الصفحة الرئيسية" بحيث تظهر قائمة أسئلة SO في صفحة البداية، أو حتى بشكل أفضل، بشكل ضيق أسفل مع علامة (مثل C#).إنه ليس "تكاملًا" تمامًا، ولكنه سيوفر نظرة سريعة على الأشياء الحديثة بجهد قليل للغاية.ومع ذلك، لست متأكدا من مدى "مفيدة" ذلك.

لديك البرنامج المساعد لآر إس إس لكي يتمكن Eclipse من قراءة موجز StackOverflow.

لكنني معك، سيكون البرنامج الإضافي SO Eclipse رائعًا حقًا.

يمكنك فقط تعيينها كصفحة البداية الخاصة بك في Visual Studio.

لست متأكدًا من الفائدة التي سيوفرها هذا ...بل لكل واحد خاصته.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top