Doom-emacs: c ++ dan c # pelengkapan otomatis

Dibuat pada 28 Jan 2020  ·  21Komentar  ·  Sumber: hlissner/doom-emacs

Apa yang ingin Anda capai?
Membuat emacs saya berfungsi seperti vscode, sama seperti jika saya menginstal ekstensi vscode c ++ dan c # (untuk kesatuan) dan memiliki pelengkapan otomatis (yang utama yang saya pedulikan). Saya banyak meneliti dan satu-satunya hal yang saya dapatkan adalah saya perlu menggunakan mode perusahaan, tidak yakin apakah ada cara lain, jika demikian tolong dididik saya.

Apa yang sudah kamu coba?
Saya masuk ke .doom.d / init.el dan cc dan csharp yang tidak diberi komentar dan melakukan 'bin / doom refresh' tetapi saya hanya mendapatkan penyorotan sintaks (warna pada teks).

Sistem Informasi


emacs versi 26.3
fitur XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM GSETTINGS GLIB PEMBERITAHUAN ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLLMSS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD
membangun 29 Agustus 2019
buildopts (--prefix = / usr --sysconfdir = / etc --libexecdir = / usr / lib --localstatedir = / var --with-x-toolkit = gtk3 --with-xft --with-modules 'CFLAGS = -march = x86-64 -mtune = generik -O2 -pipe -fno-plt 'CPPFLAGS = -D_FORTIFY_SOURCE = 2 LDFLAGS = -Wl, -O1, - sort-common, - sesuai kebutuhan, -z, relro, -z, sekarang)
windowsys x
daemonp server-berjalan
malapetaka versi 2.0.9
build HEAD -> kembangkan c6518498b 2020-01-28 14:07:08 -0500
dir ~ / .doom.d /
tipe sistem gnu / linux
konfigurasi x86_64-pc-linux-gnu
shell / bin / bash
uname Linux 5.4.14-arch1-1 # 1 SMP PREEMPT Kam, 23 Jan 2020 10:07:05 +0000 x86_64
jalur (/ 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 /)
config envfile envvar-file
file-elc 0
modul (: perusahaan penyelesaian ivy: ui doom doom-dashboard doom-berhenti hl-todo modeline nav-flash ophints (popup + semua + default) vc-gutter vi-tilde-fringe jendela-pilih ruang kerja: editor (jahat + di mana-mana) file -templates lipat beberapa kursor rotate-teks snippet: emacs dired electric ibuffer vc: checkers syntax: tools (eval + overlay) (lookup + docsets) lsp magit: lang cc csharp data emacs-lisp markdown (org + dragndrop + present) sh : config (default + binding + smartparens))
paket (n / a)
elpa (s popup pkg-info flycheck f epl dash csharp-mode auto-complete)
lepas pin (t / a)
``

:lang cc :lang csharp :tools lsp question elisp

Semua 21 komentar

Mengapa tidak tetap menggunakan kode VS?

karena saya ingin menggunakan doom emacs dan tidak ingin menggunakan vscode ..

Coba aktifkan :lang (cc +lsp) dan instal ccls di sistem Anda. Ini menggunakan backend yang sama dengan vscode. Saya bukan di PC untuk memeriksa tetapi saya yakin modul csharp juga mendukung +lsp (dengan omnisharp).

ini berfungsi tetapi hanya untuk c ++, dikatakan tidak ada lsp untuk csharpmode.

:lang (csharp +lsp) mengharapkan https://github.com/OmniSharp/omnisharp-roslyn akan diinstal.

Tanpa +lsp , kami menggunakan https://github.com/OmniSharp/omnisharp-emacs , yang juga menggunakan omnisharp.

Bagaimanapun, apakah Anda sudah menginstal omnisharp?

ya, di arch linux apa yang saya lakukan:

  1. klon omnisharp-roslyn dari AUR
  2. cd ke dir dan makepkg -si
    (metode yang sama untuk ccls)

ketika membuka file .cs, log mengatakan "LSP :: Tidak ada server LSP untuk csharp-mode (periksa lsp-log )"

Apakah itu menginstal server ke PATH ?

Coba aktifkan mode debug: SPC h d d lalu buka buffer *lsp-log* (dengan SPC b B lsp-log ) dan lihat isinya.

Anehnya tidak ada penyangga log lsp, ada ide?

Cobalah untuk memeriksa kesalahan atau buffer pesan.
coba jalankan which OmniSharp

@LarryLeb Apakah Anda membuka buffer C # setelah mengaktifkan mode debug, tetapi sebelum Anda memeriksa * lsp-log *?

Apakah ada keluaran LSP di * Pesan *? ( SPC h e )

' @myrgy menjalankan perintah di terminal linux:
yang omnisharp mengembalikan " yang: tidak ada omnisharp di (/ usr / local / bin: / usr / local / sbin: / usr / bin: / usr / bin / site_perl: / usr / bin / vendor_perl: / usr / bin / core_perl) "

yang omnisharp-roslyn mengembalikan " yang: tidak ada omnisharp-roslyn di (/ usr / local / bin: / usr / local / sbin: / usr / bin: / usr / bin / site_perl: / usr / bin / vendor_perl: / usr / bin / core_perl) "

Meskipun saya dapat melihat bahwa omnisharp-roslyn diinstal dengan pacman -Qet

@hlissner ya, saya buka doom emacs di layar utama tanpa buffer lalu masuk ke mode debug lalu buka file csharp dan tidak ada lsplog yang bisa ditemukan dengan SPC-bB. Berikut adalah buffer Pesan .
https://pastebin.com/DrwK7SFd

Anda dapat mencoba memasukkan tautan simbolik ke salah satu folder bin.

Hai @LarryLeb , apakah Anda berhasil memperbaiki masalah?

@nggak

hanya untuk memastikan, dapatkah Anda mengonfirmasi bahwa ini berfungsi pada mesin Anda. Karena ive mencoba arch linux dan windows 10, keduanya memiliki masalah yang sama.

Maaf atas balasan yang terlambat. Tapi saya tidak menggunakan OmniSharp. Tetapi penyelesaian ccls dan python berfungsi dengan baik untuk saya.

akan sangat menghargai jika Anda bisa mencobanya dan beri tahu saya jika berhasil

@Larikb

Anda mungkin lebih beruntung menginstal omnisharp-roselyn melalui mode LSP menggunakan lsp-install-server . Saya melakukan ini, dan saya bisa melihat buffer lsp-log - tetapi, saya mengalami masalah yang sama yang disebutkan di utas di bawah ini.

Namun, dukungan LSP belum begitu sempurna. Lihat masalah ini: https://github.com/emacs-lsp/lsp-mode/issues/1125

Dan lebih khusus lagi, lihat PR ini yang disebutkan di utas masalah di atas: https://github.com/emacs-lsp/lsp-mode/issues/1125#issuecomment -607412250

_Tampaknya razzmatazz berhasil membuat sebagian besar fitur berfungsi untuknya._

Kabar baiknya adalah bahwa pengembang MS dari OmniSharp secara aktif mengerjakan peningkatan LSP (sesuai komitmen ke cabang master di https://github.com/OmniSharp/csharp-language-server-protocol).


Sementara itu, omnisharp-emacs adalah alternatif terbaik.

@kuliner_jogja

Aneh, lsp-csharp terkadang hanya berfungsi. Namun tidak selalu!

Menunggu @razzmatazz berkomitmen untuk diterima! : D

@koleksitiketbis

Aneh, lsp-csharp terkadang hanya berfungsi. Namun tidak selalu!

Menunggu @razzmatazz berkomitmen untuk diterima! : D

Oh, PR itu masih membutuhkan beberapa pekerjaan dan - semoga - bantuan dari pengelola omnisharp-roslyn juga, karena saya tidak yakin bagaimana cara memperbaiki masalah itu dengan PollingFileChangeToken yang muncul di CI:

Saya memiliki masalah ini.

Langkah:

  1. Hapus komentar lsp.
  2. Setel (csharp + lsp) ke: lang
  3. Pasang omnisharp-roslyn: brew install omnisharp/omnisharp-roslyn/omnisharp
  4. Jalankan: doom sync
  5. Jalankan: doom env
  6. Buka file .cs dan log mengatakan "LSP :: Tidak ada server LSP untuk mode csharp (periksa * lsp-log *)."

Cobalah untuk memeriksa kesalahan atau buffer pesan.
coba jalankan which OmniSharp

~ pesta$ yang omnisharp/ usr / local / bin / omnisharp~

@LarryLeb Apakah Anda membuka buffer C # setelah mengaktifkan mode debug, tetapi sebelum Anda memeriksa lsp-log ?

Apakah ada keluaran LSP di Pesan ? ( SPC h e )

Sama seperti @LarryLeb , tidak ada buffer * lsp-log *.

@LarryLeb Apakah Anda membuka buffer C # setelah mengaktifkan mode debug, tetapi sebelum Anda memeriksa lsp-log ?

Apakah ada keluaran LSP di Pesan ? ( 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)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat