diff --git a/.config/nvim/ftplugin/dockerfile.lua b/.config/nvim/ftplugin/dockerfile.lua new file mode 100644 index 0000000..ebc6690 --- /dev/null +++ b/.config/nvim/ftplugin/dockerfile.lua @@ -0,0 +1,8 @@ +-- packages +require'lspconfig'.dockerls.setup {} + +-- variables +vim.o.shiftwidth = 2 +vim.o.tabstop = 2 + +-- keybindings diff --git a/.config/nvim/ftplugin/dockerfile.vim b/.config/nvim/ftplugin/dockerfile.vim deleted file mode 100644 index 091d981..0000000 --- a/.config/nvim/ftplugin/dockerfile.vim +++ /dev/null @@ -1,6 +0,0 @@ -" variables -setlocal shiftwidth=2 -setlocal tabstop=2 - -" packages -lua require'lspconfig'.dockerls.setup{} diff --git a/.config/nvim/ftplugin/html.lua b/.config/nvim/ftplugin/html.lua new file mode 100644 index 0000000..27064ad --- /dev/null +++ b/.config/nvim/ftplugin/html.lua @@ -0,0 +1,7 @@ +-- packages + +-- variables +vim.o.shiftwidth = 2 +vim.o.tabstop = 2 + +-- keybindings diff --git a/.config/nvim/ftplugin/html.vim b/.config/nvim/ftplugin/html.vim deleted file mode 100644 index ce69247..0000000 --- a/.config/nvim/ftplugin/html.vim +++ /dev/null @@ -1,3 +0,0 @@ -" variables -setlocal shiftwidth=2 -setlocal tabstop=2 diff --git a/.config/nvim/ftplugin/python.lua b/.config/nvim/ftplugin/python.lua new file mode 100644 index 0000000..303b8fa --- /dev/null +++ b/.config/nvim/ftplugin/python.lua @@ -0,0 +1,8 @@ +-- packages +require'lspconfig'.pyright.setup {} + +-- variables +vim.cmd("let g:black_linelength=79") + +-- keybindings +vim.keymap.set("n", "", ":Black") diff --git a/.config/nvim/ftplugin/python.vim b/.config/nvim/ftplugin/python.vim deleted file mode 100644 index b186f8a..0000000 --- a/.config/nvim/ftplugin/python.vim +++ /dev/null @@ -1,8 +0,0 @@ -" variables -let g:black_linelength=79 - -" packages -lua require'lspconfig'.pyright.setup{} - -" keybindings -nnoremap :Black diff --git a/.config/nvim/ftplugin/sh.lua b/.config/nvim/ftplugin/sh.lua new file mode 100644 index 0000000..bd8f24a --- /dev/null +++ b/.config/nvim/ftplugin/sh.lua @@ -0,0 +1,6 @@ +-- packages +require'lspconfig'.bashls.setup{} + +-- variables + +-- keybindings diff --git a/.config/nvim/ftplugin/sh.vim b/.config/nvim/ftplugin/sh.vim deleted file mode 100644 index 3253f31..0000000 --- a/.config/nvim/ftplugin/sh.vim +++ /dev/null @@ -1,2 +0,0 @@ -" packages -lua require'lspconfig'.bashls.setup{} diff --git a/.config/nvim/ftplugin/yaml.lua b/.config/nvim/ftplugin/yaml.lua new file mode 100644 index 0000000..2e79624 --- /dev/null +++ b/.config/nvim/ftplugin/yaml.lua @@ -0,0 +1,8 @@ +-- packages +require'yamlls'.dockerls.setup {} + +-- variables +vim.o.shiftwidth = 2 +vim.o.tabstop = 2 + +-- keybindings diff --git a/.config/nvim/ftplugin/yaml.vim b/.config/nvim/ftplugin/yaml.vim deleted file mode 100644 index 9eb9d4a..0000000 --- a/.config/nvim/ftplugin/yaml.vim +++ /dev/null @@ -1,8 +0,0 @@ -" variables -setlocal shiftwidth=2 -setlocal tabstop=2 - -" packages -lua require'lspconfig'.yamlls.setup{} - -" keybindings diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..3639483 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,45 @@ +-- packages +vim.cmd("packadd nvim-treesitter") +require'nvim-treesitter.configs'.setup { + highlight = {enable = true}, +} + +vim.cmd("packadd black") + +vim.cmd("packadd indent-blankline") +require'indent_blankline'.setup { + show_current_context = true, + show_current_context_start = true, +} + +vim.cmd("packadd nvim-lspconfig") + +-- variables +vim.o.path = vim.o.path .. ",**" +vim.o.expandtab = true +vim.o.smartindent = true +vim.o.shiftwidth = 4 +vim.o.tabstop = 4 +vim.o.number = true +vim.o.relativenumber = true +vim.o.ignorecase = true +vim.o.smartcase = true +vim.o.list = true +vim.o.mouse = "a" +vim.o.suffixes = vim.o.suffixes .. ",.pyc" +vim.o.foldmethod = "indent" +vim.o.foldlevel = 99 +vim.o.grepprg = "grep -rn $*" +vim.wo.cc = "80" + +-- keybindings +vim.keymap.set("t", "", "") + +vim.keymap.set("n", "", "h" ) +vim.keymap.set("n", "", "j" ) +vim.keymap.set("n", "", "k" ) +vim.keymap.set("n", "", "l" ) + +vim.keymap.set("n", "gf", "gF" ) + +vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index 209183e..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,50 +0,0 @@ -" variables -set path+=**, -set expandtab -set smartindent -set shiftwidth=4 -set tabstop=4 -set number relativenumber -set ignorecase -set smartcase -set list -set mouse=a -set cc=80 -set suffixes+=.pyc -set foldmethod=indent -set nofoldenable -set foldlevel=99 -set grepprg=grep\ -rn\ $* - -au BufWrite * :%s/\s\+$//e - -" packages -so ~/.config/nvim/epitech_header.vim - -packadd! nvim-treesitter -lua require'nvim-treesitter.configs'.setup {highlight = {enable = true}} - -packadd! black - -packadd! indent-blankline -lua << EOF -require'indent_blankline'.setup { - show_current_context = true, - show_current_context_start = true, -} -EOF - -packadd! nvim-lspconfig - -" keybindings -nnoremap :Header -tnoremap - -nnoremap h -nnoremap j -nnoremap k -nnoremap l - -nnoremap gf gF - -lua vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) diff --git a/.config/nvim/pack/plugins/opt/black b/.config/nvim/pack/plugins/opt/black new file mode 160000 index 0000000..507234c --- /dev/null +++ b/.config/nvim/pack/plugins/opt/black @@ -0,0 +1 @@ +Subproject commit 507234c47d39f5b1d8289cdd49994e03dd97bcb4 diff --git a/.config/nvim/pack/plugins/opt/black/autoload/black.vim b/.config/nvim/pack/plugins/opt/black/autoload/black.vim deleted file mode 100644 index 66c5b9c..0000000 --- a/.config/nvim/pack/plugins/opt/black/autoload/black.vim +++ /dev/null @@ -1,223 +0,0 @@ -python3 << EndPython3 -import collections -import os -import sys -import vim - -def strtobool(text): - if text.lower() in ['y', 'yes', 't', 'true' 'on', '1']: - return True - if text.lower() in ['n', 'no', 'f', 'false' 'off', '0']: - return False - raise ValueError(f"{text} is not convertable to boolean") - -class Flag(collections.namedtuple("FlagBase", "name, cast")): - @property - def var_name(self): - return self.name.replace("-", "_") - - @property - def vim_rc_name(self): - name = self.var_name - if name == "line_length": - name = name.replace("_", "") - return "g:black_" + name - - -FLAGS = [ - Flag(name="line_length", cast=int), - Flag(name="fast", cast=strtobool), - Flag(name="skip_string_normalization", cast=strtobool), - Flag(name="quiet", cast=strtobool), - Flag(name="skip_magic_trailing_comma", cast=strtobool), -] - - -def _get_python_binary(exec_prefix): - try: - default = vim.eval("g:pymode_python").strip() - except vim.error: - default = "" - if default and os.path.exists(default): - return default - if sys.platform[:3] == "win": - return exec_prefix / 'python.exe' - return exec_prefix / 'bin' / 'python3' - -def _get_pip(venv_path): - if sys.platform[:3] == "win": - return venv_path / 'Scripts' / 'pip.exe' - return venv_path / 'bin' / 'pip' - -def _get_virtualenv_site_packages(venv_path, pyver): - if sys.platform[:3] == "win": - return venv_path / 'Lib' / 'site-packages' - return venv_path / 'lib' / f'python{pyver[0]}.{pyver[1]}' / 'site-packages' - -def _initialize_black_env(upgrade=False): - pyver = sys.version_info[:3] - if pyver < (3, 6, 2): - print("Sorry, Black requires Python 3.6.2+ to run.") - return False - - from pathlib import Path - import subprocess - import venv - virtualenv_path = Path(vim.eval("g:black_virtualenv")).expanduser() - virtualenv_site_packages = str(_get_virtualenv_site_packages(virtualenv_path, pyver)) - first_install = False - if not virtualenv_path.is_dir(): - print('Please wait, one time setup for Black.') - _executable = sys.executable - _base_executable = getattr(sys, "_base_executable", _executable) - try: - executable = str(_get_python_binary(Path(sys.exec_prefix))) - sys.executable = executable - sys._base_executable = executable - print(f'Creating a virtualenv in {virtualenv_path}...') - print('(this path can be customized in .vimrc by setting g:black_virtualenv)') - venv.create(virtualenv_path, with_pip=True) - except Exception: - print('Encountered exception while creating virtualenv (see traceback below).') - print(f'Removing {virtualenv_path}...') - import shutil - shutil.rmtree(virtualenv_path) - raise - finally: - sys.executable = _executable - sys._base_executable = _base_executable - first_install = True - if first_install: - print('Installing Black with pip...') - if upgrade: - print('Upgrading Black with pip...') - if first_install or upgrade: - subprocess.run([str(_get_pip(virtualenv_path)), 'install', '-U', 'black'], stdout=subprocess.PIPE) - print('DONE! You are all set, thanks for waiting ✨ 🍰 ✨') - if first_install: - print('Pro-tip: to upgrade Black in the future, use the :BlackUpgrade command and restart Vim.\n') - if virtualenv_site_packages not in sys.path: - sys.path.insert(0, virtualenv_site_packages) - return True - -if _initialize_black_env(): - import black - import time - -def get_target_version(tv): - if isinstance(tv, black.TargetVersion): - return tv - ret = None - try: - ret = black.TargetVersion[tv.upper()] - except KeyError: - print(f"WARNING: Target version {tv!r} not recognized by Black, using default target") - return ret - -def Black(**kwargs): - """ - kwargs allows you to override ``target_versions`` argument of - ``black.FileMode``. - - ``target_version`` needs to be cleaned because ``black.FileMode`` - expects the ``target_versions`` argument to be a set of TargetVersion enums. - - Allow kwargs["target_version"] to be a string to allow - to type it more quickly. - - Using also target_version instead of target_versions to remain - consistent to Black's documentation of the structure of pyproject.toml. - """ - start = time.time() - configs = get_configs() - - black_kwargs = {} - if "target_version" in kwargs: - target_version = kwargs["target_version"] - - if not isinstance(target_version, (list, set)): - target_version = [target_version] - target_version = set(filter(lambda x: x, map(lambda tv: get_target_version(tv), target_version))) - black_kwargs["target_versions"] = target_version - - mode = black.FileMode( - line_length=configs["line_length"], - string_normalization=not configs["skip_string_normalization"], - is_pyi=vim.current.buffer.name.endswith('.pyi'), - magic_trailing_comma=not configs["skip_magic_trailing_comma"], - **black_kwargs, - ) - quiet = configs["quiet"] - - buffer_str = '\n'.join(vim.current.buffer) + '\n' - try: - new_buffer_str = black.format_file_contents( - buffer_str, - fast=configs["fast"], - mode=mode, - ) - except black.NothingChanged: - if not quiet: - print(f'Already well formatted, good job. (took {time.time() - start:.4f}s)') - except Exception as exc: - print(exc) - else: - current_buffer = vim.current.window.buffer - cursors = [] - for i, tabpage in enumerate(vim.tabpages): - if tabpage.valid: - for j, window in enumerate(tabpage.windows): - if window.valid and window.buffer == current_buffer: - cursors.append((i, j, window.cursor)) - vim.current.buffer[:] = new_buffer_str.split('\n')[:-1] - for i, j, cursor in cursors: - window = vim.tabpages[i].windows[j] - try: - window.cursor = cursor - except vim.error: - window.cursor = (len(window.buffer), 0) - if not quiet: - print(f'Reformatted in {time.time() - start:.4f}s.') - -def get_configs(): - filename = vim.eval("@%") - path_pyproject_toml = black.find_pyproject_toml((filename,)) - if path_pyproject_toml: - toml_config = black.parse_pyproject_toml(path_pyproject_toml) - else: - toml_config = {} - - return { - flag.var_name: toml_config.get(flag.name, flag.cast(vim.eval(flag.vim_rc_name))) - for flag in FLAGS - } - - -def BlackUpgrade(): - _initialize_black_env(upgrade=True) - -def BlackVersion(): - print(f'Black, version {black.__version__} on Python {sys.version}.') - -EndPython3 - -function black#Black(...) - let kwargs = {} - for arg in a:000 - let arg_list = split(arg, '=') - let kwargs[arg_list[0]] = arg_list[1] - endfor -python3 << EOF -import vim -kwargs = vim.eval("kwargs") -EOF - :py3 Black(**kwargs) -endfunction - -function black#BlackUpgrade() - :py3 BlackUpgrade() -endfunction - -function black#BlackVersion() - :py3 BlackVersion() -endfunction diff --git a/.config/nvim/pack/plugins/opt/black/plugin/black.vim b/.config/nvim/pack/plugins/opt/black/plugin/black.vim deleted file mode 100644 index 3fc11fe..0000000 --- a/.config/nvim/pack/plugins/opt/black/plugin/black.vim +++ /dev/null @@ -1,80 +0,0 @@ -" black.vim -" Author: Łukasz Langa -" Created: Mon Mar 26 23:27:53 2018 -0700 -" Requires: Vim Ver7.0+ -" Version: 1.2 -" -" Documentation: -" This plugin formats Python files. -" -" History: -" 1.0: -" - initial version -" 1.1: -" - restore cursor/window position after formatting -" 1.2: -" - use autoload script - -if exists("g:load_black") - finish -endif - -if v:version < 700 || !has('python3') - func! __BLACK_MISSING() - echo "The black.vim plugin requires vim7.0+ with Python 3.6 support." - endfunc - command! Black :call __BLACK_MISSING() - command! BlackUpgrade :call __BLACK_MISSING() - command! BlackVersion :call __BLACK_MISSING() - finish -endif - -let g:load_black = "py1.0" -if !exists("g:black_virtualenv") - if has("nvim") - let g:black_virtualenv = "~/.local/share/nvim/black" - else - let g:black_virtualenv = "~/.vim/black" - endif -endif -if !exists("g:black_fast") - let g:black_fast = 0 -endif -if !exists("g:black_linelength") - let g:black_linelength = 88 -endif -if !exists("g:black_skip_string_normalization") - if exists("g:black_string_normalization") - let g:black_skip_string_normalization = !g:black_string_normalization - else - let g:black_skip_string_normalization = 0 - endif -endif -if !exists("g:black_skip_magic_trailing_comma") - if exists("g:black_magic_trailing_comma") - let g:black_skip_magic_trailing_comma = !g:black_magic_trailing_comma - else - let g:black_skip_magic_trailing_comma = 0 - endif -endif -if !exists("g:black_quiet") - let g:black_quiet = 0 -endif -if !exists("g:black_target_version") - let g:black_target_version = "" -endif - -function BlackComplete(ArgLead, CmdLine, CursorPos) - return [ -\ 'target_version=py27', -\ 'target_version=py36', -\ 'target_version=py37', -\ 'target_version=py38', -\ 'target_version=py39', -\ 'target_version=py310', -\ ] -endfunction - -command! -nargs=* -complete=customlist,BlackComplete Black :call black#Black() -command! BlackUpgrade :call black#BlackUpgrade() -command! BlackVersion :call black#BlackVersion() diff --git a/.config/nvim/pack/plugins/opt/nvim-lspconfig b/.config/nvim/pack/plugins/opt/nvim-lspconfig index a78831f..da7461b 160000 --- a/.config/nvim/pack/plugins/opt/nvim-lspconfig +++ b/.config/nvim/pack/plugins/opt/nvim-lspconfig @@ -1 +1 @@ -Subproject commit a78831f97564b4344953ce1ba0f53fc5d034472d +Subproject commit da7461b596d70fa47b50bf3a7acfaef94c47727d diff --git a/.config/nvim/pack/plugins/opt/nvim-treesitter b/.config/nvim/pack/plugins/opt/nvim-treesitter index 7e41005..e7b5e92 160000 --- a/.config/nvim/pack/plugins/opt/nvim-treesitter +++ b/.config/nvim/pack/plugins/opt/nvim-treesitter @@ -1 +1 @@ -Subproject commit 7e410054235ea84c817fc2b93f8df359ba6545eb +Subproject commit e7b5e92d46355919e96e78f596bd5297c9ef77dd diff --git a/.gitmodules b/.gitmodules index 352cd9c..af2acdf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule ".pyenv"] path = .pyenv url = https://github.com/pyenv/pyenv.git +[submodule ".config/nvim/pack/plugins/opt/black"] + path = .config/nvim/pack/plugins/opt/black + url = https://github.com/psf/black.git