emacs-direnv VS dap-mode

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

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
emacs-direnv dap-mode
11 22
321 1,259
- 1.0%
2.9 7.1
about 1 month ago 6 days ago
Emacs Lisp Emacs Lisp
BSD 3-clause "New" or "Revised" License 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.

emacs-direnv

Posts with mentions or reviews of emacs-direnv. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-09.
  • Development Environments with Guix, similar to devenv.sh
    4 projects | /r/GUIX | 9 Dec 2023
  • env-commander.el -- Per-directory env setup for shell commands
    3 projects | /r/emacs | 6 Jul 2023
    env-commander-mode is a simple mode which allows any shell commands that Emacs invokes to run one or more commands beforehand to initialize the shell environment. There are many Emacs packages which can configure process environments, for example, direnv, but they lack the ability to go a step further and define shell functions and aliases, which is often required by "virtual environment" tools. For those who prefer interacting with shell commands via shell-command rather than shell, eshell, or term, env-commander-mode is here to assist.
  • How to properly configure dependencies when using LSP + nix
    1 project | /r/emacs | 27 Jun 2023
    I'm using nix to manage python dependencies (see excerpt of flake.nix below) but this means those python dependencies are in a /nix directory, so when lsp tries to figure out project root for them, it thinks they have nothing to do with my own project. Also I'm using emacs-direnv to transparently switch into nix environments (.envrc + use flake), so direnv (correctly) unloads my LSP executable (configured in flake.nix), so even if they should be considered totally separate projects LSP-mode doesn't know how to start up the server.
  • Eglot has landed on master: Emacs now has a built-in LSP client
    10 projects | news.ycombinator.com | 23 Oct 2022
    I've had a good experience with direnv[1] and emacs-direnv[2].

    Direnv can automatically load an environment when you enter a directory, so it automatically "opens" virtualenvs/nix shells/etc. The Emacs direnv mode ensures that each buffer sees the direnv mode for its project directory.

    I've found this to be a great compromise between automatic behavior on the one hand and transparency + control on the other—I get the right environment loaded automatically very consistently and, if something goes wrong, I can open a shell and poke around to see what's going on (is my nix shell messed up? is the right tool not loaded via direnv? etc). The only time I need to do anything manually is if I make a change to the environment and need to update Emacs about it, in which case I just run M-x direnv-update-environment.

    Once I got this set up, I can just rely on executable-find to check for (and find) exactly the right tool on a per-project basis—no more worrying about global or seeing the wrong version of a tool. This also made it easy to do stuff like only run formatting if the corresponding tool is available: I add hooks to various programming language modes that only turn on lsp/formatting/etc if executable-find sees the corresponding executable.

    Compared to the hassle I've had to go through helping my colleagues debug VSCode not seeing the right conda environment, virtualenv or the right version of various tools, Emacs + direnv has been a far nicer and more consistent experience.

    [1]: https://direnv.net/

    [2]: https://github.com/wbolster/emacs-direnv

  • How to handle credentials for Python in Emacs
    1 project | /r/emacs | 13 Aug 2022
    Alternatively from what /u/hantva said, you can try using direnv and its integration with Emacs. This has a benefit of scaling better if you have more than one such project as each set of env vars is separate.
  • NixShell + direnv + Emacs
    4 projects | /r/emacs | 2 May 2022
    I'm using lorri and emacs-direnv together, works perfectly fine for me.
  • Anyone using sage-shell-mode?
    2 projects | /r/emacs | 18 Oct 2021
    Thanks, I'll check this out if I can't get my ideal setup to work. Presume you meant this: https://github.com/wbolster/emacs-direnv ?
  • Is there a way to configure my Python interpreter to be inside a docker container like in Pycharm?
    2 projects | /r/emacs | 13 Jun 2021
    I first install direnv which allows me to have a different environment per directory, or in my case, a project. And there is a project that connects Emacs to this. https://github.com/wbolster/emacs-direnv
  • Doom Emacs + Pyright + LSP + Conda
    2 projects | /r/emacs | 29 Apr 2021
    I use this to source .envrc files into my emacs environment: https://github.com/wbolster/emacs-direnv
  • I created a gist with a full python config with Emacs
    4 projects | /r/emacs | 13 Jan 2021
    almost. to integrate with a shell, you would indeed hook it onto the shell's prompt function. to integrate it with Emacs, you would use https://github.com/wbolster/emacs-direnv , so Emacs sees the project specific process environment too. the isolation is primarily achieved by setting up a custom PATH, PYTHON_PATH and similar vars

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

What are some alternatives?

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

envrc - Emacs support for direnv which operates buffer-locally

eglot - A client for Language Server Protocol servers

setup-emacs-windows - A Github Action that installs a specific emacs version

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

direnv - unclutter your .profile

realgud - The Grand "Cathedral" Debugger rewrite

container-env - Wrapper commands to run inside docker, simulating the behaviour of tools like rvm, rbenv, virtualenv etc...

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

lorri - Your project’s nix-env [maintainer=@Profpatsch,@nyarly]

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

ob-sagemath - org-babel integration with SageMath

code-debug - Native debugging for VSCode