Doom-emacs: c ++およびc#オートコンプリート

作成日 2020年01月28日  ·  21コメント  ·  ソース: hlissner/doom-emacs

何を達成しようとしていますか?
emacsをvscodeのように機能させるには、c ++およびc#(ユニティ用)vscode拡張機能をインストールし、オートコンプリート(私が気にする主なもの)を使用するのと同じです。 私はたくさんの研究をしましたが、私が得た唯一のことは、会社モードを使用する必要があるということです。他の方法があるかどうかはわかりません。もしそうなら、私に教えてください。

何を試しましたか?
.doom.d / init.elにアクセスし、コメントなしのccとcsharpを実行して、「bin / doomリフレッシュ」を実行しましたが、構文の強調表示(テキストの色)しか表示されません。

システムインフォメーション


emacsバージョン26.3
機能XPMJPEG 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 XDBEXIMモジュールスレッドLIBSYSTEMDLCMS2
2019年8月29日ビルド
buildopts(-prefix = / usr --sysconfdir = / etc --libexecdir = / usr / lib --localstatedir = / var --with-x-toolkit = gtk3 --with-xft --with-modules'CFLAGS = -march = x86-64 -mtune = generic -O2 -pipe -fno-plt'CPPFLAGS = -D_FORTIFY_SOURCE = 2 LDFLAGS = -Wl、-O1、-sort-common、-as-needed、-z、relro、 -z、now)
windowsys x
デーモンpサーバー-実行中
運命バージョン2.0.9
HEADのビルド-> c6518498bの開発2020-01-2814:07:08 -0500
dir〜 / .doom.d /
システムタイプgnu / linux
config x86_64-pc-linux-gnu
シェル/ bin / bash
uname Linux 5.4.14-arch1-1#1 SMP PREEMPT木、2020年1月23日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 /)
config envfileenvvar-ファイル
elc-ファイル0
モジュール(:completion company ivy:ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints(popup + all + defaults)vc-gutter vi-tilde-fringe window-select Workspaces:editor(evil + everywhere)file -テンプレートは複数折ります-カーソルrotate-テキストスニペット:emacs dired electric ibuffer vc:checkers構文:tools(eval + overlay)(lookup + docsets)lsp magit:lang cc csharp data emacs-lisp markdown(org + dragndrop + present)sh :config(デフォルト+バインディング+ smartparens))
パッケージ(n / a)
elpa(sポップアップpkg-info flycheck f epl dash csharp-mode auto-complete)
固定解除(n / a)
`` `

:lang cc :lang csharp :tools lsp question elisp

全てのコメント21件

VSコードに固執してみませんか?

運命のemacsを使いたいのですが、vscodeを使いたくないからです。

:lang (cc +lsp)を有効にして、システムにcclsをインストールしてみてください。 vscodeと同じバックエンドを使用します。 私はチェックするPCにいませんが、csharpモジュールは+lsp (omnisharpを使用)もサポートしていると思います。

これは機能していますが、c ++の場合のみ、csharpmodeのlspがないことを示しています。

:lang (csharp +lsp)は、 https://github.com/OmniSharp/omnisharp-roslynがインストールされていることを想定してい

+lsp場合は、 https://github.com/OmniSharp/omnisharp-emacsを使用し

いずれにせよ、omnisharpをインストールしましたか?

うん、archlinuxで私がしたこと:

  1. AURからomnisharp-roslynをクローンします
  2. dirとmakepkg-siにcdします
    (cclsの場合と同じ方法)

.csファイルを開くと、ログに「LSP :: csharp-modeのLSPサーバーがありません( lsp-logを確認してください)」と表示され

サーバーをPATHインストールしますか?

デバッグモードをアクティブにしてみてください: SPC h d d次に、 *lsp-log*バッファー( SPC b B lsp-log )を開いて、その内容を確認します。

奇妙なことに、lspログバッファはありません、何かアイデアはありますか?

エラーまたはメッセージバッファを確認してみてください。
which OmniSharpを実行してみてください

@LarryLebデバッグモードをアクティブ化した後、* lsp-log *をチェックする前に、C#バッファーを開きましたか?

*メッセージ*にLSP出力はありましたか? ( SPC h e

' @myrgy Linuxターミナルでコマンドを実行しています:
whichomnisharpが返す " which:no omnisharp in(/ usr / local / bin:/ usr / local / sbin:/ usr / bin:/ usr / bin / site_perl:/ usr / bin / vendor_perl:/ usr / bin / core_perl) 「」

whichomnisharp-roslynが返す " which:no omnisharp-roslyn in(/ usr / local / bin:/ usr / local / sbin:/ usr / bin:/ usr / bin / site_perl:/ usr / bin / vendor_perl:/ usr / bin / core_perl) "

omn​​isharp-roslynがpacman-Qetとともにインストールされていることがわかりますが

@hlissnerはい、バッファなしでメイン画面でdoom emacsを開き、デバッグモードにして、csharpファイルを開きましたが、SPC-bBでlsplogが見つかりませんメッセージバッファです。
https://pastebin.com/DrwK7SFd

シンボリックリンクをbinフォルダの1つに入れてみてください。

こんにちは@LarryLeb 、問題を解決できましたか?

@myrgy nope

念のため、マシンで動作していることを確認できますか。 iveはarchlinuxとwindows10の両方を試したので、どちらも同じ問題を抱えています。

返事が遅れて申し訳ありません。 しかし、私はOmniSharpを使用していません。 しかし、cclsとpythonの補完は私にとってはうまく機能します。

試してみて、うまくいくかどうか教えていただければ幸いです

@LarryLeb

lsp-install-serverを使用してLSPモードでomnisharp-roselynをインストールする方が幸運かもしれません。 これを実行すると、 lsp-logバッファーが表示されましたが、以下のスレッドで説明されているのと同じ問題が発生しました。

しかし、LSPのサポートはまだ完全ではありません。 この問題をチェックしてください: https

より具体的には、上記の問題スレッドで言及されているこのPRをチェックしてください//github.com/emacs-lsp/lsp-mode/issues/1125#issuecomment -607412250

_razzmatazzはほとんどの機能を彼のために機能させることができたようです。_

幸いなことに、OmniSharpのMS開発者はLSPの改善に積極的に取り組んでいるようです(https://github.com/OmniSharp/csharp-language-server-protocolのマスターブランチへのコミットごと)。


それまでの間、omnisharp-emacsが最良の代替手段です。

@coltoneakins

奇妙な、lsp-csharpは時々動作します。 ただし、常にではありません。

@razzmatazzコミットが受け入れられるのを待っています! :D

@coltoneakins

奇妙な、lsp-csharpは時々動作します。 ただし、常にではありません。

@razzmatazzコミットが受け入れられるのを待っています! :D

ああ、そのPRにはまだいくつかの作業が必要であり、CIに表示されるPollingFileChangeTokenでその問題を修正する方法がわからないため、omnisharp-roslynのメンテナからの支援も必要です。

この問題があります。

手順:

  1. lspのコメントを外します。
  2. (csharp + lsp)を:langに設定します
  3. omn​​isharp-roslynをインストールします: brew install omnisharp/omnisharp-roslyn/omnisharp
  4. 実行: doom sync
  5. 実行: doom env
  6. .csファイルを開くと、ログに「LSP :: csharp-modeのLSPサーバーがありません(* lsp-log *を確認してください)」と表示されます。

エラーまたはメッセージバッファを確認してみてください。
which OmniSharpを実行してみてください

〜bash$どのomnisharp/ usr / local / bin / omnisharp

@LarryLebデバッグモードをアクティブにした後、 lsp-logをチェックする前に、C#バッファーを開きましたか?

メッセージにLSP出力はありましたか? ( SPC h e

@LarryLebと同じように、バッファ* lsp-log *はありません。

@LarryLebデバッグモードをアクティブにした後、 lsp-logをチェックする前に、C#バッファーを開きましたか?

メッセージに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 評価