diff --git a/README.md b/README.md index 0f7290d..4070faa 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@

dotfiles

+[](screen.png) +-------------- + ### System configuration - `OS` Arch - `WM` bspwm diff --git a/config/bspwm/screen.png b/config/bspwm/screen.png new file mode 100644 index 0000000..e2123ea Binary files /dev/null and b/config/bspwm/screen.png differ diff --git a/config/nvim/README.md b/config/nvim/README.md index 2787147..840c553 100644 --- a/config/nvim/README.md +++ b/config/nvim/README.md @@ -5,20 +5,20 @@ yay -S neovim-nightly-bin ``` -## Install plugin manager(`vim-plug`) +## Install plugin manager(`packer`) ```bash -sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ - https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' +git clone https://github.com/wbthomason/packer.nvim\ + ~/.local/share/nvim/site/pack/packer/start/packer.nvim ``` ## Install LSP servers ```bash -# tsserver(JS/TS) -npm i -g typescript typescript-language-server - # Go(gopls) go get golang.org/x/tools/gopls@latest # Python(pyls) pip install python-language-server + +# JS/TS +nvim +"LspInstall typescript" ``` diff --git a/config/nvim/init.vim b/config/nvim/init.vim index 1eaa3d0..40ac329 100644 --- a/config/nvim/init.vim +++ b/config/nvim/init.vim @@ -1,33 +1,55 @@ - call plug#begin('~/.vim/plugged') - Plug 'Smirnov-O/nten.vim' +call plug#begin('~/.vim/plugged') Plug 'b3nj5m1n/kommentary' - " Plug 'mattn/emmet-vim', {'on': 'EmmetInstall'} Plug 'nvim-lua/plenary.nvim' - Plug 'nvim-lua/popup.nvim' - " Plug 'editorconfig/editorconfig-vim' - Plug 'norcalli/nvim-colorizer.lua' - Plug 'kyazdani42/nvim-web-devicons' - " Status line && Tab line + Plug 'kyazdani42/nvim-tree.lua', {'on': 'NvimTreeToggle'} + Plug 'junegunn/fzf.vim', {'on': ['Files', 'GFiles']} + " Appereance + Plug 'Smirnov-O/nten.vim' Plug 'hoob3rt/lualine.nvim' Plug 'romgrk/barbar.nvim' - " LSP && Completion + " LSP Plug 'neovim/nvim-lspconfig' + Plug 'kabouzeid/nvim-lspinstall' Plug 'hrsh7th/nvim-compe' Plug 'jiangmiao/auto-pairs' " Git Plug 'TimUntersberger/neogit' Plug 'lewis6991/gitsigns.nvim' - " File explorer - Plug 'kyazdani42/nvim-tree.lua' - Plug 'nvim-telescope/telescope.nvim' - " Better syntax hl + " Syntax Plug 'sheerun/vim-polyglot' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} + + " Plug 'mattn/emmet-vim', {'on': 'EmmetInstall'} + " Plug 'norcalli/nvim-colorizer.lua' call plug#end() colo codedark let mapleader=";" -set termguicolors + +"== Config +set termguicolors " GUI colors +set nu rnu nocul " Line numbers & cursor line highlight +set nolbr nowrap " Line wrap +set mouse=a mh " Mouse +set history=500 " Set history size +set autoread " Auto read file on change +set hidden " Change buffet without warning +set visualbell t_vb= " Disable sounds +set pumheight=8 " Maximum items in pop up +set modeline " Enable modeline +set nosmd " Disable show mode +set nobk noswf noudf " Swap files +set is ic scs " Search +set spr " Split +set enc=utf-8 fenc=utf-8 " Encoding +set scrolloff=3 " Scroll padding +set list listchars=tab:\|·,trail:~,space:· +set completeopt=menuone,noselect + +"== Netrw file tree +let g:netrw_liststyle = 3 +let g:netrw_banner = 0 +let g:netrw_dirhistmax = 0 "== Tab(or spaces) set ts=4 sw=4 sts=4 @@ -36,14 +58,20 @@ set sta et ai "== Custom commands com! Prettier :sil !prettier -w % com! Term :vs|winc L|se nonu nornu|start|term -com! Notes :Files ~/notes com! GoFmt :sil !gofmt -w % +com! Black :sil !black % -"== Configs -luafile $HOME/.config/nvim/lua/plugins.lua -source $HOME/.config/nvim/vimscript/config.vim -source $HOME/.config/nvim/vimscript/barbar.vim -source $HOME/.config/nvim/vimscript/emmet.vim -source $HOME/.config/nvim/vimscript/compe.vim -source $HOME/.config/nvim/vimscript/filetypes.vim -source $HOME/.config/nvim/vimscript/mappings.vim +"== Emmet +" let g:user_emmet_mode = 'i' +" let g:user_emmet_expandabbr_key ='' +" au FileType html,jst,pug,vue,css,less,scss :EmmetInstall + +"== Filetypes +au FileType go setl noet +au FileType javascript,yaml,json setl et ts=2 sw=2 sts=4 +au FileType python setl et ts=4 sw=4 sts=4 ai + +"== Config's +lua require'config' +so $HOME/.config/nvim/vimscript/barbar.vim +so $HOME/.config/nvim/vimscript/mappings.vim diff --git a/config/nvim/lua/config.lua b/config/nvim/lua/config.lua new file mode 100644 index 0000000..fe85ee1 --- /dev/null +++ b/config/nvim/lua/config.lua @@ -0,0 +1,41 @@ +-- LSP servers +require'lspinstall'.setup {} +require'lspconfig'.gopls.setup {} -- Go +require'lspconfig'.pyls.setup {} -- Python +require'lspconfig'.lua.setup {} -- Lua +require'tsserver' -- JS/TS +require'efm' -- Linter's + +-- Compe +require'compe'.setup { + enabled = true, + autocomplete = true, + source = { + -- path = true, + buffer = true, + nvim_lsp = true, + }; +} + +-- LuaLine +require'lualine'.setup {options={ + theme = "codedark" +}} + +-- GitSigns +require'plug.gitsigns' + +-- NeoGit +require'neogit'.setup {} + +-- NvimTree +require'plug.nvimtree' + +-- TreeSitter +require'nvim-treesitter.configs'.setup { + ensure_installed = {'javascript', 'typescript', 'jsdoc', 'python', 'go'}; + highlight = {enable=true}; +} + +-- Colorizer +-- require'plug.colorizer' diff --git a/config/nvim/lua/efm.lua b/config/nvim/lua/efm.lua new file mode 100644 index 0000000..d09a7b0 --- /dev/null +++ b/config/nvim/lua/efm.lua @@ -0,0 +1,45 @@ +-- Python +local black = { + formatCommand = "black ${filename}", formatStdin = true +} +local flake8 = { + lintCommand = "flake8 --ignore=E501 --stdin-display-name ${INPUT} -", + lintStdin = true, + lintFormats = {"%f:%l:%c: %m"} +} + +-- Javascript +local prettier = { + formatCommand = "prettier --stdin-filepath ${INPUT}", formatStdin = true +} +local eslint = { + lintCommand = "./node_modules/.bin/eslint -f unix --stdin --stdin-filename ${INPUT}", + lintIgnoreExitCode = true, + lintStdin = true, + lintFormats = {"%f:%l:%c: %m"}, + formatCommand = "./node_modules/.bin/eslint --fix-to-stdout --stdin --stdin-filename=${INPUT}", + formatStdin = true +} + +-- GoLang +local golint = { + lintCommand = "golint", + lintIgnoreExitCode = true, + lintFormats = {"%f:%l:%c: %m"}, + lintSource = "golint" +} + +-- Setup +require"lspconfig".efm.setup { + init_options = {documentFormatting = true, codeAction = false}, + filetypes = {"python", "javascript", "typescript", "go"}, + settings = { + rootMarkers = {".git/"}, + languages = { + python = {flake8, black}, + javascript = {eslint, prettier}, + typescript = {eslint, prettier}, + go = {golint} + } + } +} diff --git a/config/nvim/lua/plug/compe.lua b/config/nvim/lua/plug/compe.lua deleted file mode 100644 index 5a5228b..0000000 --- a/config/nvim/lua/plug/compe.lua +++ /dev/null @@ -1,9 +0,0 @@ -require'compe'.setup { - enabled = true, - autocomplete = true, - source = { - path = true, - buffer = true, - nvim_lsp = true, - }; -} diff --git a/config/nvim/lua/plug/lspconfig.lua b/config/nvim/lua/plug/lspconfig.lua deleted file mode 100644 index b5c7838..0000000 --- a/config/nvim/lua/plug/lspconfig.lua +++ /dev/null @@ -1,3 +0,0 @@ -require'lspconfig'.tsserver.setup {} -require'lspconfig'.gopls.setup {} -require'lspconfig'.pyls.setup {} diff --git a/config/nvim/lua/plug/lualine.lua b/config/nvim/lua/plug/lualine.lua deleted file mode 100644 index 8158a34..0000000 --- a/config/nvim/lua/plug/lualine.lua +++ /dev/null @@ -1,5 +0,0 @@ -require'lualine'.setup { - options = { - theme = "codedark" - }; -} diff --git a/config/nvim/lua/plug/neogit.lua b/config/nvim/lua/plug/neogit.lua deleted file mode 100644 index f851d2d..0000000 --- a/config/nvim/lua/plug/neogit.lua +++ /dev/null @@ -1 +0,0 @@ -require'neogit'.setup {} diff --git a/config/nvim/lua/plug/telescope.lua b/config/nvim/lua/plug/telescope.lua deleted file mode 100644 index 60c382b..0000000 --- a/config/nvim/lua/plug/telescope.lua +++ /dev/null @@ -1,13 +0,0 @@ -local actions = require('telescope.actions') - -require('telescope').setup{ - defaults = { - prompt_prefix = "Search > ", - selection_caret = " ", - entry_prefix = " ", - file_ignore_patterns = {"node_modules", "env", ".cache"}, - mappings = { - i = {[""] = actions.close} - }; - }; -} diff --git a/config/nvim/lua/plug/treesitter.lua b/config/nvim/lua/plug/treesitter.lua deleted file mode 100644 index b3ac070..0000000 --- a/config/nvim/lua/plug/treesitter.lua +++ /dev/null @@ -1,5 +0,0 @@ -require'nvim-treesitter.configs'.setup { - ensure_installed = {'javascript', 'typescript', 'python', 'go'}; - highlight = { enable = true }; - indent = { enable = true }; -} diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua deleted file mode 100644 index 4461e4f..0000000 --- a/config/nvim/lua/plugins.lua +++ /dev/null @@ -1,9 +0,0 @@ -require'plug.compe' -require'plug.lspconfig' -require'plug.nvimtree' -require'plug.lualine' -require'plug.gitsigns' -require'plug.neogit' -require'plug.treesitter' -require'plug.telescope' -require'plug.colorizer' diff --git a/config/nvim/vimscript/barbar.vim b/config/nvim/vimscript/barbar.vim index 46cb730..88a4be8 100644 --- a/config/nvim/vimscript/barbar.vim +++ b/config/nvim/vimscript/barbar.vim @@ -1,6 +1,7 @@ " Settings let bufferline = get(g:, 'bufferline', {}) let bufferline.icon_close_tab = '🗴' +let bufferline.icons = v:false " Mappings nno :BufferGoto 1 diff --git a/config/nvim/vimscript/compe.vim b/config/nvim/vimscript/compe.vim deleted file mode 100644 index 4ff4da2..0000000 --- a/config/nvim/vimscript/compe.vim +++ /dev/null @@ -1,11 +0,0 @@ -" Settings -set completeopt=menuone,noselect - -" Mappings -ino pumvisible() ? "\" : "\" -ino pumvisible() ? "\" : "\" -ino compe#confirm('') -nno sr :lua vim.lsp.buf.rename() -nno sh :lua vim.lsp.buf.hover() -nno si :lua vim.lsp.buf.definition() -nno sa :lua vim.lsp.buf.code_action() diff --git a/config/nvim/vimscript/config.vim b/config/nvim/vimscript/config.vim deleted file mode 100644 index 498c21d..0000000 --- a/config/nvim/vimscript/config.vim +++ /dev/null @@ -1,23 +0,0 @@ -"== Vim config -set termguicolors " GUI colors -set nu rnu nocul " Line numbers & cursor line highlight -set nolbr nowrap " Line wrap -set mouse=a mh " Mouse -set history=500 " Set history size -set autoread " Auto read file on change -set hidden " Change buffet without warning -set visualbell t_vb= " Disable sounds -set pumheight=8 " Maximum items in pop up -set modeline " Enable modeline -set nosmd " Disable show mode -set nobk noswf noudf " Swap files -set is ic scs " Search -set spr " Split -set enc=utf-8 fenc=utf-8 " Encoding -set scrolloff=3 -set list listchars=tab:\|·,trail:~,space:· - -"== Netrw file tree -let g:netrw_liststyle = 3 -let g:netrw_banner = 0 -let g:netrw_dirhistmax = 0 diff --git a/config/nvim/vimscript/emmet.vim b/config/nvim/vimscript/emmet.vim deleted file mode 100644 index c0cd434..0000000 --- a/config/nvim/vimscript/emmet.vim +++ /dev/null @@ -1,9 +0,0 @@ -"== Config -let g:user_emmet_mode = "i" -let g:user_emmet_expandabbr_key ='' -let g:user_emmet_leader = "," -let g:user_emmet_settings = { -\ 'javascript': {'extends': 'jsx'}} - -"== Load -au FileType html,jst,pug,vue,css,less,scss :EmmetInstall diff --git a/config/nvim/vimscript/filetypes.vim b/config/nvim/vimscript/filetypes.vim deleted file mode 100644 index 84c0df0..0000000 --- a/config/nvim/vimscript/filetypes.vim +++ /dev/null @@ -1,3 +0,0 @@ -au FileType python,elm setl sw=4 ts=4 sts=2 -au FileType go setl noet sw=4 ts=4 sts=2 -au FileType javascript,html,jst,pug,css,less,scss,json,yaml,lua,vim setl sw=2 ts=2 sts=2 diff --git a/config/nvim/vimscript/mappings.vim b/config/nvim/vimscript/mappings.vim index fa7815f..b922443 100644 --- a/config/nvim/vimscript/mappings.vim +++ b/config/nvim/vimscript/mappings.vim @@ -1,15 +1,28 @@ nno :w +nno :GFiles nno :noh nno t :Term nno e :NvimTreeToggle -nno ; :Telescope fd -nno : :Telescope git_files -nno g :Neogit +nno ; :Files +nno d :Neogit " Buffer nno j :bn nno k :bp +" Compe +ino pumvisible() ? "\" : "\" +ino pumvisible() ? "\" : "\" +ino compe#confirm('') +ino compe#complete() +nno sr :lua vim.lsp.buf.rename() +nno sh :lua vim.lsp.buf.hover() +nno sd :lua vim.lsp.buf.definition() +nno sa :lua vim.lsp.buf.code_action() +nno si :lua vim.lsp.buf.implementation() +nno sf :lua vim.lsp.buf.formatting() +nno sR :lua vim.lsp.buf.references() + " Split nno :winc h nno :winc j diff --git a/vscode/settings.json b/vscode/settings.json index 58b1e0c..5839cbc 100644 --- a/vscode/settings.json +++ b/vscode/settings.json @@ -46,9 +46,10 @@ "**/node_modules": true }, - "emmet.includeLanguages": {"javascript": "javascriptreact"}, + "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", + "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.tabSize": 2, + "editor.tabSize": 2 } } diff --git a/zshrc b/zshrc index ff05090..5db1783 100644 --- a/zshrc +++ b/zshrc @@ -6,15 +6,14 @@ export GOPATH="$HOME/go" export PATH="$HOME/bin:$HOME/.local/bin:$HOME/.golang/bin:$GOPATH/bin:$PATH" export EDITOR="nvim" +## FzF +export FZF_DEFAULT_COMMAND="fd -t f -t l -E node_modules -E env -E __pycache__" + ## Oh my zsh plugins=(dotenv) ZSH_THEME="simple" source "$HOME/.oh-my-zsh/oh-my-zsh.sh" -## HotKets -bindkey -s "^o" "ranger\n" -bindkey -s "^g" "lazygit\n" - ## FNM eval $(fnm env)