this post was submitted on 23 Oct 2023
1 points (100.0% liked)
Emacs
314 readers
2 users here now
A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!
Get Emacs
Rules
- Posts should be emacs related
- Be kind please
- Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.
Emacs Resources
Emacs Tutorials
- Beginner’s Guide to Emacs
- Absolute Beginner's Guide to Emacs
- How to Learn Emacs: A Hand-drawn One-pager for Beginners
Useful Emacs configuration files and distributions
Quick pain-saver tip
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
for activating a virtual environment, I highly recommend checking out direnv. It has good integration with Emacs through direnv-mode, but also will handle your shell stuff for you. Pretty much fixed a lot of my tooling problems.
I am a bit curious about how one could do the shell-command thing though. In dir-locals you can exec code, but I think that would execute on every file that you open (which is probably not what you want)
Thank you, I will take a look at direnv. The idea is to run the command once indeed. I know there is hooks when switching project, but how to use them here is out of my knowledge.
One thing I found is that projectile-switch-project-action is the action invoked after switching to a project. This defaults to projectile-file-file, but you might be able to make a function that spawns the process (if it doesn't exist already of course) and then call projectile-find-file.
(figured this out by scrolling through projectile.el and looking for switch-project)
I posted this question on Doom emacs #help 's discord, and someone suggested to use: projectile-after-switch-project-hook
I'm not sure if I can place it inside my dir-locals.el, that hook could be evaluated before reading dir-locals and if I'm correct nothing would happen so.
Anyway, those are good starting points, I will take a look and if I find a solution, come back here to let you know.