Doom-emacs: C ++ et c # autocomplete

Créé le 28 janv. 2020  ·  21Commentaires  ·  Source: hlissner/doom-emacs

Qu'essayez-vous de réaliser?
Faire fonctionner mes emacs comme vscode, de la même manière que si j'installe les extensions vscode c ++ et c # (pour l'unité) et que je dispose de la saisie semi-automatique (la principale qui me tient à cœur). J'ai beaucoup recherché et la seule chose que j'ai, c'est que je dois utiliser le mode entreprise, je ne sais pas s'il existe d'autres moyens, si c'est le cas, informez-moi.

Qu'avez-vous essayé?
Je suis allé dans .doom.d / init.el et je n'ai pas commenté cc et csharp et j'ai fait un 'bin / doom refresh' mais je ne reçois que la coloration syntaxique (couleurs sur le texte).

Informations système


emacs version 26.3
fonctionnalités 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 XDBE XIM MODULES THREADS LCMS2
build 29 août 2019
buildopts (--prefix = / usr --sysconfdir = / etc --libexecdir = / usr / lib --localstatedir = / var --with-x-toolkit = gtk3 --with-xft --with-modules 'CFLAGS = -march = x86-64 -mtune = générique -O2 -pipe -fno-plt 'CPPFLAGS = -D_FORTIFY_SOURCE = 2 LDFLAGS = -Wl, -O1, - sort-common, - au besoin, -z, relro, -z, maintenant)
windowsys x
exécution du serveur daemonp
doom version 2.0.9
build HEAD -> develop c6518498b 2020-01-28 14:07:08 -0500
dir ~ / .doom.d /
type de système gnu / linux
config x86_64-pc-linux-gnu
shell / bin / bash
uname Linux 5.4.14-arch1-1 # 1 SMP PREEMPT jeu, 23 janvier 2020 10:07:05 +0000 x86_64
chemin (/ 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 -gnou/)
config envfile fichier envvar
elc-files 0
modules (: société de complétion ivy: ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup + all + defaults) vc-gutter vi-tilde-fringe window-select workspaces: éditeur (mal + partout) fichier -templates fold multiple-cursors rotate-text snippets: emacs dired electric ibuffer vc: checkers syntaxe: tools (eval + overlay) (lookup + docsets) lsp magit: lang cc csharp data emacs-lisp markdown (org + dragndrop + present) sh : config (par défaut + liaisons + smartparens))
paquets (n / a)
elpa (s popup pkg-info flycheck f epl dash csharp-mode auto-complete)
désépingler (n / a)
''

:lang cc :lang csharp :tools lsp question elisp

Tous les 21 commentaires

Pourquoi ne pas s'en tenir au code VS?

parce que je veux utiliser doom emacs et que je ne veux pas utiliser vscode ..

Essayez d'activer :lang (cc +lsp) et d'installer ccls sur votre système. Il utilise le même backend que vscode. Je ne suis pas sur un PC pour vérifier mais je pense que le module csharp prend également en charge +lsp (avec omnisharp).

cela fonctionne mais seulement pour c ++, il dit qu'il n'y a pas de lsp pour csharpmode.

:lang (csharp +lsp) s'attend https://github.com/OmniSharp/omnisharp-roslyn soit installé.

Sans +lsp , nous utilisons https://github.com/OmniSharp/omnisharp-emacs , qui finit également par utiliser omnisharp.

Dans tous les cas, avez-vous installé omnisharp?

oui, sur arch linux ce que j'ai fait:

  1. clone omnisharp-roslyn de AUR
  2. cd dans dir et makepkg -si
    (c'est la même méthode pour ccls)

lors de l'ouverture du fichier .cs, le journal dit "LSP :: Pas de serveur LSP pour csharp-mode (vérifier lsp-log )"

Cela installe-t-il le serveur dans votre PATH ?

Essayez d'activer le mode de débogage: SPC h d d puis ouvrez le tampon *lsp-log* (avec SPC b B lsp-log ) et voyez ce qu'il dit.

étrangement theres pas de tampon de journal lsp, des idées?

Essayez de vérifier les tampons d'erreur ou de message.
essayez d'exécuter which OmniSharp

@LarryLeb Avez-vous ouvert un tampon C # après avoir activé le mode de débogage, mais avant de vérifier * lsp-log *?

Y avait-il une sortie LSP dans * Messages *? ( SPC h e )

' @myrgy exécute des commandes dans le terminal Linux:
quel omnisharp renvoie " qui: no omnisharp dans (/ usr / local / bin: / usr / local / sbin: / usr / bin: / usr / bin / site_perl: / usr / bin / vendor_perl: / usr / bin / core_perl) "

quel omnisharp-roslyn renvoie " qui: no omnisharp-roslyn dans (/ usr / local / bin: / usr / local / sbin: / usr / bin: / usr / bin / site_perl: / usr / bin / vendor_perl: / usr / bin / core_perl) "

Bien que je puisse voir que omnisharp-roslyn est installé avec pacman -Qet

@hlissner oui, j'ai ouvert doom emacs dans l'écran principal sans tampons, puis je suis allé en mode débogage, puis j'ai ouvert le fichier csharp et il n'y a pas de lsplog à trouver avec SPC-bB. Voici le tampon de messages .
https://pastebin.com/DrwK7SFd

Vous pouvez essayer de mettre un lien symbolique dans l'un des dossiers bin.

Salut @LarryLeb , avez-vous réussi à résoudre le problème?

@myrgy non

juste pour être sûr, pouvez-vous confirmer qu'il fonctionne sur votre machine. Parce que ive a essayé à la fois Arch Linux et Windows 10, les deux ont le même problème.

Désolé pour la réponse tardive. Mais je n'utilise pas OmniSharp. Mais la complétion ccls et python fonctionne très bien pour moi.

apprécierait si vous pouviez l'essayer et me faire savoir si cela fonctionne

@LarryLeb

Vous aurez peut-être plus de chance d'installer omnisharp-roselyn via le mode LSP en utilisant lsp-install-server . Je l'ai fait et j'ai pu voir le tampon lsp-log - mais j'ai rencontré les mêmes problèmes que ceux mentionnés dans le fil ci-dessous.

Mais le support LSP n'est pas encore tout à fait perfectionné. Consultez ce numéro: https://github.com/emacs-lsp/lsp-mode/issues/1125

Et plus précisément, consultez ce PR mentionné dans le fil de discussion ci-dessus: https://github.com/emacs-lsp/lsp-mode/issues/1125#issuecomment -607412250

_ On dirait que razzmatazz a réussi à faire fonctionner la plupart des fonctionnalités pour lui.

La bonne nouvelle est qu'il semble que les développeurs MS d'OmniSharp travaillent activement sur des améliorations LSP (par commits dans la branche master à https://github.com/OmniSharp/csharp-language-server-protocol).


En attendant, omnisharp-emacs est la meilleure alternative.

@coltoneakins

Bizarre, lsp-csharp fonctionne juste parfois. Pas toujours, cependant!

En attendant que @razzmatazz s'engage à être accepté! :RÉ

@coltoneakins

Bizarre, lsp-csharp fonctionne juste parfois. Pas toujours, cependant!

En attendant que @razzmatazz s'engage à être accepté! :RÉ

Oh, ce PR a encore besoin de travail et - espérons-le - de l'aide des responsables d'omnisharp-roslyn aussi, car je ne sais pas comment résoudre ce problème avec PollingFileChangeToken qui apparaît dans CI:

J'ai ce problème.

Pas:

  1. Décommentez lsp.
  2. Définissez (csharp + lsp) sur: lang
  3. Installez omnisharp-roslyn: brew install omnisharp/omnisharp-roslyn/omnisharp
  4. Courir: doom sync
  5. Courir: doom env
  6. Ouvrez un fichier .cs et le journal dit "LSP :: Aucun serveur LSP pour le mode csharp (vérifiez * lsp-log *)."

Essayez de vérifier les tampons d'erreur ou de message.
essayez d'exécuter which OmniSharp

~ bash$ quel omnisharp/ usr / local / bin / omnisharp~

@LarryLeb Avez-vous ouvert un tampon C # après avoir activé le mode débogage, mais avant de vérifier lsp-log ?

Y avait-il une sortie LSP dans les messages ? ( SPC h e )

Identique à

@LarryLeb Avez-vous ouvert un tampon C # après avoir activé le mode débogage, mais avant de vérifier lsp-log ?

Y avait-il une sortie LSP dans les messages ? ( 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)

Cette page vous a été utile?
0 / 5 - 0 notes