Doom-emacs: c ++ و c # الإكمال التلقائي

تم إنشاؤها على ٢٨ يناير ٢٠٢٠  ·  21تعليقات  ·  مصدر: hlissner/doom-emacs

ما الذي تحاول تحقيقه؟
الحصول على emacs الخاص بي للعمل مثل vscode ، كما لو قمت بتثبيت امتدادات c ++ و c # (للوحدة) vscode ولديها إكمال تلقائي (الرئيسي الذي يهمني). لقد بحثت كثيرًا والشيء الوحيد الذي حصلت عليه هو أنني بحاجة إلى استخدام وضع الشركة ، ولست متأكدًا مما إذا كانت هناك طرق أخرى ، إذا كان الأمر كذلك ، يرجى تثقيفي.

ماذا حاولت؟
دخلت .doom.d / init.el و uncommented cc و csharp وقمت بتحديث bin / doom لكني أحصل فقط على تمييز بناء الجملة (الألوان في النص).

معلومات النظام


الإصدار 26.3 من emacs
الميزات XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB NotIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBRE XIM MODULES
بناء 29 أغسطس 2019
buildopts (--prefix = / usr --sysconfdir = / etc --libexecdir = / usr / lib --localstatedir = / var --with-x-toolkit = gtk3 - with-xft - with-modules 'CFLAGS = -march = x86-64 -mtune = عام -O2 -pipe -fno-plt 'CPPFLAGS = -D_FORTIFY_SOURCE = 2 LDFLAGS = -Wl، -O1، - Sort-common، - حسب الحاجة، -z، relro، -z ، الآن)
windowsys x
daemonp تشغيل الخادم
الإصدار 2.0.9
بناء HEAD -> تطوير c6518498b 2020-01-28 14:07:08 -0500
دير ~ / .doom.d /
نوع النظام جنو / لينكس
التكوين x86_64-pc-linux-gnu
شل / بن / باش
uname Linux 5.4.14-arch1-1 # 1 SMP PREEMPT الخميس ، 23 يناير 2020 10:07:05 +0000 x86_64
المسار (/ usr / local / bin / usr / local / sbin / usr / bin / usr / bin / site_perl / usr / bin / vendor_perl / usr / bin / core_perl /usr/lib/emacs/26.3/x86_64-pc-linux -gnu /)
التكوين envfile envvar-file
elc- ملفات 0
الوحدات النمطية (: شركة إكمال Ivy: ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup + all + defaults) vc-gutter vi-tilde-fringe window-select مساحات العمل: محرر (شر + كل مكان) ملف - قوالب طي عدة مؤشرات استدارة - مقتطفات نصية: emacs dired electric ibuffer vc: بناء جملة الداما: الأدوات (EVAL + التراكب) (lookup + docs) lsp magit: lang cc csharp data emacs-lisp markdown (org + dragndrop + present) sh : config (افتراضي + روابط + smartparens))
الحزم (غير متوفر)
elpa (s popup pkg-info flycheck f epl dash csharp-mode auto-كاملة)
فك التثبيت (غير متوفر)
""

:lang cc :lang csharp :tools lsp question elisp

ال 21 كومينتر

لماذا لا تلتزم بكود VS؟

لأنني أريد استخدام dom emacs ولا أريد استخدام vscode ..

حاول تمكين :lang (cc +lsp) وتثبيت ccls على نظامك. يستخدم نفس الواجهة الخلفية مثل vscode. أنا لست على جهاز كمبيوتر للتحقق ولكني أعتقد أن وحدة csharp تدعم أيضًا +lsp (مع omnisharp).

هذا يعمل ولكن فقط لـ c ++ ، يقول أنه لا يوجد lsp لـ csharpmode.

يتوقع :lang (csharp +lsp) تثبيت https://github.com/OmniSharp/omnisharp-roslyn .

بدون +lsp ، نستخدم https://github.com/OmniSharp/omnisharp-emacs ، والذي ينتهي أيضًا باستخدام omnisharp.

على أي حال ، هل قمت بتثبيت omnisharp؟

نعم ، في قوس لينكس ما فعلته:

  1. استنساخ omnisharp-roslyn من AUR
  2. cd إلى dir و makepkg -si
    (إنها نفس طريقة ccls)

عند فتح ملف .cs ، يشير السجل إلى "LSP :: No LSP server for csharp-mode (تحقق من

هل يقوم ذلك بتثبيت الخادم في PATH ؟

جرب تنشيط وضع التصحيح: SPC h d d ثم افتح المخزن المؤقت *lsp-log* (مع SPC b B lsp-log ) وشاهد ما يقوله.

الغريب أنه لا يوجد مخزن مؤقت لسجل lsp ، أي أفكار؟

حاول التحقق من الخطأ أو مخازن الرسائل.
حاول تشغيل which OmniSharp

LarryLeb هل

هل كان هناك أي إخراج لـ LSP في * Messages *؟ ( SPC h e )

myrgy تشغيل الأوامر في محطة linux:
الذي يعرض omnisharp " الذي: no omnisharp في (/ usr / local / bin: / usr / local / sbin: / usr / bin: / usr / bin / site_perl: / usr / bin / vendor_perl: / usr / bin / core_perl) "

الذي يعرض omnisharp-roslyn " الذي: no omnisharp-roslyn in (/ usr / local / bin: / usr / local / sbin: / usr / bin: / usr / bin / site_perl: / usr / bin / vendor_perl: / usr / bin / core_perl) "

على الرغم من أنني أستطيع أن أرى أن omnisharp-roslyn مثبت مع pacman -Qet

hlissner نعم ، فتحت lsplog يمكن العثور عليه مع SPC-bB. هنا هو الرسائل العازلة.
https://pastebin.com/DrwK7SFd

يمكنك محاولة وضع رابط رمزي في أحد مجلدات bin.

مرحبًا LarryLeb ، هل تمكنت من حل المشكلة؟

تضمين التغريدة

فقط للتأكد ، هل يمكنك تأكيد أنه يعمل على جهازك. نظرًا لأن ive جرب كلاً من نظام التشغيل arch linux و windows 10 ، فإن كلاهما لديه نفس المشكلة.

آسف على الرد المتأخر. لكني لا أستخدم OmniSharp. لكن إكمال ccls و python يعمل بشكل جيد بالنسبة لي.

سأكون ممتنًا إذا أمكنك تجربته وإخباري إذا كان يعمل

تضمين التغريدة

قد يكون لديك حظ أفضل في تثبيت omnisharp-roselyn عبر وضع LSP باستخدام lsp-install-server . لقد فعلت ذلك ، وكان بإمكاني رؤية المخزن المؤقت lsp-log - لكنني واجهت نفس المشكلات المذكورة في الموضوع أدناه.

لكن دعم LSP لم يتم إتقانه بعد. تحقق من هذه المشكلة: https://github.com/emacs-lsp/lsp-mode/issues/1125

وبشكل أكثر تحديدًا ، تحقق من العلاقات العامة المذكورة في سلسلة المشكلة أعلاه: https://github.com/emacs-lsp/lsp-mode/issues/1125#issuecomment -607412250

_يبدو أن razzmatazz تمكن من الحصول على معظم الميزات التي تعمل لصالحه.

النبأ السار هو أنه يبدو أن مطوري MS من OmniSharp يعملون بنشاط على تحسينات LSP (لكل التزام إلى الفرع الرئيسي على https://github.com/OmniSharp/csharp-language-server-protocol).


في غضون ذلك ، يعد omnisharp-emacs هو البديل الأفضل.

تضمين التغريدة

غريب ، lsp-csharp يعمل فقط في بعض الأحيان. ليس دائمًا!

في انتظار إلتزاماتrazzmatazz ليتم قبولها! :د

تضمين التغريدة

غريب ، lsp-csharp يعمل فقط في بعض الأحيان. ليس دائمًا!

في انتظار إلتزاماتrazzmatazz ليتم قبولها! :د

أوه ، لا تزال العلاقات العامة بحاجة إلى بعض العمل - ونأمل - بعض المساعدة من المشرفين على omnisharp-roslyn أيضًا ، لأنني لست متأكدًا من كيفية إصلاح هذه المشكلة باستخدام PollingFileChangeToken الذي يظهر في CI:

لدي هذه المشكلة.

خطوات:

  1. Uncomment lsp.
  2. اضبط (csharp + lsp) على: lang
  3. تثبيت omnisharp-roslyn: brew install omnisharp/omnisharp-roslyn/omnisharp
  4. تشغيل: doom sync
  5. تشغيل: doom env
  6. افتح ملف .cs وسجّل السجل يقول "LSP :: No LSP server for csharp-mode (تحقق من * lsp-log *)."

حاول التحقق من الخطأ أو مخازن الرسائل.
حاول تشغيل which OmniSharp

~ باش$ الذي omnisharp/ usr / local / bin / omnisharp~

LarryLeb هل lsp-log ؟

هل كان هناك أي إخراج لـ LSP في الرسائل ؟ ( SPC h e )

مثل LarryLeb ، لا يوجد مخزن مؤقت * lsp-log *.

LarryLeb هل lsp-log ؟

هل كان هناك أي إخراج لـ LSP في الرسائل ؟ ( SPC h e )

Debug mode on Note: standard-indent, tab-width, evil-shift-width adjusted to 4 DOOM Running doom hook: lsp! DOOM [ui/doom-dashboard] Changed dashboard’s PWD to <path-to-project-instead> LSP :: No LSP server for csharp-mode(check *lsp-log*). Garbage collecting...done (0.089s)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات