From: Pass Automated Testing Suite Date: Wed, 20 Oct 2021 21:11:58 +0000 (+0200) Subject: chore: add fzf-tab and removed plugins X-Git-Url: https://git.beaudet.xyz/?a=commitdiff_plain;h=05880bb36c9d50b93bbf45ff2064f47706ec2c4f;p=dot.git chore: add fzf-tab and removed plugins --- diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index a725335..3fd231f 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -21,26 +21,27 @@ require('packer').startup( function() use 'tpope/vim-rhubarb' -- Fugitive-companion to interact with github use 'tpope/vim-commentary' -- "gc" to comment visual regions/lines use 'tpope/vim-surround' -- "gc" to comment visual regions/lines + use 'tpope/vim-obsession' use 'ludovicchabant/vim-gutentags' -- Automatic tags management use 'tpope/vim-sleuth' use 'tpope/vim-dispatch' + -- UI to select things (files, grep results, open buffers...) - use { - 'nvim-telescope/telescope.nvim', - requires = { - {'nvim-lua/popup.nvim'}, - {'nvim-lua/plenary.nvim'} - } + use { 'nvim-telescope/telescope.nvim', requires = { 'nvim-lua/plenary.nvim' } } + use { + 'nvim-telescope/telescope-fzf-native.nvim', + run = 'make', + requires = { 'nvim-telescope/telescope.nvim' } } use 'itchyny/lightline.vim' -- Fancier statusline + use 'shaunsingh/nord.nvim' + -- Add git related info in the signs columns and popups use {'lewis6991/gitsigns.nvim', requires = {'nvim-lua/plenary.nvim'} } use {'nvim-treesitter/nvim-treesitter', run = ':TSUpdate'} use 'nvim-treesitter/nvim-treesitter-textobjects' - use 'windwp/nvim-autopairs' - use 'windwp/nvim-ts-autotag' - use 'jiangmiao/auto-pairs' + use 'romgrk/nvim-treesitter-context' use 'neovim/nvim-lspconfig' -- Collection of configurations for built-in LSP client use { 'hrsh7th/nvim-cmp', -- Autocompletion plugin @@ -53,17 +54,14 @@ require('packer').startup( function() {'rafamadriz/friendly-snippets'}, } } + use 'rust-lang/rust.vim' use 'simrat39/rust-tools.nvim' - use 'mfussenegger/nvim-dap' + -- use 'mfussenegger/nvim-dap' end) ---Incremental live completion -vim.o.inccommand = "nosplit" - --Set highlight on search vim.o.hlsearch = false -vim.o.incsearch = true --Make line numbers default vim.wo.number = true @@ -71,14 +69,11 @@ vim.wo.number = true --Do not save when switching buffers vim.o.hidden = true ---Enable mouse mode --- vim.o.mouse = "a" - --Enable break indent vim.o.breakindent = true --Save undo history -vim.cmd[[set undofile]] +vim.opt.undofile = true --Case insensitive searching UNLESS /C or capital in search vim.o.ignorecase = true @@ -88,17 +83,7 @@ vim.o.smartcase = true vim.o.updatetime = 250 vim.wo.signcolumn="yes" ---Set colorscheme (order is important here) --- vim.o.termguicolors = true -vim.cmd[[colorscheme koehler]] - --Set statusbar -vim.g.lightline = { - -- colorscheme = 'koehler'; - active = { left = { { 'mode', 'paste' }, { 'gitbranch', 'readonly', 'filename', 'modified' } } }; - component_function = { gitbranch = 'fugitive#head', }; -} - --Remap space as leader key vim.api.nvim_set_keymap('', '', '', { noremap = true, silent=true}) vim.g.mapleader = " " @@ -108,11 +93,16 @@ vim.g.maplocalleader = " " vim.api.nvim_set_keymap('n', 'k', "v:count == 0 ? 'gk' : 'k'", { noremap=true, expr = true, silent = true}) vim.api.nvim_set_keymap('n', 'j', "v:count == 0 ? 'gj' : 'j'", {noremap= true, expr = true, silent = true}) ---Remap escape to leave terminal mode -vim.api.nvim_set_keymap('t', '', [[]], {noremap = true}) - ---Add map to enter paste mode -vim.o.pastetoggle="" +-- Highlight on yank +vim.api.nvim_exec( + [[ + augroup YankHighlight + autocmd! + autocmd TextYankPost * silent! lua vim.highlight.on_yank() + augroup end + ]], + false +) -- Gitsigns require('gitsigns').setup { @@ -134,10 +124,14 @@ require('telescope').setup { [""] = false, }, }, - generic_sorter = require'telescope.sorters'.get_fzy_sorter, - file_sorter = require'telescope.sorters'.get_fzy_sorter, + -- generic_sorter = require'telescope.sorters'.get_fzf_sorter, + -- file_sorter = require'telescope.sorters'.get_fzf_sorter, } } + +-- Telescope with fzf native +require('telescope').load_extension('fzf') + --Add leader shortcuts vim.api.nvim_set_keymap('n', 'f', [[lua require('telescope.builtin').git_files()]], { noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'F', [[lua require('telescope.builtin').find_files()]], { noremap = true, silent = true}) @@ -156,7 +150,7 @@ vim.api.nvim_set_keymap('n', 'gt', [[lua require('telescope.builtin vim.api.nvim_set_keymap('n', 'gp', [[lua require('telescope.builtin').git_bcommits()]], { noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'ca', [[lua require('telescope.builtin').lsp_code_actions()]], { noremap = true, silent = true}) -vim.api.nvim_set_keymap('s', 'ca', [[lua require('telescope.builtin').lsp_range_code_actions()]], { noremap = true, silent = true}) +vim.api.nvim_set_keymap('v', 'ca', [[lua require('telescope.builtin').lsp_range_code_actions()]], { noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'gr', [[lua require('telescope.builtin').lsp_references()]], { noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'gs', [[lua require('telescope.builtin').lsp_workspace_symbols()]], { noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'gS', [[lua require('telescope.builtin').lsp_document_symbols()]], { noremap = true, silent = true}) @@ -164,86 +158,9 @@ vim.api.nvim_set_keymap('n', 'gd', [[lua require('telescope.builtin vim.api.nvim_set_keymap('n', 'gD', [[lua require('telescope.builtin').lsp_document_diagnostics()]], { noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'gi', [[lua require('telescope.builtin').lsp_definitions()]], { noremap = true, silent = true}) --- Change preview window location -vim.g.splitbelow = true - --- Highlight on yank -vim.api.nvim_exec( - [[ - augroup YankHighlight - autocmd! - autocmd TextYankPost * silent! lua vim.highlight.on_yank() - augroup end - ]], - false -) - --- LSP settings -local nvim_lsp = require('lspconfig') - --- Use an on_attach function to only map the following keys --- after the language server attaches to the current buffer -local on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - - --Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - - -- Mappings. - local opts = { noremap=true, silent=true } - - -- See `:help vim.lsp.*` for documentation on any of the below functions - -- buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) - -- buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) - -- buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) - buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) - buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) - buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) - buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) - buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) - buf_set_keymap('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) - buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) - buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) - buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) - buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) - buf_set_keymap("n", "dc", "Dispatch cargo clippy", opts) - -end - --- nvim-cmp supports additional completion capabilities -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) - - --- Enable the following language servers --- local servers = { 'clangd', 'rust_analyzer', 'bashls', 'pyright', 'tsserver', "cssls", "html" } -local servers = { 'clangd', 'pyright', 'bashls', 'tsserver', "cssls", "html" } -for _, lsp in ipairs(servers) do - nvim_lsp[lsp].setup { - on_attach = on_attach, - capabilities = capabilities, - flags = { - debounce_text_changes = 150, - } - } -end - -local rustopts = { - -- see https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer - server = { - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - }, - }, -} - -require('rust-tools').setup(rustopts) +vim.api.nvim_set_keymap('n', 'r', [[source $MYVIMRC]], { noremap = true, silent = true}) --- Treesitter setup +-- Treesitter configuration require('nvim-treesitter.configs').setup { highlight = { enable = true, -- false will disable the whole extension @@ -295,7 +212,11 @@ require('nvim-treesitter.configs').setup { }, } -vim.o.completeopt="menuone,noselect" +-- set foldmethod=expr +-- set foldexpr=nvim_treesitter#foldexpr() + +-- Set completeopt to have a better completion experience +vim.o.completeopt="menu,menuone,noselect" local cmp = require'cmp' cmp.setup({ @@ -308,10 +229,10 @@ cmp.setup({ [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), -- Add tab support - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), + -- [''] = cmp.mapping.select_prev_item(), + -- [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ @@ -329,8 +250,7 @@ cmp.setup({ -- autopairs setup -- require("nvim-autopairs.completion.cmp").setup({ --- check_ts = true, --- map_cr = false, -- map on insert mode +-- map_cr = true, -- map on insert mode -- map_complete = true, -- it will auto insert `(` (map_char) after select function or method item -- auto_select = true, -- automatically select the first item -- insert = false, -- use insert confirm behavior instead of replace @@ -340,6 +260,67 @@ cmp.setup({ -- } -- }) + +-- LSP settings +local nvim_lsp = require('lspconfig') + +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffer +local on_attach = function(client, bufnr) + local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end + local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + + --Enable completion triggered by + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + local opts = { noremap=true, silent=true } + + -- See `:help vim.lsp.*` for documentation on any of the below functions + -- buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) + -- buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) + buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) + -- buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) + buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) + buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) + buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) + buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) + buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) + buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) + buf_set_keymap('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) + buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) + buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) + buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) + buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) + -- buf_set_keymap("n", "dc", "Dispatch cargo clippy", opts) + +end + +-- nvim-cmp supports additional completion capabilities +local capabilities = vim.lsp.protocol.make_client_capabilities() + + +-- Enable the following language servers +-- local servers = { 'clangd', 'rust_analyzer', 'bashls', 'pyright', 'tsserver', "cssls", "html" } +local servers = { 'clangd', 'pyright', 'bashls', 'tsserver', "cssls", "html" } +for _, lsp in ipairs(servers) do + nvim_lsp[lsp].setup { + on_attach = on_attach, + -- capabilities = capabilities, + capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) + } +end + +local rustopts = { + -- see https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer + server = { + on_attach = on_attach, + capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities), + }, +} + +require('rust-tools').setup(rustopts) + vim.api.nvim_exec( [[ autocmd BufWritePre *.rs lua vim.lsp.buf.formatting() @@ -347,7 +328,6 @@ vim.api.nvim_exec( true ) - vim.api.nvim_exec([[ " Expand imap vsnip#expandable() ? '(vsnip-expand)' : '' @@ -373,3 +353,40 @@ xmap s (vsnip-select-text) nmap S (vsnip-cut-text) xmap S (vsnip-cut-text) ]], true) + +if vim.env.TERM == 'screen' or vim.env.TERM == 'linux' then + vim.cmd[[colorscheme koehler]] + vim.g.lightline = { + active = { left = { { 'mode', 'paste' }, { 'gitbranch', 'readonly', 'filename', 'modified' } } }; + component_function = { gitbranch = 'fugitive#head', }; + } +end + +if vim.env.TERM == 'screen-256color' or vim.env.TERM == 'xterm-256color' then + vim.o.termguicolors = true + vim.g.nord_disable_background = true + require('nord').set() + vim.api.nvim_exec([[ + let g:lightline = { + \ 'colorscheme': 'nord', + \ 'active': { + \ 'left': [ ['mode', 'paste'], + \ ['fugitive', 'readonly', 'filename', 'modified'] ], + \ }, + \ 'component': { + \ 'readonly': '%{&filetype=="help"?"":&readonly?"\ue0a2":""}', + \ 'modified': '%{&filetype=="help"?"":&modified?"\ue0a0":&modifiable?"":"-"}', + \ 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}' + \ }, + \ 'component_visible_condition': { + \ 'readonly': '(&filetype!="help"&& &readonly)', + \ 'modified': '(&filetype!="help"&&(&modified||!&modifiable))', + \ 'fugitive': '(exists("*fugitive#head") && ""!=fugitive#head())' + \ }, + \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" }, + \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" } + \ } + ]], true) +end + + diff --git a/.config/zsh/.zshenv b/.config/zsh/.zshenv index c612c6d..1ee5171 100644 --- a/.config/zsh/.zshenv +++ b/.config/zsh/.zshenv @@ -59,6 +59,8 @@ export XAUTHORITY="${XDG_RUNTIME_DIR:-/run/user/$USER}/Xauthority" export MANPAGER="sh -c 'col -bx | bat -l man -p'" +source $ZDOTDIR/.zshenv.private + # # PATH typeset -U PATH path PATH="$PATH:$HOME/.local/bin" diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 9de24b5..dad8114 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -1,11 +1,6 @@ -# zmodload zsh/zprof # Source alias [ -f $XDG_CONFIG_HOME/shell/aliasrc ] && . $XDG_CONFIG_HOME/shell/aliasrc -# # Enable colors and change prompt: -# autoload -U colors && colors # Load colors -# PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b " - stty stop undef # Disable ctrl-s to freeze terminal. # On demand rehash @@ -41,57 +36,15 @@ zstyle ':completion:*' menu select # zmodload zsh/complist _comp_options+=(globdots) # Include hidden files. -# # Basic auto/tab complete: -# autoload -U compinit -# zstyle ':completion:*' menu select -# zmodload zsh/complist -# compinit -# _comp_options+=(globdots) # Include hidden files. - -# vi mode -# bindkey -v -# export KEYTIMEOUT=1 - -# Use vim keys in tab complete menu: -# bindkey -M menuselect 'h' vi-backward-char -# bindkey -M menuselect 'k' vi-up-line-or-history -# bindkey -M menuselect 'l' vi-forward-char -# bindkey -M menuselect 'j' vi-down-line-or-history -# bindkey -v '^?' backward-delete-char - -# Change cursor shape for different vi modes. -# function zle-keymap-select { -# if [[ ${KEYMAP} == vicmd ]] || -# [[ $1 = 'block' ]]; then -# echo -ne '\e[1 q' -# elif [[ ${KEYMAP} == main ]] || -# [[ ${KEYMAP} == viins ]] || -# [[ ${KEYMAP} = '' ]] || -# [[ $1 = 'beam' ]]; then -# echo -ne '\e[5 q' -# fi -# } -# zle -N zle-keymap-select -# zle-line-init() { -# zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) -# echo -ne "\e[5 q" -# } -# zle -N zle-line-init -# echo -ne '\e[5 q' # Use beam shape cursor on startup. -# preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. +PROMPT=' %c %# ' - -# # Git prompt -# autoload -Uz vcs_info -# precmd_vcs_info() { vcs_info } -# precmd_functions+=( precmd_vcs_info ) -# setopt prompt_subst -# RPROMPT=\$vcs_info_msg_0_ -# zstyle ':vcs_info:git:*' formats '%b' -# # zstyle ':vcs_info:*' enable git - -# https://github.com/softmoth/zsh-vim-mode -# . $ZDOTDIR/plugins/zsh-vim-mode.plugin.zsh +# Git prompt +autoload -Uz vcs_info +precmd_vcs_info() { vcs_info } +precmd_functions+=( precmd_vcs_info ) +setopt prompt_subst +RPROMPT=\$vcs_info_msg_0_ +zstyle ':vcs_info:git:*' formats '%b' eval "$(zoxide init zsh)" @@ -102,15 +55,12 @@ gpg-connect-agent updatestartuptty /bye >/dev/null export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) gpgconf --launch gpg-agent +# Should be before other plugins +. /usr/share/zsh/plugins/fzf-tab-git/fzf-tab.zsh +zstyle ':fzf-tab:*' fzf-command ftb-tmux-popup + . /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh bindkey '^ ' autosuggest-accept # Should be last -# . $ZDOTDIR/zsh-vi-mode/zsh-vi-mode.plugin.zsh . /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -. /usr/share/zsh/plugins/zsh-vi-mode/zsh-vi-mode.zsh - -# fpath=($ZDOTDIR/zsh-completions/src $fpath) - -eval "$(starship init zsh)" -# zprof