mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-06 20:54:26 +08:00
* fix ale_python_auto_virtualenv to correctly set virtualenv env vars According to the documentation, `ale_python_auto_virtualenv` should automatically set environment variables for commands, but previously the variables were not set completely or correctly. Before: `PATH` variable was expanded to include `/path/to/venv` After: `PATH` variable is expanded to include `/path/to/venv/bin` `VIRTUAL_ENV` variable is set to `path/to/venv` This mimics exactly what the `activate` scripts do, and allows the configuration knob to work as expected. For example, after this change, `jedi-language-server` can be installed globally (instead of inside every venv), and it will "just work" (e.g. find references to dependencies in the venv) when editing a file in a project that uses a venv, because the correct variables are set. * fix test_python_virtualenv.vader test to expect output with both virtualenv vars * remove unnecessary non-escape in test_python_virtualenv.vader * fix accidentally removed space in windows test_python_virtualenv.vader
24 lines
736 B
Plaintext
24 lines
736 B
Plaintext
Before:
|
|
Save $VIRTUAL_ENV
|
|
let $VIRTUAL_ENV = "/opt/example/"
|
|
|
|
After:
|
|
Restore
|
|
|
|
Execute(ale#python#FindVirtualenv falls back to $VIRTUAL_ENV when no directories match):
|
|
AssertEqual
|
|
\ ale#python#FindVirtualenv(bufnr('%')),
|
|
\ '/opt/example/',
|
|
\ 'Expected VIRTUAL_ENV environment variable to be used, but it was not'
|
|
|
|
Execute(ale#python#AutoVirtualenvEnvString should return the correct values):
|
|
if has('win32')
|
|
AssertEqual
|
|
\ 'set PATH=/opt/example/\Scripts;%PATH% && set VIRTUAL_ENV=/opt/example/ && ',
|
|
\ ale#python#AutoVirtualenvEnvString(bufnr(''))
|
|
else
|
|
AssertEqual
|
|
\ 'PATH=''/opt/example//bin''":$PATH" VIRTUAL_ENV=''/opt/example/'' ',
|
|
\ ale#python#AutoVirtualenvEnvString(bufnr(''))
|
|
endif
|