Fixed nvim stuff
This commit is contained in:
@@ -399,7 +399,7 @@ function! s:lod(names, types)
|
||||
endfunction
|
||||
|
||||
function! s:lod_ft(pat, names)
|
||||
call s:lod(a:names, ['plugin', 'after/plugin'])
|
||||
call s:lod(a:names, ['plugin', 'after/plugin', 'syntax', 'after/syntax'])
|
||||
execute 'autocmd! PlugLOD FileType' a:pat
|
||||
if exists('#filetypeplugin#FileType')
|
||||
doautocmd filetypeplugin FileType
|
||||
@@ -646,7 +646,7 @@ function! s:do(pull, force, todo)
|
||||
endif
|
||||
let installed = has_key(s:update.new, name)
|
||||
let updated = installed ? 0 :
|
||||
\ (a:pull && !empty(s:system_chomp('git log --pretty=format:"%h" "HEAD...HEAD@{1}"', spec.dir)))
|
||||
\ (a:pull && index(s:update.errors, name) < 0 && !empty(s:system_chomp('git log --pretty=format:"%h" "HEAD...HEAD@{1}"', spec.dir)))
|
||||
if a:force || installed || updated
|
||||
execute 'cd' s:esc(spec.dir)
|
||||
call append(3, '- Post-update hook for '. name .' ... ')
|
||||
@@ -1050,17 +1050,17 @@ G_LOG_PROB = 1.0 / int(vim.eval('s:update.threads'))
|
||||
G_STOP = thr.Event()
|
||||
G_THREADS = {}
|
||||
|
||||
class BaseExc(Exception):
|
||||
class PlugError(Exception):
|
||||
def __init__(self, msg):
|
||||
self._msg = msg
|
||||
@property
|
||||
def msg(self):
|
||||
return self._msg
|
||||
class CmdTimedOut(BaseExc):
|
||||
class CmdTimedOut(PlugError):
|
||||
pass
|
||||
class CmdFailed(BaseExc):
|
||||
class CmdFailed(PlugError):
|
||||
pass
|
||||
class InvalidURI(BaseExc):
|
||||
class InvalidURI(PlugError):
|
||||
pass
|
||||
class Action(object):
|
||||
INSTALL, UPDATE, ERROR, DONE = ['+', '*', 'x', '-']
|
||||
@@ -1074,7 +1074,7 @@ class Buffer(object):
|
||||
self.maxy = int(vim.eval('winheight(".")'))
|
||||
self.num_plugs = num_plugs
|
||||
|
||||
def _where(self, name):
|
||||
def __where(self, name):
|
||||
""" Find first line with name in current buffer. Return line num. """
|
||||
found, lnum = False, 0
|
||||
matcher = re.compile('^[-+x*] {0}:'.format(name))
|
||||
@@ -1103,8 +1103,7 @@ class Buffer(object):
|
||||
def write(self, action, name, lines):
|
||||
first, rest = lines[0], lines[1:]
|
||||
msg = ['{0} {1}{2}{3}'.format(action, name, ': ' if first else '', first)]
|
||||
padded_rest = [' ' + line for line in rest]
|
||||
msg.extend(padded_rest)
|
||||
msg.extend([' ' + line for line in rest])
|
||||
|
||||
try:
|
||||
if action == Action.ERROR:
|
||||
@@ -1114,7 +1113,7 @@ class Buffer(object):
|
||||
self.bar += '='
|
||||
|
||||
curbuf = vim.current.buffer
|
||||
lnum = self._where(name)
|
||||
lnum = self.__where(name)
|
||||
if lnum != -1: # Found matching line num
|
||||
del curbuf[lnum]
|
||||
if lnum > self.maxy and action in set([Action.INSTALL, Action.UPDATE]):
|
||||
@@ -1128,27 +1127,40 @@ class Buffer(object):
|
||||
pass
|
||||
|
||||
class Command(object):
|
||||
def __init__(self, cmd, cmd_dir=None, timeout=60, ntries=3, cb=None, clean=None):
|
||||
def __init__(self, cmd, cmd_dir=None, timeout=60, cb=None, clean=None):
|
||||
self.cmd = cmd
|
||||
self.cmd_dir = cmd_dir
|
||||
self.timeout = timeout
|
||||
self.ntries = ntries
|
||||
self.callback = cb if cb else (lambda msg: None)
|
||||
self.clean = clean
|
||||
self.clean = clean if clean else (lambda: None)
|
||||
self.proc = None
|
||||
|
||||
def attempt_cmd(self):
|
||||
""" Tries to run the command, returns result if no exceptions. """
|
||||
attempt = 0
|
||||
finished = False
|
||||
limit = self.timeout
|
||||
@property
|
||||
def alive(self):
|
||||
""" Returns true only if command still running. """
|
||||
return self.proc and self.proc.poll() is None
|
||||
|
||||
def execute(self, ntries=3):
|
||||
""" Execute the command with ntries if CmdTimedOut.
|
||||
Returns the output of the command if no Exception.
|
||||
"""
|
||||
attempt, finished, limit = 0, False, self.timeout
|
||||
|
||||
while not finished:
|
||||
try:
|
||||
attempt += 1
|
||||
result = self.timeout_cmd()
|
||||
result = self.try_command()
|
||||
finished = True
|
||||
return result
|
||||
except CmdTimedOut:
|
||||
if attempt != self.ntries:
|
||||
if attempt != ntries:
|
||||
self.notify_retry()
|
||||
self.timeout += limit
|
||||
else:
|
||||
raise
|
||||
|
||||
def notify_retry(self):
|
||||
""" Retry required for command, notify user. """
|
||||
for count in range(3, 0, -1):
|
||||
if G_STOP.is_set():
|
||||
raise KeyboardInterrupt
|
||||
@@ -1156,28 +1168,32 @@ class Command(object):
|
||||
count, 's' if count != 1 else '')
|
||||
self.callback([msg])
|
||||
time.sleep(1)
|
||||
self.timeout += limit
|
||||
self.callback(['Retrying ...'])
|
||||
else:
|
||||
raise
|
||||
|
||||
return result
|
||||
|
||||
def timeout_cmd(self):
|
||||
def try_command(self):
|
||||
""" Execute a cmd & poll for callback. Returns list of output.
|
||||
Raises CmdFailed -> return code for Popen isn't 0
|
||||
Raises CmdTimedOut -> command exceeded timeout without new output
|
||||
"""
|
||||
proc = None
|
||||
first_line = True
|
||||
try:
|
||||
tfile = tempfile.NamedTemporaryFile(mode='w+b', delete=False)
|
||||
proc = subprocess.Popen(self.cmd, cwd=self.cmd_dir, stdout=tfile,
|
||||
stderr=subprocess.STDOUT, shell=True, preexec_fn=os.setsid)
|
||||
while proc.poll() is None:
|
||||
# Yield this thread
|
||||
time.sleep(0.2)
|
||||
|
||||
try:
|
||||
tfile = tempfile.NamedTemporaryFile(mode='w+b')
|
||||
self.proc = subprocess.Popen(self.cmd, cwd=self.cmd_dir, stdout=tfile,
|
||||
stderr=subprocess.STDOUT, shell=True,
|
||||
preexec_fn=os.setsid)
|
||||
thrd = thr.Thread(target=(lambda proc: proc.wait()), args=(self.proc,))
|
||||
thrd.start()
|
||||
|
||||
thread_not_started = True
|
||||
while thread_not_started:
|
||||
try:
|
||||
thrd.join(0.1)
|
||||
thread_not_started = False
|
||||
except RuntimeError:
|
||||
pass
|
||||
|
||||
while self.alive:
|
||||
if G_STOP.is_set():
|
||||
raise KeyboardInterrupt
|
||||
|
||||
@@ -1191,23 +1207,24 @@ class Command(object):
|
||||
if time_diff > self.timeout:
|
||||
raise CmdTimedOut(['Timeout!'])
|
||||
|
||||
tfile.seek(0)
|
||||
result = [line.decode().rstrip() for line in tfile]
|
||||
thrd.join(0.5)
|
||||
|
||||
if proc.returncode != 0:
|
||||
msg = ['']
|
||||
msg.extend(result)
|
||||
raise CmdFailed(msg)
|
||||
except:
|
||||
if proc and proc.poll() is None:
|
||||
os.killpg(proc.pid, signal.SIGTERM)
|
||||
if self.clean:
|
||||
self.clean()
|
||||
raise
|
||||
finally:
|
||||
os.remove(tfile.name)
|
||||
tfile.seek(0)
|
||||
result = [line.decode('utf-8', 'replace').rstrip() for line in tfile]
|
||||
|
||||
if self.proc.returncode != 0:
|
||||
raise CmdFailed([''] + result)
|
||||
|
||||
return result
|
||||
except:
|
||||
self.terminate()
|
||||
raise
|
||||
|
||||
def terminate(self):
|
||||
""" Terminate process and cleanup. """
|
||||
if self.alive:
|
||||
os.killpg(self.proc.pid, signal.SIGTERM)
|
||||
self.clean()
|
||||
|
||||
class Plugin(object):
|
||||
def __init__(self, name, args, buf_q, lock):
|
||||
@@ -1228,7 +1245,7 @@ class Plugin(object):
|
||||
self.install()
|
||||
with self.lock:
|
||||
thread_vim_command("let s:update.new['{0}'] = 1".format(self.name))
|
||||
except (CmdTimedOut, CmdFailed, InvalidURI) as exc:
|
||||
except PlugError as exc:
|
||||
self.write(Action.ERROR, self.name, exc.msg)
|
||||
except KeyboardInterrupt:
|
||||
G_STOP.set()
|
||||
@@ -1253,11 +1270,18 @@ class Plugin(object):
|
||||
self.write(Action.INSTALL, self.name, ['Installing ...'])
|
||||
callback = functools.partial(self.write, Action.INSTALL, self.name)
|
||||
cmd = 'git clone {0} {1} --recursive {2} -b {3} {4} 2>&1'.format(
|
||||
'' if self.tag else G_CLONE_OPT, G_PROGRESS, self.args['uri'], self.checkout, esc(target))
|
||||
com = Command(cmd, None, G_TIMEOUT, G_RETRIES, callback, clean(target))
|
||||
result = com.attempt_cmd()
|
||||
'' if self.tag else G_CLONE_OPT, G_PROGRESS, self.args['uri'],
|
||||
self.checkout, esc(target))
|
||||
com = Command(cmd, None, G_TIMEOUT, callback, clean(target))
|
||||
result = com.execute(G_RETRIES)
|
||||
self.write(Action.DONE, self.name, result[-1:])
|
||||
|
||||
def repo_uri(self):
|
||||
cmd = 'git rev-parse --abbrev-ref HEAD 2>&1 && git config remote.origin.url'
|
||||
command = Command(cmd, self.args['dir'], G_TIMEOUT,)
|
||||
result = command.execute(G_RETRIES)
|
||||
return result[-1]
|
||||
|
||||
def update(self):
|
||||
match = re.compile(r'git::?@')
|
||||
actual_uri = re.sub(match, '', self.repo_uri())
|
||||
@@ -1278,18 +1302,12 @@ class Plugin(object):
|
||||
'git merge --ff-only {0}'.format(self.merge),
|
||||
'git submodule update --init --recursive']
|
||||
cmd = ' 2>&1 && '.join(cmds)
|
||||
com = Command(cmd, self.args['dir'], G_TIMEOUT, G_RETRIES, callback)
|
||||
result = com.attempt_cmd()
|
||||
com = Command(cmd, self.args['dir'], G_TIMEOUT, callback)
|
||||
result = com.execute(G_RETRIES)
|
||||
self.write(Action.DONE, self.name, result[-1:])
|
||||
else:
|
||||
self.write(Action.DONE, self.name, ['Already installed'])
|
||||
|
||||
def repo_uri(self):
|
||||
cmd = 'git rev-parse --abbrev-ref HEAD 2>&1 && git config remote.origin.url'
|
||||
command = Command(cmd, self.args['dir'], G_TIMEOUT, G_RETRIES)
|
||||
result = command.attempt_cmd()
|
||||
return result[-1]
|
||||
|
||||
def write(self, action, name, msg):
|
||||
self.buf_q.put((action, name, msg))
|
||||
|
||||
@@ -1326,7 +1344,7 @@ class RefreshThread(thr.Thread):
|
||||
while self.running:
|
||||
with self.lock:
|
||||
thread_vim_command('noautocmd normal! a')
|
||||
time.sleep(0.2)
|
||||
time.sleep(0.33)
|
||||
|
||||
def stop(self):
|
||||
self.running = False
|
||||
@@ -1344,7 +1362,7 @@ def esc(name):
|
||||
def nonblock_read(fname):
|
||||
""" Read a file with nonblock flag. Return the last line. """
|
||||
fread = os.open(fname, os.O_RDONLY | os.O_NONBLOCK)
|
||||
buf = os.read(fread, 100000).decode()
|
||||
buf = os.read(fread, 100000).decode('utf-8', 'replace')
|
||||
os.close(fread)
|
||||
|
||||
line = buf.rstrip('\r\n')
|
||||
@@ -1,4 +1,4 @@
|
||||
call plug#begin('~/.dotfiles/nvim/.nvim/plugged')
|
||||
call plug#begin('~/.dotfiles/nvim/.config/nvim/plugged')
|
||||
Plug 'kien/ctrlp.vim'
|
||||
Plug 'FelikZ/ctrlp-py-matcher'
|
||||
Plug 'Raimondi/delimitMate'
|
||||
@@ -13,22 +13,18 @@ Plug 'tommcdo/vim-exchange'
|
||||
Plug 'justinmk/vim-matchparenalways'
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'christoomey/vim-tmux-navigator'
|
||||
Plug 'vim-scripts/OmniCppComplete'
|
||||
Plug 'ervandew/supertab'
|
||||
Plug 'MarcWeber/vim-addon-mw-utils'
|
||||
Plug 'tomtom/tlib_vim'
|
||||
Plug 'garbas/vim-snipmate'
|
||||
Plug 'SirVer/ultisnips'
|
||||
Plug 'honza/vim-snippets'
|
||||
Plug 'beyondmarc/glsl.vim'
|
||||
Plug 'tpope/vim-dispatch'
|
||||
Plug 'freitass/todo.txt-vim'
|
||||
Plug 'tpope/vim-unimpaired'
|
||||
Plug 'milkypostman/vim-togglelist'
|
||||
Plug 'Valloric/YouCompleteMe'
|
||||
call plug#end()
|
||||
|
||||
let g:neomake_airline=1
|
||||
|
||||
" let g:ctrlp_match_func = { 'match': 'pymatcher#PyMatch' }
|
||||
let g:ctrlp_custom_ignore = '\v[\/](bin|obj)$'
|
||||
|
||||
let delimitMate_expand_cr = 1
|
||||
@@ -38,9 +34,9 @@ set t_Co=256
|
||||
set t_ZH=[3m
|
||||
set t_ZR=[23m
|
||||
set background=dark
|
||||
" set background=light
|
||||
|
||||
let g:indentLine_char = '│'
|
||||
let g:indentLine_color_term = 239
|
||||
|
||||
" map <silent> <M-a> :NERDTreeToggle<cr>
|
||||
map <silent> <F2> :NERDTreeToggle<cr>
|
||||
@@ -57,18 +53,20 @@ map <M-j> :TmuxNavigateDown<cr>
|
||||
map <M-k> :TmuxNavigateUp<cr>
|
||||
map <M-l> :TmuxNavigateRight<cr>
|
||||
|
||||
set omnifunc=syntaxcomplete#Complete " override built-in C omnicomplete with C++ OmniCppComplete plugin
|
||||
let OmniCpp_GlobalScopeSearch = 1
|
||||
let OmniCpp_DisplayMode = 1
|
||||
let OmniCpp_ShowScopeInAbbr = 0 "do not show namespace in pop-up
|
||||
let OmniCpp_ShowPrototypeInAbbr = 1 "show prototype in pop-up
|
||||
let OmniCpp_ShowAccess = 1 "show access in pop-up
|
||||
let OmniCpp_SelectFirstItem = 1 "select first item in pop-up
|
||||
set completeopt=menuone,menu,longest
|
||||
" set omnifunc=syntaxcomplete#Complete " override built-in C omnicomplete with C++ OmniCppComplete plugin
|
||||
" let OmniCpp_GlobalScopeSearch = 1
|
||||
" let OmniCpp_DisplayMode = 1
|
||||
" let OmniCpp_ShowScopeInAbbr = 0 "do not show namespace in pop-up
|
||||
" let OmniCpp_ShowPrototypeInAbbr = 1 "show prototype in pop-up
|
||||
" let OmniCpp_ShowAccess = 1 "show access in pop-up
|
||||
" let OmniCpp_SelectFirstItem = 1 "select first item in pop-up
|
||||
|
||||
let g:SuperTabDefaultCompletionType = "<C-X><C-O>"
|
||||
set completeopt=menuone,menu,preview
|
||||
let g:ycm_confirm_extra_conf = 0
|
||||
let g:ycm_error_symbol = ''
|
||||
let g:ycm_warning_symbol = ''
|
||||
|
||||
" let g:SuperTabDefaultCompletionType = "<c-n>"
|
||||
let g:UltiSnipsExpandTrigger="<c-s>"
|
||||
|
||||
syntax on
|
||||
filetype plugin indent on
|
||||
@@ -82,7 +80,8 @@ set shiftwidth=4
|
||||
set noexpandtab
|
||||
set completeopt-=preview
|
||||
|
||||
set cinkeys=0{,0},0),:,!^F,o,O,e
|
||||
" I do not remember what this is for
|
||||
" set cinkeys=0{,0},0),:,!^F,o,O,e
|
||||
|
||||
map <silent> <tab> :bn<cr>
|
||||
map <silent> <S-tab> :bp<cr>
|
||||
@@ -90,15 +89,11 @@ map <silent> <S-tab> :bp<cr>
|
||||
map <S-J> 10j
|
||||
map <S-K> 10k
|
||||
|
||||
" map <silent> <F9> :make<cr>:cw<cr>
|
||||
if $HOST != "hefaistos"
|
||||
map <F9> :Make<cr>
|
||||
map <F10> :Make debug<cr>
|
||||
else
|
||||
map <F9> :Make CONFIG=legacy<cr>
|
||||
map <F10> :Make CONFIG=legacy debug<cr>
|
||||
endif
|
||||
map <F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
|
||||
autocmd FileType cpp map <F9> :Make<cr>
|
||||
autocmd FileType cpp map <F10> :Make debug<cr>
|
||||
autocmd FileType cpp map <F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
|
||||
|
||||
autocmd FileType tex map <F9> :!arara %<cr>
|
||||
|
||||
map <silent> <F4> :call ToggleQuickfixList()<cr>
|
||||
map <silent> <F5> :e ./todo/todo.txt<cr>
|
||||
1
nvim/.config/nvim/plugged/YouCompleteMe
Submodule
1
nvim/.config/nvim/plugged/YouCompleteMe
Submodule
Submodule nvim/.config/nvim/plugged/YouCompleteMe added at 0352ed9b1f
1
nvim/.config/nvim/plugged/delimitMate
Submodule
1
nvim/.config/nvim/plugged/delimitMate
Submodule
Submodule nvim/.config/nvim/plugged/delimitMate added at 8bc47fd1c4
1
nvim/.config/nvim/plugged/gruvbox
Submodule
1
nvim/.config/nvim/plugged/gruvbox
Submodule
Submodule nvim/.config/nvim/plugged/gruvbox added at e4ba7abe5c
1
nvim/.config/nvim/plugged/indentLine
Submodule
1
nvim/.config/nvim/plugged/indentLine
Submodule
Submodule nvim/.config/nvim/plugged/indentLine added at 6011a6132c
1
nvim/.config/nvim/plugged/nerdtree
Submodule
1
nvim/.config/nvim/plugged/nerdtree
Submodule
Submodule nvim/.config/nvim/plugged/nerdtree added at 0b44415a33
1
nvim/.config/nvim/plugged/tcomment_vim
Submodule
1
nvim/.config/nvim/plugged/tcomment_vim
Submodule
Submodule nvim/.config/nvim/plugged/tcomment_vim added at c067932263
1
nvim/.config/nvim/plugged/tlib_vim
Submodule
1
nvim/.config/nvim/plugged/tlib_vim
Submodule
Submodule nvim/.config/nvim/plugged/tlib_vim added at 04b1b1de81
1
nvim/.config/nvim/plugged/todo.txt-vim
Submodule
1
nvim/.config/nvim/plugged/todo.txt-vim
Submodule
Submodule nvim/.config/nvim/plugged/todo.txt-vim added at b3d9e18b08
1
nvim/.config/nvim/plugged/ultisnips
Submodule
1
nvim/.config/nvim/plugged/ultisnips
Submodule
Submodule nvim/.config/nvim/plugged/ultisnips added at c9699feed1
1
nvim/.config/nvim/plugged/vim-airline
Submodule
1
nvim/.config/nvim/plugged/vim-airline
Submodule
Submodule nvim/.config/nvim/plugged/vim-airline added at 14d14cf951
1
nvim/.config/nvim/plugged/vim-exchange
Submodule
1
nvim/.config/nvim/plugged/vim-exchange
Submodule
Submodule nvim/.config/nvim/plugged/vim-exchange added at 9373a8471c
1
nvim/.config/nvim/plugged/vim-snippets
Submodule
1
nvim/.config/nvim/plugged/vim-snippets
Submodule
Submodule nvim/.config/nvim/plugged/vim-snippets added at 8cb1d88e47
1
nvim/.config/nvim/plugged/vim-tmux-navigator
Submodule
1
nvim/.config/nvim/plugged/vim-tmux-navigator
Submodule
Submodule nvim/.config/nvim/plugged/vim-tmux-navigator added at 754871fc6e
1
nvim/.config/nvim/plugged/vim-unimpaired
Submodule
1
nvim/.config/nvim/plugged/vim-unimpaired
Submodule
Submodule nvim/.config/nvim/plugged/vim-unimpaired added at 23f471ad0f
@@ -8,6 +8,6 @@ snippet header
|
||||
#endif
|
||||
|
||||
snippet incl
|
||||
# include "Standard.h"
|
||||
#include "standard.h"
|
||||
|
||||
${0}
|
||||
Submodule nvim/.nvim/plugged/OmniCppComplete deleted from 2fac015957
Submodule nvim/.nvim/plugged/delimitMate deleted from d24ad6b301
Submodule nvim/.nvim/plugged/gruvbox deleted from 289094bce9
Submodule nvim/.nvim/plugged/indentLine deleted from 300c719b3e
Submodule nvim/.nvim/plugged/nerdtree deleted from bcf3de4fdf
Submodule nvim/.nvim/plugged/supertab deleted from c8bfeceb1f
Submodule nvim/.nvim/plugged/tcomment_vim deleted from d39c7dbc83
Submodule nvim/.nvim/plugged/tlib_vim deleted from 4c128ee2fe
Submodule nvim/.nvim/plugged/todo.txt-vim deleted from c13a277e2a
Submodule nvim/.nvim/plugged/vim-airline deleted from cdc6d98a09
Submodule nvim/.nvim/plugged/vim-exchange deleted from 0ae5d5ea99
Submodule nvim/.nvim/plugged/vim-snipmate deleted from c86c64508a
Submodule nvim/.nvim/plugged/vim-snippets deleted from 8a501edad8
Submodule nvim/.nvim/plugged/vim-tmux-navigator deleted from 176452ead4
Submodule nvim/.nvim/plugged/vim-unimpaired deleted from 1ec6af944e
@@ -13,6 +13,9 @@ export PATH="/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
export PATH="$HOME/.local/bin/scripts:$PATH"
|
||||
export TERM="screen-256color"
|
||||
export SAL_USE_VCLPLUGIN="gtk"
|
||||
export GOPATH="$HOME/.local/go"
|
||||
export PATH="$HOME/.local/go/bin:$PATH"
|
||||
|
||||
#setting aliases
|
||||
alias cl="clear"
|
||||
|
||||
Reference in New Issue
Block a user