問題タブ [clangd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
emacs - emacs lsp c-mode: コマンド「clangd」がパスに存在しません
Emacs LSP c-mode を使用したいのですが、「Command "clangd" is not present on the path」というエラーが表示されます。
インストールするには、次の手順を実行しました。
- melpa-stable から lsp パッケージを取得する
- melpa-stable から company-lsp を取得する
- homebrew を使用して ccls を取得する
以下を .emacs ファイルに追加します。
(require 'lsp-mode) (require 'lsp-mode) (add-hook 'rust-mode-hook #'lsp) (add-hook 'c-mode-hook #'lsp) (require 'company-lsp) (push 'company-lsp company-バックエンド)
homebrew を使用して llvm (clang を含む必要があります) をインストールし、そのパスを環境変数として追加しました。
このエラーが発生する理由を知っている人はいますか?
c++ - coc-settings.jsonファイルに言語サーバーのインクルードパスを追加する方法は?
C/C++ の IntelliSense ツールとして、neovim プラグイン「coc-nvim」を使用しています。私が知っているように、このプラグインは実際には ccls、clangd、cquery などの言語サーバーのクライアントです。これらすべての言語サーバーをシステムにインストールし、coc-nvim で動作するように構成しました。そのため、c/c++ ファイルでオートコンプリートと一般的なヘッダー (stdio など) のリストを取得できます。しかし、私は ros プラットフォームで作業しているので、ros(/opt/ros/kinetic/include/**) のヘッダーを言語サーバーのデフォルトのインクルード パスに追加したいと考えています。このオプションを使用しない場合、各プロジェクトの開始時にダミーの ros ノードを追加し、コンパイルしcatkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=YES
て compile_commands.json ファイルを生成し、ros ヘッダーにアクセスする必要があります。
coc.nvim の設定は、「coc-settings.json」というファイルの init.vim ファイルと一緒にあり、私の coc 設定ファイルの内容は次のとおりです。
したがって、私の主な質問は、これらの設定に ros インクルード パスを追加する方法です。coc.nvimの wiki ページを確認しましたが、ユーザー インクルード パスのオプションが見つかりません。また、clangd のオプションを確認
"args":["-I/opt/ros/kinetic/include/"]
し、対応するブロックに を追加しようとしましたが、うまくいきませんでした。また、.cqueryファイルを追加しましたが、提案されたヘッダーのリストには影響しません。
長い話で申し訳ありませんが、お時間をいただきありがとうございます。
編集: ccls ではなく、clangd LSP を使用する方がよいでしょう。より高速で、ドキュメントが優れているためです。ありがとう!
編集 (2020 年 4 月 12 日): 私が見つけた最良の解決策は、extraArgs
ccls によって提供される を使用して、ccls 言語サーバーを使用することです。"clang"
そのため、 ccls 構成にフィールドを追加すると、自動補完で ros ヘッダーを使用できます。
しかし、私が述べたように、可能であればclangdを使用したいと思います。あちこち調べましたが、答えはありませんでした。誰でも私を助けることができますか?(お願いします!)。