dap-mode VS eglot

Compare dap-mode vs eglot and see what are their differences.

eglot

A client for Language Server Protocol servers (by joaotavora)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
dap-mode eglot
22 66
1,255 2,167
1.1% -
6.4 3.4
14 days ago about 1 month ago
Emacs Lisp Emacs Lisp
GNU General Public License v3.0 only GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

dap-mode

Posts with mentions or reviews of dap-mode. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-03.
  • GNU Debugger "GDB" Adds Support For Microsoft's Debug Adapter Protocol
    2 projects | /r/emacs | 3 Mar 2023
    GDB with gdb -i dap allows you to debug any language that GDB can debug from within Emacs' dap-mode: https://github.com/emacs-lsp/dap-mode
  • Eglot and debugging python
    2 projects | /r/emacs | 16 Feb 2023
    lsp's brother. One search away. https://github.com/emacs-lsp/dap-mode
  • How to debug go tests with lsp and dap mode?
    2 projects | /r/emacs | 8 Jan 2023
    Debug template for go subtest was just added: https://github.com/emacs-lsp/dap-mode/pull/704/
  • Emacs as IDE
    2 projects | /r/emacs | 18 Dec 2022
    Debugging (kind of an IDE feature) is a little harder. Out of the box, Emacs can at least debug emacs-lisp (with built-in features) and C (via gdb integration). Beyond that, take a look at dap-mode for other language options. Similarly, take a look at lsp-mode or eglot for code completion, more advanced linting, etc.
  • Eglot has landed on master: Emacs now has a built-in LSP client
    10 projects | news.ycombinator.com | 23 Oct 2022
    At least for web development I believe eglot is strictly worse. It does not support running multiple servers (e.g. tsserver and eslint-ls) (https://github.com/joaotavora/eglot/issues/976) which is supported by lsp-mode and neovim's built-in lsp client. Also, it does not have any equivalent to dap-mode which is lsp-mode only. Although worth noting dap-mode is currently useless for js (https://github.com/emacs-lsp/dap-mode/issues/369).
  • EGlot as LSP - Interface & DAP
    3 projects | /r/emacs | 13 Oct 2022
    Hi, as it seems EGlot will receive the blessing of inclusion into vanilla Emacs. That makes me wonder how I am supposed to use dap-mode at it swaps in lsp-mode as a dependency.
  • Debugging GameBoy Advance (GBA) programs/games in Emacs
    7 projects | dev.to | 11 Oct 2022
    We will use dap-mode with the dap-gdb-lldb option here. Under the hood, it uses the debug adapter from the Native Debug VSCode extension. Configuring it is described on the dap-mode webpages. After we have configured dap-mode, we could in theory reuse the launch.json configurations from the VSCode related articles above. That will require that you also use lsp-mode, as dap-launch depends on the lsp-workspace-root function and will not resolve when lsp-mode is not used. I don't use lsp-mode with C (company-clang and company-c-headers provide what I need), so the next logical solution would be to create a debug template ourselves:
  • John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips
    5 projects | news.ycombinator.com | 13 Aug 2022
    Hmm it does seem like Emacs is growing support for the Debug Adapter Protocol (DAP), the LSP-alike convention that allows language developers to build language-specific debuggers that tie into the VSCode UI: https://github.com/emacs-lsp/dap-mode
  • Programming in Python
    2 projects | /r/emacs | 24 Jul 2022
    So, what do you need: - Language server for Python (lsp and lsp-ui) Use lsp-mode it's more reach with features at the moment https://emacs-lsp.github.io/lsp-mode/page/installation/ - Real-time program debugging (dap-mode) https://github.com/emacs-lsp/dap-mode
  • lsp-mode vs eglot
    4 projects | /r/emacs | 29 Mar 2022
    Seems like too much work and the issue has been closed and not reopened since 2018 sadly. It looks like it won't be happening any time soon. https://github.com/emacs-lsp/dap-mode/issues/2

eglot

Posts with mentions or reviews of eglot. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-11.
  • LSP could have been better
    12 projects | news.ycombinator.com | 11 Oct 2023
    Recently I stumbled upon this issue:

    https://github.com/joaotavora/eglot/discussions/1127

    I don't know enough about emacs and LSP to see the full picture, but it seems that both eglot's and corfu's maintainers, assumably very competent programmers, can't find a solution for this.

    I only skimmed the thread. My understanding is that LSP dumps a long list of completion candidates at once and they can't decide a cache strategy that works well with existing code...?

  • Spurious errors with Eglot / pylsp
    1 project | /r/emacs | 10 Jul 2023
    It could be. There are unfixed issues with eglot and corfu, and sadly not a lot of willingness to investigate.
  • Using Quarto with Emacs
    2 projects | /r/emacs | 9 Jun 2023
    Eglot errors when I add new Python code blocks. The error disappears when I reconnect the language server, but the same happens again when I add a new code block. My "workaround" now is that before I start working on the .qmd file, I just add a bunch of Python code blocks (for which I also have a function) and then reconnect the language server again. This way I can start working for a while until I need to add more code blocks again.
  • Looking for help in improving Typescript Eglot, Corfu, Orderless performance
    2 projects | /r/emacs | 8 Jun 2023
    This discussion has helped with some performance issues: https://github.com/joaotavora/eglot/discussions/993.
  • Typescript highlighting in emacs incomplete (compared to VSCode) even after using treesitter?
    1 project | /r/emacs | 3 Jun 2023
    I guess eglot doesn't support it yet: https://github.com/joaotavora/eglot/pull/839
  • joaotavora/breadcrumb: Emacs headerline indication of where you are in a large project
    4 projects | /r/emacs | 12 May 2023
    This is not by pure chance, João is the developer of the Eglot LSP client and the breadcrumbs from LSP-mode had been requested as a feature, but as far as I remember João thought rightfully that this could be an independent package, see https://github.com/joaotavora/eglot/discussions/988
  • Returning emacs user - what packages are common now?
    9 projects | /r/emacs | 9 May 2023
    A substantial section of the community is using corfu instead of company, but I wouldn't say company is out of date by any means. In emacs 29 eglot will be a built in, which might act as a replacement for lsp-mode depending on what functionality you need.
  • Eglot upgrade strategy
    1 project | /r/emacs | 6 May 2023
    I am currently running emacs 29 (built from emacs-29 branch) which – according to https://github.com/joaotavora/eglot – should contain the latest eglot.
  • 916 Days of Emacs
    12 projects | news.ycombinator.com | 13 Apr 2023
    Yep. You can use flymake or flycheck for that in combination with eglot or lsp-mode.

    See https://github.com/joaotavora/eglot#diagnostics

  • Eglot, eldoc and golang
    1 project | /r/emacs | 12 Apr 2023
    (I have reported this (that is, ElDoc missing docs for callable things at point, when Eglot is enabled) as an issue recently: First on GitHub-discussions https://github.com/joaotavora/eglot/discussions/1200, then on Debbugs https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62687. But the threads are very long, so I don't recommend reading them.)

What are some alternatives?

When comparing dap-mode and eglot you can also consider the following projects:

lsp-mode - Emacs client/library for the Language Server Protocol

realgud - The Grand "Cathedral" Debugger rewrite

clangd - clangd language server

doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]

rust-analyzer - A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer]

pdb-cheatsheet - A cheatsheet for the Python Debugger (pdb)

web-mode - web template editing mode for emacs

code-debug - Native debugging for VSCode

company-mode - Modular in-buffer completion framework for Emacs

nvim-lspconfig - Quickstart configs for Nvim LSP

rust-analyzer - A Rust compiler front-end for IDEs