necaris / conda.el

Emacs helper library (and minor mode) to work with conda environments
MIT License
153 stars 49 forks source link

Buffer local environments #81

Closed tranner closed 2 years ago

tranner commented 3 years ago

I'm enjoying using the package for manually activating and deactivating conda environments. So long as I do things manually everything seems to work out just right so thanks for making this package.

I tried out conda-env-autoactivate-mode but I didn't really do what I was expecting at all. I think this is for two reasons. First, the environment check is done on switch-buffer. This seems to both be too often and not often enough - it doesn't find the environment when you first find a file but then checks if you swap between buffers in the same project (with the same environment) even if you've already visited and correctly set the environment.

I'd like to make an enhancement suggestion. I'm not sure if this is possible to be honest but I hoped you might be able to help. Can the environment be made buffer-local? If this was possible the environment could be set when the file is opened then you wouldn't need to check any further. Does this make sense? Would this even be possible?

This would also allow me to switch quickly between projects without changing environments lots (which seems to be the aim of conda-env-autoactivate-mode and also provide a solution for #64.

necaris commented 2 years ago

Right now the variable that holds the relevant environment is buffer-local, but that behavior clearly isn't doing what we expect :-(

@wtianyi tagged this issue is related to #93 although I think perhaps there's several needs getting wrapped together here :-(

necaris commented 2 years ago

@tranner @wtianyi is this still relevant? With a few of the changes merged recently including #93 I'm hoping this is solved -- the variable is still declared as buffer-local as far as I can see.

I'm going to close this as inactive but please reopen if necessary!

tranner commented 2 years ago

Thanks for addressing this problem - I did find a slightly dirty workaround but this would be a much nicer solution. I'll take a look when I get chance but it might take me a while to get to it.