GNU bug report logs -
#60089
29.0.60; eglot doesn't support csharp-ls language server [PATCH]
Previous Next
Reported by: Jostein Kjønigsen <jostein <at> secure.kjonigsen.net>
Date: Thu, 15 Dec 2022 13:02:02 UTC
Severity: normal
Tags: patch
Found in version 29.0.60
Fixed in version 29.1
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 60089 in the body.
You can then email your comments to 60089 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60089
; Package
emacs
.
(Thu, 15 Dec 2022 13:02:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Jostein Kjønigsen <jostein <at> secure.kjonigsen.net>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 15 Dec 2022 13:02:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Right now eglot only knows about the Omnisharp Roslyn language server
for C#.
csharp-ls[1] is another popular language server and is supported by
other LSP-clients, like lsp-mode.
Eglot should support it too.
Attached is a patch which introduces support for this language-server.
[1] https://github.com/razzmatazz/csharp-language-server
--
Jostein
In GNU Emacs 29.0.60 (build 7, x86_64-pc-linux-gnu, GTK+ Version
3.24.33, cairo version 1.16.0) of 2022-12-15 built on dev-jostein
Repository revision: 98ea7054a71d73f2eaaa802645a932580ede9ec9
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12201001
System Description: Ubuntu 22.04.1 LTS
Configured using:
'configure --with-json --with-tree-sitter'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB
Important settings:
value of $LC_MONETARY: nb_NO.UTF-8
value of $LC_NUMERIC: nb_NO.UTF-8
value of $LC_TIME: nb_NO.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: NEWS
Minor modes in effect:
global-git-commit-mode: t
magit-auto-revert-mode: t
dap-tooltip-mode: t
dap-ui-many-windows-mode: t
dap-ui-controls-mode: t
dap-ui-mode: t
dap-auto-configure-mode: t
dap-mode: t
flyspell-mode: t
treemacs-filewatch-mode: t
treemacs-follow-mode: t
treemacs-git-mode: t
treemacs-fringe-indicator-mode: t
editorconfig-mode: t
which-function-mode: t
outline-minor-mode: t
helm-mode: t
helm-minibuffer-history-mode: t
shell-dirtrack-mode: t
helm--remap-mouse-mode: t
async-bytecomp-package-mode: t
delete-selection-mode: t
global-auto-revert-mode: t
yas-global-mode: t
yas-minor-mode: t
global-nlinum-mode: t
nlinum-mode: t
ido-yes-or-no-mode: t
override-global-mode: t
server-mode: t
global-hl-line-mode: t
pixel-scroll-precision-mode: t
doom-modeline-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
button-mode: t
Load-path shadows:
/home/jostein/.emacs.d/elpa/transient-20221202.1727/transient hides
/home/jostein/build/emacs/lisp/transient
Features:
(shadow sort emacsbug mule-util emacs-news-mode csharp-mode cc-langs
eglot external-completion array jsonrpc ert flymake-proc flymake
help-fns radix-tree cl-print tabify misearch multi-isearch rng-xsd
xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse
nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode
nxml-outln nxml-rap nxml-util nxml-enc xmltok git-rebase vc-hg vc-bzr
vc-src vc-sccs vc-cvs vc-rcs log-view vc bug-reference mail-extr
magit-extras magit-submodule magit-obsolete magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
magit-diff smerge-mode diff git-commit log-edit message sendmail rfc822
mml mml-sec epa derived mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader pcvs-util
magit-core magit-autorevert magit-margin magit-transient magit-process
with-editor magit-mode transient magit-git magit-base magit-section crm
compat-27 compat-26 yank-media sgml-mode facemenu dired-aux
lsp-diagnostics lsp-headerline lsp-icons lsp-modeline dap-mouse dap-ui
gdb-mi bindat gud bui bui-list bui-info bui-entry bui-core bui-history
bui-button bui-utils lsp-lens dap-gdb-lldb dap-netcore dap-node
dap-utils dap-pwsh dap-python dap-mode dap-tasks dap-launch posframe
dap-overlays view typescript-ts-mode js cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs executable
helm-command helm-elisp helm-eval edebug debug backtrace helm-info
face-remap disp-table elec-pair flyspell ispell toml-ts-mode treesit
vc-git diff-mode vc-dispatcher vc-svn winner ffap tramp-archive
tramp-gvfs tramp-cache time-stamp zeroconf dbus add-log lsp-zig
lsp-steep lsp-svelte lsp-sqls lsp-ruby-syntax-tree lsp-yaml lsp-xml
lsp-vimscript lsp-vhdl lsp-volar lsp-vetur lsp-html lsp-verilog lsp-vala
lsp-v lsp-typeprof lsp-ttcn3 lsp-toml lsp-terraform lsp-tex lsp-sorbet
lsp-solargraph lsp-rust lsp-rf lsp-remark lsp-racket lsp-r
lsp-purescript lsp-pylsp lsp-pyls lsp-pwsh lsp-php lsp-pls
lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml lsp-magik lsp-nix
lsp-nim lsp-nginx lsp-mint lsp-marksman lsp-markdown lsp-lua lsp-kotlin
lsp-json lsp-javascript lsp-idris lsp-haxe lsp-groovy lsp-hack
lsp-graphql lsp-gleam lsp-go lsp-completion lsp-gdscript lsp-fsharp
lsp-fortran lsp-eslint lsp-erlang lsp-emmet lsp-elixir lsp-elm
lsp-dockerfile lsp-docker yaml lsp-dhall lsp-d lsp-css lsp-csharp gnutls
lsp-crystal lsp-cmake lsp-clojure lsp-treemacs lsp-treemacs-generic
lsp-treemacs-themes treemacs-treelib treemacs treemacs-header-line
treemacs-compatibility treemacs-mode treemacs-interface
treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode
treemacs-rendering treemacs-annotations treemacs-async
treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator treemacs-scope pulse treemacs-faces
treemacs-icons treemacs-themes treemacs-core-utils pfuture
treemacs-logging treemacs-customization treemacs-macros
lsp-semantic-tokens lsp-clangd lsp-beancount lsp-bash lsp-astro
lsp-ansible lsp-angular lsp-ada warnings lsp-actionscript
ido-completing-read+ memoize minibuf-eldef elisp-slime-nav paredit
lsp-mode lsp-protocol tree-widget spinner network-stream nsm
markdown-mode color lv inline ht ewoc epg rfc6068 epg-config
highlight-symbol flycheck editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch company-oddmuse
company-keywords company-etags etags fileloop generator company-gtags
company-dabbrev-code company-dabbrev company-files company-clang
company-capf company-cmake company-semantic company-template
company-bbdb company which-func hideshow eww url-queue thingatpt shr
pixel-fill kinsoku url-file svg xml dom puny mm-url gnus nnheader
gnus-util mail-utils range mm-util mail-prsvr helm-imenu pcase imenu
ob-plantuml org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src ob-comint org-pcomplete org-list org-footnote org-faces
org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle
org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func
cal-menu calendar cal-loaddefs org-version org-compat org-macs helm-mode
helm-misc helm-files image-dired image-dired-tags image-dired-external
image-dired-util xdg image-mode dired dired-loaddefs exif tramp
tramp-loaddefs trampver tramp-integration cus-edit pp cus-load icons
wid-edit files-x tramp-compat shell pcomplete parse-time iso8601
time-date ls-lisp helm-buffers helm-occur helm-tags helm-locate
helm-grep helm-regexp format-spec helm-utils helm-help helm-types helm
helm-global-bindings helm-easymenu helm-core async-bytecomp helm-source
helm-multi-match helm-lib async helm-config delsel autorevert filenotify
yasnippet nlinum linum ido-yes-or-no advice ido edmacro kmacro
use-package-bind-key bind-key easy-mmode xref project server hl-line
pixel-scroll cua-base compile-eslint compile comint ansi-osc ansi-color
ring doom-modeline doom-modeline-segments doom-modeline-env
doom-modeline-core all-the-icons all-the-icons-faces data-material
data-weathericons data-octicons data-fileicons data-faicons
data-alltheicons shrink-path rx f f-shortdoc shortdoc
text-property-search s dash compat compat-macs dracula-theme cl-extra
help-mode use-package-ensure use-package-core finder-inf
expand-region-autoloads ido-yes-or-no-autoloads doom-modeline-autoloads
elisp-slime-nav-autoloads multiple-cursors-autoloads
dracula-theme-autoloads crontab-mode-autoloads
highlight-symbol-autoloads ssh-config-mode-autoloads dap-mode-autoloads
lsp-treemacs-autoloads treemacs-autoloads cfrs-autoloads
posframe-autoloads powershell-autoloads company-web-autoloads
shrink-path-autoloads paredit-autoloads bui-autoloads
all-the-icons-autoloads rust-mode-autoloads yaml-mode-autoloads
helm-autoloads popup-autoloads helm-core-autoloads async-autoloads
lsp-docker-autoloads yaml-autoloads lsp-mode-autoloads spinner-autoloads
f-autoloads hydra-autoloads nlinum-autoloads ht-autoloads
undo-tree-autoloads queue-autoloads ace-window-autoloads avy-autoloads
cmake-mode-autoloads bmx-mode-autoloads s-autoloads company-autoloads
ido-completing-read+-autoloads memoize-autoloads lv-autoloads
magit-autoloads magit-section-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads compat-autoloads
editorconfig-autoloads yasnippet-autoloads web-completion-data-autoloads
cargo-autoloads markdown-mode-autoloads pfuture-autoloads
flycheck-autoloads pkg-info-autoloads epl-autoloads info dash-autoloads
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
emacs)
Memory information:
((conses 16 1130646 117537)
(symbols 48 60946 0)
(strings 32 291613 29702)
(string-bytes 1 8373686)
(vectors 16 160373)
(vector-slots 8 2626469 90522)
(floats 8 1114 778)
(intervals 56 70217 5529)
(buffers 984 64))
--
*Jostein Kjønigsen*
jostein.kjønigsen.no <https://jostein.kjønigsen.no>
jostein <at> kjonigsen.net - jostein <at> gmail.com
[0001-Eglot-Add-support-for-new-language-server-csharp-ls.patch (text/x-patch, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60089
; Package
emacs
.
(Thu, 15 Dec 2022 21:29:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 60089 <at> debbugs.gnu.org (full text, mbox):
Jostein Kjønigsen <jostein <at> secure.kjonigsen.net> writes:
> Right now eglot only knows about the Omnisharp Roslyn language server
> for C#.
>
> csharp-ls[1] is another popular language server and is supported by
> other LSP-clients, like lsp-mode.
>
> Eglot should support it too.
>
> Attached is a patch which introduces support for this language-server.
>
> [1] https://github.com/razzmatazz/csharp-language-server
Could you give a rationale for why we should prefer omnisharp over
csharp-ls? Why not the other way around?
(I know nothing about C#.)
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60089
; Package
emacs
.
(Thu, 15 Dec 2022 21:50:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 60089 <at> debbugs.gnu.org (full text, mbox):
On 15 Dec 2022, at 22:28, Stefan Kangas <stefankangas <at> gmail.com> wrote:
>
> Jostein Kjønigsen <jostein <at> secure.kjonigsen.net> writes:
>
>> Right now eglot only knows about the Omnisharp Roslyn language server
>> for C#.
>>
>> csharp-ls[1] is another popular language server and is supported by
>> other LSP-clients, like lsp-mode.
>>
>> Eglot should support it too.
>>
>> Attached is a patch which introduces support for this language-server.
>>
>> [1] https://github.com/razzmatazz/csharp-language-server
>
> Could you give a rationale for why we should prefer omnisharp over
> csharp-ls? Why not the other way around?
>
> (I know nothing about C#.)
As far as presedence go, I have no personal preference here.
I myself use csharp-ls, because it’s faster, but it’s newer with less lineage and only aims to support new “.net core” type projects.
Omnisharp is not as fast, but has been around for a longer time and officially also supports “legacy”-style .net framework projects.
As such it probably make sense to present Omnisharp as the default, since it offers the highest compatibility guarantees regardless of target code-base.
—
Jostein Kjønigsen
https://jostein.kjønigsen.net
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60089
; Package
emacs
.
(Fri, 16 Dec 2022 02:25:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 60089 <at> debbugs.gnu.org (full text, mbox):
close 60089 29.1
thanks
Jostein Kjønigsen <jostein <at> secure.kjonigsen.net> writes:
> As such it probably make sense to present Omnisharp as the default,
> since it offers the highest compatibility guarantees regardless of
> target code-base.
Thanks, so I pushed your patch to emacs-29 (commit 546aed3543).
bug marked as fixed in version 29.1, send any further explanations to
60089 <at> debbugs.gnu.org and Jostein Kjønigsen <jostein <at> secure.kjonigsen.net>
Request was from
Stefan Kangas <stefankangas <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Fri, 16 Dec 2022 02:25:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 13 Jan 2023 12:24:09 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 155 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.