Updated dotfiles, but not complete and still need installation script updates.

This commit is contained in:
pgfm 2022-03-13 13:35:34 -05:00
parent a1feaeb14e
commit e7a6bacc19
11 changed files with 139 additions and 30 deletions

View file

@ -0,0 +1,11 @@
lua << EOF
require('lint').linters_by_ft = {
markdown = {'vale',},
html = {'tidy',},
vim = {'vint',},
yaml = {'yamllint'},
}
EOF
" Run linting after buffer write
au BufWritePost <buffer> lua require('lint').try_lint()

View file

@ -0,0 +1,5 @@
lua << EOF
require'nvim-web-devicons'.setup {
default = true;
}
EOF

View file

@ -0,0 +1,14 @@
lua << EOF
local actions = require("telescope.actions")
local trouble = require("trouble.providers.telescope")
require('telescope').setup {
defaults = {
mappings = {
i = { ["<c-t>"] = trouble.open_with_trouble },
n = { ["<c-t>"] = trouble.open_with_trouble },
},
},
}
require('telescope').load_extension('fzf')
EOF

View file

@ -0,0 +1,5 @@
lua << EOF
require("trouble").setup {
-- empty = default settings
}
EOF

View file

@ -0,0 +1,2 @@
" Let other signs (e.g. linter errors) take precedence over gitgutter
let g:gitgutter_sign_allow_clobber = 0

View file

@ -0,0 +1,3 @@
" If the format cannot be determined, use this.
let g:tex_flavor = "latex"
let g:vimtex_view_method = 'zathura'

View file

@ -4,28 +4,46 @@ call plug#begin('~/.local/share/nvim/plugged')
" Key usability plugins
" =============================================================================
" FZF Fuzzy Search
Plug 'junegunn/fzf', { 'dir': '~/.fzf' }
Plug 'junegunn/fzf.vim'
" FZF Native for Telescope
Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'make' }
" Floating terminal support for Neovim
Plug 'voldikss/vim-floaterm'
" Neovim LSP
Plug 'neovim/nvim-lspconfig'
" Treesitter
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
" Plenary - lua components used by other plugins
Plug 'nvim-lua/plenary.nvim'
" Neovim LSP
Plug 'neovim/nvim-lspconfig'
" Completion
Plug 'hrsh7th/cmp-nvim-lsp' " Builtin LSP as a completion source
Plug 'hrsh7th/cmp-path' " Support for path as a completion source
Plug 'hrsh7th/cmp-buffer' " Support for loaded buffers as completion source
Plug 'hrsh7th/nvim-cmp' " Primary plugin
" Treesitter
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
" telescope.nvim
" Gaze deeply into unknown regions using the power of the moon.
Plug 'nvim-telescope/telescope.nvim'
" trouble.nvim
" A pretty list for showing diagnostics, references, telescope results, quickfix
" and location lists to help you solve all the trouble your code is causing.
Plug 'folke/trouble.nvim'
" nvim-lint (compatible with Neovim LSP)
" nvim-lint is meant to fill the gaps for languages where either no language
" server exists, or where standalone linters provide better results than the
" available language server do.
Plug 'mfussenegger/nvim-lint'
" vim-gitgutter
" A Vim plugin which shows a git diff in the sign column.
Plug 'airblade/vim-gitgutter'
" =============================================================================
" Languages and project type support.
" =============================================================================
@ -46,6 +64,9 @@ Plug 'ziglang/zig.vim', { 'for': ['zig'] }
" Note: Metals should not be configured with the other LSP items.
Plug 'scalameta/nvim-metals', { 'for': ['scala', 'sbt'] }
" LaTeX Support
Plug 'lervag/vimtex', { 'for': ['tex'] }
" =============================================================================
" Visual enhancements
" =============================================================================
@ -53,14 +74,22 @@ Plug 'scalameta/nvim-metals', { 'for': ['scala', 'sbt'] }
Plug 'sainnhe/gruvbox-material'
" Plug 'rebelot/kanagawa.nvim'
Plug 'kyazdani42/nvim-web-devicons'
Plug 'folke/lsp-colors.nvim'
call plug#end()
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
filetype plugin indent on
syntax on
let mapleader=","
let maplocalleader=","
" Only allow syntax to be set once.
if !exists('g:syntax_on')
syntax enable
endif
let mapleader=','
let maplocalleader=','
" === Color Scheme === {{
set termguicolors
@ -80,7 +109,6 @@ set undodir=~/.config/nvim/undo
" === Assorted Core Settings === {{
set noswapfile
set nocompatible
set modelines=0
set hidden " Hide buffers
set encoding=utf-8 " Always use UTF-8 explicitly
@ -100,6 +128,8 @@ set colorcolumn=80 " Right margin display
set shortmess-=F " Ensure audocmd works for filetype
set shortmess+=c " Avoid showing extra message when using completion
set spelllang=en_us
set signcolumn=yes
set updatetime=200
" }}
" === Basic Completion Settings === {{
@ -135,10 +165,6 @@ set wildignore+=*/.metals/*,*/.bloop/*,*/.bsp/*
set wildignore+=*/node_modules/*
" }}
" === FZF Configuration === {{
let $FZF_DEFAULT_COMMAND='rg --files --no-messages "" .'
" }}
" === Key Mappings === {{
" Use Tab and Shift+Tab to navigate popup menus
@ -166,8 +192,23 @@ nmap ; :Buffers<CR>
" Press Ctrl+P to show a list of files (+ fuzzy search)
nmap <C-p> :Files<CR>
" Press <leader> + f to use ripgrep for search
nmap <leader>f :Rg<space>
" Telescope Bindings (e.g. file and buffer search)
nnoremap <C-p> <cmd>Telescope find_files<cr>
nnoremap ; <cmd>Telescope buffers<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
" Trouble bindings
nnoremap <leader>xx <cmd>TroubleToggle<cr>
nnoremap <leader>xw <cmd>TroubleToggle workspace_diagnostics<cr>
nnoremap <leader>xd <cmd>TroubleToggle document_diagnostics<cr>
nnoremap <leader>xq <cmd>TroubleToggle quickfix<cr>
nnoremap <leader>xl <cmd>TroubleToggle loclist<cr>
nnoremap gR <cmd>TroubleToggle lsp_references<cr>
" gitgutter bindings
nmap ]h <Plug>(GitGutterNextHunk)
nmap [h <Plug>(GitGutterPrevHunk)
" LSP key bindings
nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR>
@ -191,13 +232,6 @@ map <C-h> <C-w>h
map <C-l> <C-w>l
" }}
" === JSON Support === {{
" Properly handle comments in JSON.
autocmd FileType json syntax match Comment +\/\/.\+$+
" }}
" === netrw === {{
let g:netrw_banner = 0
let g:netrw_liststyle = 3
@ -260,6 +294,7 @@ end
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
-- zls = zig language server
lsp.zls.setup {
on_attach = on_attach,
flags = {
@ -268,6 +303,9 @@ lsp.zls.setup {
capabilities = capabilities
}
-- texlab = latex language server
lsp.texlab.setup{}
-- Note that metals is totally separate.
-- It's also absurdly slow on a Raspberry Pi, it's only viable for somewhat
-- powerful machines (as is Scala dev in general).

6
neovim/json.vim Normal file
View file

@ -0,0 +1,6 @@
" === JSON Support === {{
" Properly handle comments in JSON.
autocmd FileType json syntax match Comment +\/\/.\+$+
" }}

9
neovim/tex.vim Normal file
View file

@ -0,0 +1,9 @@
" === Tex / LaTeX Support === {{
" Default tex flavor to use if not detected.
let g:tex_flavor = "latex"
" Zathura is a minimal PDF viewer with Vim bindings.
let g:vimtex_view_method = 'zathura'
" }}

View file

@ -48,6 +48,11 @@ else
fi
fi
# =============================================================================
# Common Environment Configuration
# =============================================================================
export EDITOR=vim
# =============================================================================
# PATH
# =============================================================================
@ -55,6 +60,10 @@ if [ -d "$HOME/bin" ]; then
export PATH="$HOME/bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ]; then
export PATH="$HOME/.local/bin:$PATH"
fi
if [ -f "$HOME/.cargo/env" ]; then
source "$HOME/.cargo/env"
fi
@ -120,3 +129,10 @@ else
echo "[warn] Neovim is not setup! Using the system vim" >> $log_file
fi
fi
# =============================================================================
# Scala/SBT Setup
# =============================================================================
if command -v sbt > /dev/null 2>&1; then
export SBT_OPTS="-XX:+UseG1GC -Xmx2048m"
fi

View file

@ -1,7 +1,7 @@
*.font: xft:Iosevka Term:style=Regular:size=13
*.boldFont: xft:Iosevka Term:style=Bold:size=13
*.italicFont: xft:Iosevka Term:style=Italic:size=13
*.boldItalicFont: xft:Iosevka Term:style=Bold Italic:size=13
*.font: xft:Iosevka Nerd Font Mono:style=Regular:size=13
*.boldFont: xft:Iosevka Nerd Font Mono:style=Bold:size=13
*.italicFont: xft:Iosevka Nerd Font Mono:style=Italic:size=13
*.boldItalicFont: xft:Iosevka Nerd Font Mono:style=Bold Italic:size=13
! Colors
! hard contrast: *background: #1d2021