Merge branch 'master' of frogit:geoffrey/dotfiles
This commit is contained in:
commit
9657a8255d
6
config/mypy/config
Normal file
6
config/mypy/config
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[mypy]
|
||||||
|
ignore_missing_imports = True
|
||||||
|
disallow_untyped_defs = True
|
||||||
|
disallow_untyped_calls = True
|
||||||
|
disallow_incomplete_defs = True
|
||||||
|
disallow_untyped_decorators = True
|
|
@ -603,6 +603,6 @@ if __name__ == "__main__":
|
||||||
perfstep("exec")
|
perfstep("exec")
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
sys.exit(0)
|
|
||||||
for kv in sorted(perf_dict.items(), key=lambda p: p[1]):
|
for kv in sorted(perf_dict.items(), key=lambda p: p[1]):
|
||||||
log.debug("{1:.6f} {0}".format(*kv))
|
log.debug("{1:.6f} {0}".format(*kv))
|
||||||
|
sys.exit(0)
|
||||||
|
|
59
config/scripts/ovhcli
Executable file
59
config/scripts/ovhcli
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import ovh
|
||||||
|
import xdg.BaseDirectory
|
||||||
|
import urllib.request
|
||||||
|
from pprint import pprint
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import coloredlogs
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
coloredlogs.install(level='DEBUG', fmt='%(levelname)s %(message)s')
|
||||||
|
log = logging.getLogger()
|
||||||
|
|
||||||
|
debug = None
|
||||||
|
|
||||||
|
class OvhCli():
|
||||||
|
ROOT = "https://api.ovh.com/1.0?null"
|
||||||
|
def __init__(self):
|
||||||
|
self.cacheDir = os.path.join(xdg.BaseDirectory.xdg_cache_home, 'ovhcli')
|
||||||
|
# TODO Corner cases: links, cache dir not done, configurable cache
|
||||||
|
if not os.path.isdir(self.cacheDir):
|
||||||
|
assert not os.path.exists(self.cacheDir)
|
||||||
|
os.makedirs(self.cacheDir)
|
||||||
|
|
||||||
|
def updateCache(self):
|
||||||
|
log.info("Downloading the API description")
|
||||||
|
rootJsonPath = os.path.join(self.cacheDir, 'root.json')
|
||||||
|
log.debug(f"{self.ROOT} -> {rootJsonPath}")
|
||||||
|
urllib.request.urlretrieve(self.ROOT, rootJsonPath)
|
||||||
|
with open(rootJsonPath, 'rt') as rootJson:
|
||||||
|
root = json.load(rootJson)
|
||||||
|
basePath = root['basePath']
|
||||||
|
|
||||||
|
for apiRoot in root['apis']:
|
||||||
|
fmt = 'json'
|
||||||
|
assert fmt in apiRoot['format']
|
||||||
|
path = apiRoot['path']
|
||||||
|
schema = apiRoot['schema'].format(format=fmt, path=path)
|
||||||
|
apiJsonPath = os.path.join(self.cacheDir, schema[1:])
|
||||||
|
apiJsonUrl = basePath + schema
|
||||||
|
log.debug(f"{apiJsonUrl} -> {apiJsonPath}")
|
||||||
|
apiJsonPathDir = os.path.dirname(apiJsonPath)
|
||||||
|
if not os.path.isdir(apiJsonPathDir):
|
||||||
|
os.makedirs(apiJsonPathDir)
|
||||||
|
urllib.request.urlretrieve(apiJsonUrl, apiJsonPath)
|
||||||
|
|
||||||
|
def createParser(self):
|
||||||
|
parser = argparse.ArgumentParser(description='Access the OVH API')
|
||||||
|
return parser
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
cli = OvhCli()
|
||||||
|
# cli.updateCache()
|
||||||
|
parser = cli.createParser()
|
||||||
|
args = parser.parse_args()
|
||||||
|
print(args)
|
|
@ -77,6 +77,15 @@ export XAUTHORITY="$HOME/.config/Xauthority"
|
||||||
# And for the rest, see aliases
|
# And for the rest, see aliases
|
||||||
direnv JUNKHOME "$HOME/.cache/junkhome"
|
direnv JUNKHOME "$HOME/.cache/junkhome"
|
||||||
|
|
||||||
|
# For software that did not understand that XDG variables have defaults
|
||||||
|
direnv XDG_DATA_HOME "$HOME/.local/share"
|
||||||
|
direnv XDG_CONFIG_HOME "$HOME/.config"
|
||||||
|
export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
|
||||||
|
export XDG_CONFIG_DIRS="/etc/xdg"
|
||||||
|
direnv XDG_CACHE_HOME "$HOME/.cache"
|
||||||
|
direnv XDG_RUNTIME_DIR "$HOME/.local/run"
|
||||||
|
chmod 0700 "$XDG_RUNTIME_DIR"
|
||||||
|
|
||||||
# Path
|
# Path
|
||||||
|
|
||||||
# Function stolen from Arch Linux /etc/profile
|
# Function stolen from Arch Linux /etc/profile
|
||||||
|
|
|
@ -54,7 +54,7 @@ alias bower='bower --config.storage.packages=~/.cache/bower/packages --config.st
|
||||||
alias gdb='gdb -x $HOME/.config/gdbinit'
|
alias gdb='gdb -x $HOME/.config/gdbinit'
|
||||||
alias iftop='iftop -c $HOME/.config/iftoprc'
|
alias iftop='iftop -c $HOME/.config/iftoprc'
|
||||||
alias lmms='lmms --config $HOME/.config/lmmsrc.xml'
|
alias lmms='lmms --config $HOME/.config/lmmsrc.xml'
|
||||||
alias tmux='tmux -f $HOME/.config/tmux.conf'
|
alias tmux='tmux -f $HOME/.config/tmux/tmux.conf'
|
||||||
|
|
||||||
# TODO ruby's gem when I find a use for it
|
# TODO ruby's gem when I find a use for it
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ bind-key -n M-7 select-window -t 7
|
||||||
bind-key -n M-8 select-window -t 8
|
bind-key -n M-8 select-window -t 8
|
||||||
bind-key -n M-9 select-window -t 9
|
bind-key -n M-9 select-window -t 9
|
||||||
|
|
||||||
set -g mouse on
|
set -g mouse off
|
||||||
# https://superuser.com/a/1007721
|
# https://superuser.com/a/1007721
|
||||||
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"
|
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"
|
||||||
|
|
||||||
|
@ -23,4 +23,6 @@ set -g @themepack 'powerline/block/green'
|
||||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.cache/tmuxplugins/'
|
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.cache/tmuxplugins/'
|
||||||
|
|
||||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||||
|
if "test ! -d ~/.cache/tmuxplugins/tpm" \
|
||||||
|
"run 'git clone https://github.com/tmux-plugins/tpm ~/.cache/tmuxplugins/tpm && ~/.cache/tmuxplugins/tpm/bin/install_plugins'"
|
||||||
run -b '~/.cache/tmuxplugins/tpm/tpm'
|
run -b '~/.cache/tmuxplugins/tpm/tpm'
|
|
@ -8,7 +8,7 @@ let g:ale_completion_enabled = 1
|
||||||
let g:ale_fixers = ['autopep8', 'shfmt', 'uncrustify', 'remove_trailing_lines', 'trim_whitespace', 'phpcbf']
|
let g:ale_fixers = ['autopep8', 'shfmt', 'uncrustify', 'remove_trailing_lines', 'trim_whitespace', 'phpcbf']
|
||||||
let g:ale_php_phpcs_standard = '/srv/http/machines/ruleset.xml'
|
let g:ale_php_phpcs_standard = '/srv/http/machines/ruleset.xml'
|
||||||
|
|
||||||
" For PHP, install https://pear.php.net/package/PHP_CodeSniffer
|
" For PHP, install https://pear.php.net/package/PHP_CodeSniffer
|
||||||
|
|
||||||
|
|
||||||
""" UNDOTREE """
|
""" UNDOTREE """
|
||||||
|
@ -24,14 +24,15 @@ nmap <F8> :TagbarToggle<CR>
|
||||||
set noshowmode
|
set noshowmode
|
||||||
set laststatus=2
|
set laststatus=2
|
||||||
let g:airline_powerline_fonts = 1
|
let g:airline_powerline_fonts = 1
|
||||||
" let g:airline#extensions#syntastic#enabled = 1
|
|
||||||
let g:airline#extensions#tabline#enabled = 1
|
let g:airline#extensions#tabline#enabled = 1
|
||||||
|
|
||||||
let g:airline_section_a = airline#section#create(['mode'])
|
let g:airline_section_a = airline#section#create(['mode'])
|
||||||
let g:airline_section_b = airline#section#create(['branch', 'hunks'])
|
let g:airline_section_b = airline#section#create(['branch', 'hunks'])
|
||||||
" let g:airline_section_z = airline#section#create(['%B', '@', '%l', ':', '%c'])
|
" let g:airline_section_z = airline#section#create(['%B', '@', '%l', ':', '%c'])
|
||||||
let g:airline_theme = 'base16_monokai'
|
let g:airline_theme = 'base16_monokai'
|
||||||
let g:airline#extensions#ale#enabled = 1
|
|
||||||
|
let airline#extensions#languageclient#error_symbol = '✖ '
|
||||||
|
let airline#extensions#languageclient#warning_symbol = '⚠ '
|
||||||
|
|
||||||
""" FZF """
|
""" FZF """
|
||||||
|
|
||||||
|
@ -51,27 +52,28 @@ let g:fzf_colors =
|
||||||
\ 'spinner': ['fg', 'Label'],
|
\ 'spinner': ['fg', 'Label'],
|
||||||
\ 'header': ['fg', 'Comment'] }
|
\ 'header': ['fg', 'Comment'] }
|
||||||
|
|
||||||
nmap gF :Files<CR>
|
let g:fzf_command_prefix = 'Fzf'
|
||||||
nmap gf :GFiles<CR>
|
nmap gF :FzfFiles<CR>
|
||||||
nmap gb :Buffers<CR>
|
nmap gf :FzfGFiles<CR>
|
||||||
nmap gL :Lines<CR>
|
nmap gb :FzfBuffers<CR>
|
||||||
nmap gl :BLines<CR>
|
nmap gL :FzfLines<CR>
|
||||||
nmap gT :Tags<CR>
|
nmap gl :FzfBLines<CR>
|
||||||
nmap gt :BTags<CR>
|
nmap gT :FzfTags<CR>
|
||||||
nmap gm :Marks<CR>
|
nmap gt :FzfBTags<CR>
|
||||||
nmap gw :Windows<CR>
|
nmap gm :FzfMarks<CR>
|
||||||
nmap gh :History<CR>
|
nmap gw :FzfWindows<CR>
|
||||||
nmap gH :History:<CR>
|
nmap gh :FzfHistory<CR>
|
||||||
nmap gS :History/<CR>
|
nmap gH :FzfHistory:<CR>
|
||||||
nmap gs :Snippets<CR>
|
nmap gS :FzfHistory/<CR>
|
||||||
|
nmap gs :FzfSnippets<CR>
|
||||||
|
|
||||||
" TODO `gd` → go to tag matching selected word, or show a list with that
|
" TODO `gd` → go to tag matching selected word, or show a list with that
|
||||||
" of tags pre-filtered with that word
|
" of tags pre-filtered with that word
|
||||||
|
|
||||||
""" SUPERTAB """
|
""" SUPERTAB """
|
||||||
|
|
||||||
let g:SuperTabDefaultCompletionType = "<c-n>" " Go down when completing
|
" let g:SuperTabDefaultCompletionType = "<c-n>" " Go down when completing
|
||||||
let g:SuperTabContextDefaultCompletionType = "<c-n>"
|
" let g:SuperTabContextDefaultCompletionType = "<c-n>"
|
||||||
|
|
||||||
""" LanguageTool """
|
""" LanguageTool """
|
||||||
|
|
||||||
|
@ -82,3 +84,26 @@ let g:pandoc#modules#disabled = ["folding"]
|
||||||
let g:pandoc#spell#enabled = 0
|
let g:pandoc#spell#enabled = 0
|
||||||
let g:pandoc#syntax#conceal#use = 0
|
let g:pandoc#syntax#conceal#use = 0
|
||||||
|
|
||||||
|
""" LanguageClient-neovim """
|
||||||
|
|
||||||
|
let g:LanguageClient_serverCommands = {
|
||||||
|
\ 'python': ['pyls'],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
function LC_maps()
|
||||||
|
if has_key(g:LanguageClient_serverCommands, &filetype)
|
||||||
|
nnoremap <buffer> <silent> K :call LanguageClient#textDocument_hover()<cr>
|
||||||
|
nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_definition()<CR>
|
||||||
|
nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_references()<CR>
|
||||||
|
nnoremap <buffer> <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
|
||||||
|
nnoremap <buffer> <silent> <F3> :call LanguageClient#textDocument_formatting()<CR>
|
||||||
|
set completefunc=LanguageClient#complete
|
||||||
|
set omnifunc=LanguageClient#complete
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
autocmd FileType * call LC_maps()
|
||||||
|
|
||||||
|
""" deoplete """
|
||||||
|
|
||||||
|
let g:deoplete#enable_at_startup = 1
|
|
@ -34,15 +34,24 @@ Plug 'tomtom/tcomment_vim'
|
||||||
" Plug 'tomlion/vim-solidity'
|
" Plug 'tomlion/vim-solidity'
|
||||||
" Plug 'godlygeek/tabular'
|
" Plug 'godlygeek/tabular'
|
||||||
" Plug 'jrozner/vim-antlr'
|
" Plug 'jrozner/vim-antlr'
|
||||||
|
|
||||||
|
" When in f/F/t/T mode, highlight in red the characters that can be jumped to
|
||||||
|
Plug 'deris/vim-shot-f'
|
||||||
|
|
||||||
|
" Auto-highlight one character per word for quick f/F movement
|
||||||
|
Plug 'unblevable/quick-scope'
|
||||||
|
|
||||||
"
|
"
|
||||||
" Plug 'maralla/completor.vim'
|
" Plug 'maralla/completor.vim'
|
||||||
" if has('nvim')
|
"
|
||||||
" Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
" Auto-completion
|
||||||
" else
|
if has('nvim')
|
||||||
" Plug 'Shougo/deoplete.nvim'
|
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||||
" Plug 'roxma/nvim-yarp'
|
else
|
||||||
" Plug 'roxma/vim-hug-neovim-rpc'
|
Plug 'Shougo/deoplete.nvim'
|
||||||
" endif
|
Plug 'roxma/nvim-yarp'
|
||||||
|
Plug 'roxma/vim-hug-neovim-rpc'
|
||||||
|
endif
|
||||||
" Plug 'zchee/deoplete-jedi'
|
" Plug 'zchee/deoplete-jedi'
|
||||||
|
|
||||||
" Plug 'python-mode/python-mode', { 'branch': 'develop' }
|
" Plug 'python-mode/python-mode', { 'branch': 'develop' }
|
||||||
|
@ -54,7 +63,16 @@ Plug 'terryma/vim-smooth-scroll'
|
||||||
Plug 'vim-pandoc/vim-pandoc'
|
Plug 'vim-pandoc/vim-pandoc'
|
||||||
Plug 'vim-pandoc/vim-pandoc-syntax'
|
Plug 'vim-pandoc/vim-pandoc-syntax'
|
||||||
Plug 'idanarye/vim-vebugger'
|
Plug 'idanarye/vim-vebugger'
|
||||||
Plug 'w0rp/ale'
|
|
||||||
|
" Language Server Procotol client
|
||||||
|
Plug 'autozimu/LanguageClient-neovim', {
|
||||||
|
\ 'branch': 'next',
|
||||||
|
\ 'do': 'bash install.sh',
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Automatically closes brackets, quotes and parentheses
|
||||||
|
Plug 'jiangmiao/auto-pairs'
|
||||||
|
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
|
|
@ -40,6 +40,7 @@ set splitbelow
|
||||||
|
|
||||||
" Turn off relativenumber only for insert mode.
|
" Turn off relativenumber only for insert mode.
|
||||||
if has('nvim')
|
if has('nvim')
|
||||||
|
set relativenumber
|
||||||
augroup every
|
augroup every
|
||||||
autocmd!
|
autocmd!
|
||||||
au InsertEnter * set norelativenumber
|
au InsertEnter * set norelativenumber
|
|
@ -7,7 +7,7 @@ filetype on
|
||||||
set runtimepath+=~/.config/vim,~/.cache/vim
|
set runtimepath+=~/.config/vim,~/.cache/vim
|
||||||
set viminfo+=n~/.cache/vim/viminfo
|
set viminfo+=n~/.cache/vim/viminfo
|
||||||
|
|
||||||
source ~/.config/vim/plugins
|
source ~/.config/vim/pluginlist.vim
|
||||||
source ~/.config/vim/pluginconfig
|
source ~/.config/vim/pluginconfig.vim
|
||||||
source ~/.config/vim/vimconfig
|
source ~/.config/vim/vimconfig.vim
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue