Чего вы пытаетесь достичь?
Заставить мои emacs работать как vscode, так же, как если бы я установил расширения vscode c ++ и c # (для единства) и получил автозаполнение (основное, о котором я забочусь). Я много исследовал, и единственное, что я понял, это то, что мне нужно использовать режим компании, не уверен, есть ли другие способы, если да, пожалуйста, научите меня.
Что пробовали?
Я вошел в .doom.d / init.el, раскомментировал cc и csharp и сделал «обновление bin / doom», но получаю только подсветку синтаксиса (цвета текста).
Системная информация
emacs версии 26.3
особенности XPM JPEG TIFF GIF PNG RSVG ИЗОБРАЖЕНИЕ ЗВУК GPM DBUS GSETTINGS GLIB NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM МОДУЛИ LCMSYSTEMD LIB
сборка 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 = generic -O2 -pipe -fno-plt 'CPPFLAGS = -D_FORTIFY_SOURCE = 2 LDFLAGS = -Wl, -O1, - sort-common, - as-required, -z, relro, -z, сейчас)
windowsys x
демон запущенный на сервере
doom версия 2.0.9
build HEAD -> разработка c6518498b 2020-01-28 14:07:08 -0500
каталог ~ / .doom.d /
тип системы gnu / linux
конфигурация x86_64-pc-linux-gnu
оболочка / bin / bash
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 /)
config envfile envvar-файл
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 workspaces: editor (evil + везде) файл -templates свернуть несколько курсоров rotate-text snippets: 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))
пакеты (н / д)
elpa (s popup pkg-info flycheck f epl dash csharp-mode auto-complete)
открепить (н / д)
`` ''
Почему бы не придерживаться кода VS?
потому что я хочу использовать doom emacs и не хочу использовать vscode ..
Попробуйте включить :lang (cc +lsp)
и установить ccls в вашей системе. Он использует тот же бэкэнд, что и vscode. Я не нахожусь на ПК для проверки, но считаю, что модуль csharp также поддерживает +lsp
(с omnisharp).
это работает, но только для c ++, в нем говорится, что для csharpmode нет lsp.
:lang (csharp +lsp)
ожидает установки https://github.com/OmniSharp/omnisharp-roslyn .
Без +lsp
мы используем https://github.com/OmniSharp/omnisharp-emacs , что также приводит к использованию omnisharp.
В любом случае, вы установили omnisharp?
да, на Arch Linux, что я сделал:
при открытии файла .cs в журнале говорится: «LSP :: Нет сервера LSP для режима csharp (проверьте
Это устанавливает сервер в ваш PATH
?
Попробуйте активировать режим отладки: SPC h d d
затем откройте буфер *lsp-log*
(с помощью SPC b B lsp-log
) и посмотрите, что там написано.
Как ни странно, буфера журнала lsp нет, есть идеи?
Попробуйте проверить буферы ошибок или сообщений.
попробуйте запустить which OmniSharp
@LarryLeb Вы открывали буфер C # после активации режима отладки, но до проверки наличия * lsp-log *?
Был ли вывод LSP в * Сообщениях *? ( SPC h e
)
' @mygery запущенные команды в терминале Linux:
which omnisharp возвращает " which: no omnisharp in (/ usr / local / bin: / usr / local / sbin: / usr / bin: / usr / bin / site_perl: / usr / bin / vendor_perl: / usr / bin / core_perl) "
which omnisharp-roslyn возвращает " which: no omnisharp-roslyn в (/ 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 да, я открыл doom emacs на главном экране без буферов, а затем перешел в режим отладки, а затем открыл файл csharp, и с SPC-bB не было найдено lsplog . Вот буфер сообщений .
https://pastebin.com/DrwK7SFd
Вы можете попробовать поместить символическую ссылку в одну из папок bin.
Привет, @LarryLeb , тебе удалось решить проблему?
@mygy нет
на всякий случай, можете ли вы подтвердить, что он работает на вашем компьютере. Поскольку ive пробовал как Arch Linux, так и Windows 10, у них одна и та же проблема.
Извините за задержку с ответом. Но я не использую OmniSharp. Но ccls и завершение python у меня работают нормально.
был бы признателен, если бы вы могли попробовать и сообщить мне, работает ли это
@LarryLeb
Возможно, вам больше повезет с установкой omnisharp-roselyn в режиме LSP с использованием lsp-install-server
. Я сделал это, и я мог видеть буфер lsp-log
но я столкнулся с теми же проблемами, которые упомянуты в потоке ниже.
Но поддержка LSP еще не доведена до совершенства. Проверьте эту проблему: https://github.com/emacs-lsp/lsp-mode/issues/1125
И, в частности, ознакомьтесь с этим PR, упомянутым в вышеупомянутой теме: 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.
@coltoneakins
Странно, но lsp-csharp иногда работает. Но не всегда!
Жду принятия @razzmatazz ! : D
@coltoneakins
Странно, но lsp-csharp иногда работает. Но не всегда!
Жду принятия @razzmatazz ! : D
О, этот PR все еще нуждается в некоторой доработке и, надеюсь, в некоторой помощи со стороны сопровождающих omnisharp-roslyn, так как я не уверен, как исправить эту проблему с помощью PollingFileChangeToken
который появляется в CI:
У меня такая проблема.
Шаги:
brew install omnisharp/omnisharp-roslyn/omnisharp
doom sync
doom env
Попробуйте проверить буферы ошибок или сообщений.
попробуйте запуститьwhich OmniSharp
~ баш$ which omnisharp/ USR / местные / бен / omnisharp~
@LarryLeb Вы открывали буфер C # после активации режима отладки, но до того, как проверили lsp-log ?
Был ли в сообщениях какой-либо вывод LSP? (
SPC h e
)
Как и @LarryLeb , здесь нет буфера * lsp-log *.
@LarryLeb Вы открывали буфер C # после активации режима отладки, но до того, как проверили 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)