adding new stuff

This commit is contained in:
ViktorBarzin 2017-07-09 00:22:01 +03:00
parent f84d7183aa
commit 9ef8a96f9a
1580 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,57 @@
import vim, os, sys
prev_syspath = None
activate_content = """
try:
__file__
except NameError:
raise AssertionError(
"You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))")
import sys
import os
old_os_path = os.environ['PATH']
os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path
base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if sys.platform == 'win32':
site_packages = os.path.join(base, 'Lib', 'site-packages')
else:
version = '%s.%s' % (sys.version_info.major, sys.version_info.minor)
site_packages = os.path.join(base, 'lib', 'python%s' % version, 'site-packages')
prev_sys_path = list(sys.path)
import site
site.addsitedir(site_packages)
sys.real_prefix = sys.prefix
sys.prefix = base
# Move the added items to the front of the path:
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
"""
def activate(env):
global prev_syspath
prev_syspath = list(sys.path)
activate = os.path.join(env, (sys.platform == 'win32') and 'Scripts' or 'bin', 'activate_this.py')
try:
fo = open(activate)
f = fo.read()
fo.close()
except:
f = activate_content
code = compile(f, activate, 'exec')
exec(code, dict(__file__=activate))
def deactivate():
global prev_syspath
try:
sys.path[:] = prev_syspath
prev_syspath = None
except:
pass

View file

@ -0,0 +1,110 @@
if has('python3')
python3 import sys, vim
python3 if vim.eval('expand("<sfile>:p:h")') not in sys.path: sys.path.append(vim.eval('expand("<sfile>:p:h")'))
python3 import pyvenv
endif
if has('python')
python import sys, vim
python if vim.eval('expand("<sfile>:p:h")') not in sys.path: sys.path.append(vim.eval('expand("<sfile>:p:h")'))
python import pyvenv
endif
function! virtualenv#activate(...)
let name = a:0 > 0 ? a:1 : ''
let silent = a:0 > 1 ? a:2 : 0
let env_dir = ''
if len(name) == 0 "Figure out the name based on current file
if isdirectory($VIRTUAL_ENV)
let name = fnamemodify($VIRTUAL_ENV, ':t')
let env_dir = $VIRTUAL_ENV
elseif isdirectory($PROJECT_HOME)
let fn = expand('%:p')
let pat = '^'.$PROJECT_HOME.'/'
if fn =~ pat
let name = fnamemodify(substitute(fn, pat, '', ''), ':h')
if name != '.' "No project directory
let env_dir = g:virtualenv_directory.'/'.name
endif
endif
endif
else
let env_dir = g:virtualenv_directory.'/'.name
endif
"Couldn't figure it out, so DIE
if !isdirectory(env_dir)
if !silent
echoerr "No virtualenv could be auto-detected and activated."
endif
return
endif
let bin = env_dir.(has('win32')? '/Scripts': '/bin')
call virtualenv#deactivate()
let s:prev_path = $PATH
if has('python')
python pyvenv.activate(vim.eval('l:env_dir'))
endif
if has('python3')
python3 pyvenv.activate(vim.eval('l:env_dir'))
endif
let g:virtualenv_name = name
let $VIRTUAL_ENV = env_dir
if exists("*airline#extensions#virtualenv#update")
call airline#extensions#virtualenv#update()
endif
endfunction
function! virtualenv#deactivate()
if has('python')
python pyvenv.deactivate()
endif
if has('python3')
python3 pyvenv.deactivate()
endif
unlet! g:virtualenv_name
let $VIRTUAL_ENV = '' " can't delete parent variables
if exists('s:prev_path')
let $PATH = s:prev_path
endif
if exists("*airline#extensions#virtualenv#update")
call airline#extensions#virtualenv#update()
endif
endfunction
function! virtualenv#list()
for name in virtualenv#names('')
echo name
endfor
endfunction
function! virtualenv#statusline()
if exists('g:virtualenv_name')
return substitute(g:virtualenv_stl_format, '\C%n', g:virtualenv_name, 'g')
else
return ''
endif
endfunction
function! virtualenv#names(prefix)
let venvs = []
for dir in split(glob(g:virtualenv_directory.'/'.a:prefix.'*'), '\n')
if !isdirectory(dir)
continue
endif
let fn = dir.(has('win32')? '/Scripts': '/bin').'/activate'
if !filereadable(fn)
continue
endif
call add(venvs, fnamemodify(dir, ':t'))
endfor
return venvs
endfunction