Merge remote-tracking branch 'origin/master'

This commit is contained in:
Barak Michener 2024-02-11 16:17:08 -08:00
commit 6bd5d710ec
11 changed files with 197 additions and 60 deletions

View file

@ -20,3 +20,4 @@ fi
# Added by ~/.emacs.d/install.sh
export PATH=$HOME/.cask/bin:$PATH
. "$HOME/.cargo/env"

View file

@ -161,3 +161,4 @@ fi
if [ -f ~/local/google-cloud-sdk/completion.bash.inc ]; then
. ~/local/google-cloud-sdk/completion.bash.inc
fi
. "$HOME/.cargo/env"

1
.config/fish/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
work.fish

View file

@ -1,4 +1,4 @@
#set -g VIRTUALFISH_VERSION 2.5.5
#set -g VIRTUALFISH_PYTHON_EXEC /usr/bin/python
#source /usr/local/lib/python3.10/site-packages/virtualfish/virtual.fish
set -g VIRTUALFISH_VERSION 2.5.5
set -g VIRTUALFISH_PYTHON_EXEC /bin/python
source /home/barak/.local/lib/python3.11/site-packages/virtualfish/virtual.fish
emit virtualfish_did_setup_plugins

View file

@ -16,6 +16,10 @@ if test -e $HOME/.asdf/asdf.fish
. ~/.asdf/asdf.fish
end
if test -e $HOME/.config/fish/work.fish
. ~/.config/fish/work.fish
end
. ~/.config/fish/fish_aliases.fish
# The next line updates PATH for the Google Cloud SDK.

View file

@ -0,0 +1 @@
function fish_right_prompt; end

View file

@ -4,7 +4,7 @@ Name=Spotify
GenericName=Online music streaming service
Comment=Access all of your favorite music
Icon=com.spotify.Client
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding com.spotify.Client --force-device-scale-factor=2 @@u %U @@
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding com.spotify.Client --force-device-scale-factor=1.5 @@u %U @@
Terminal=false
MimeType=x-scheme-handler/spotify;
Categories=Audio;Music;AudioVideo;

View file

@ -46,7 +46,6 @@ bind-key C-t new-window "ttyd -R -d -t fontSize=18 tmux attach -t `tmux display
#set -g status-bg black
set -g status-interval 1
#set -g status-left '#[fg=green]#H#[default]'
#set -g status-left-length 20
#set -g status-right '#[fg=green]#(~/src/tpom/tpom) #[fg=cyan,bold]%Y-%m-%d %H:%M:%S#[default]'
set -g status-justify centre # center align window list
set -g status-style fg=white,bg=default
@ -61,8 +60,10 @@ set-window-option -g window-status-current-style fg=cyan,bg=default,bright
set-window-option -g window-style fg=#aaaaaa,bg=terminal
set-window-option -g window-active-style fg=terminal,bg=terminal
set -g status-left '#[fg=green][ #H ][ '
set -g status-left '#[fg=green][ #h ]['
set -g status-left-length 40
set -g status-right '#[fg=green]][ #{pane_width}x#{pane_height} #[bright]#[fg=blue]%Y-%m-%d #[fg=white]%I:%M #[dim]#[fg=green]]'
set -g status-right-length 40
# Notifying if other windows has activities
setw -g monitor-activity on

View file

@ -99,6 +99,9 @@ augroup go
autocmd FileType go set softtabstop=2
autocmd FileType go set shiftwidth=2
autocmd FileType go set noexpandtab
autocmd FileType go imap <buffer> <silent> <Leader>ife <C-o>:GoIfErr<cr>
autocmd FileType go nmap <buffer> <silent> <Leader>ife :GoIfErr<cr>
autocmd FileType go nnoremap <silent> <Leader>im <cmd>lua require('telescope').extensions.goimpl.goimpl{theme = "ivy", layout_config = {height = 10}}<cr>
"autocmd FileType go nmap <Leader>gd <Plug>(go-doc)
"autocmd FileType go nmap gd <Plug>(go-def)
augroup END
@ -121,6 +124,7 @@ autocmd FileType proto let b:auto_trim_whitespace=1
autocmd FileType hy let b:auto_trim_whitespace=1
autocmd FileType idris let b:auto_trim_whitespace=1
autocmd FileType java let b:auto_trim_whitespace=1
autocmd FileType lua let b:auto_trim_whitespace=1
augroup templates
autocmd BufNewFile *.vue 0r ~/.vim/skeletons/vue.skel

View file

@ -7,6 +7,13 @@ local nvim_lsp = require 'lspconfig'
local on_attach = function(client)
end
-- Set my preferred diagnostic options
local diagnostic_options = {
virtual_text = false,
signs = true,
update_in_insert = false,
}
local rust_capabilities = vim.lsp.protocol.make_client_capabilities()
rust_capabilities.textDocument.completion.completionItem.snippetSupport = true
rust_capabilities.textDocument.completion.completionItem.resolveSupport = {
@ -17,6 +24,16 @@ rust_capabilities.textDocument.completion.completionItem.resolveSupport = {
}
}
local default_capabilities = vim.lsp.protocol.make_client_capabilities()
default_capabilities.textDocument.completion.completionItem.snippetSupport = true
default_capabilities.textDocument.completion.completionItem.resolveSupport = {
properties = {
'documentation',
'detail',
'additionalTextEdits',
}
}
-- Enable rust_analyzer
nvim_lsp.rust_analyzer.setup({
on_attach = function(client, bufnr)
@ -54,7 +71,80 @@ nvim_lsp.gopls.setup({
},
},
})
nvim_lsp.pyright.setup({ on_attach = on_attach })
local function filter(arr, func)
-- Filter in place
-- https://stackoverflow.com/questions/49709998/how-to-filter-a-lua-array-inplace
local new_index = 1
local size_orig = #arr
for old_index, v in ipairs(arr) do
if func(v, old_index) then
arr[new_index] = v
new_index = new_index + 1
end
end
for i = new_index, size_orig do arr[i] = nil end
end
local function pyright_accessed_filter(diagnostic)
-- Allow kwargs to be unused, sometimes you want many functions to take the
-- same arguments but you don't use all the arguments in all the functions,
-- so kwargs is used to suck up all the extras
if diagnostic.message == '"kwargs" is not accessed' then
return false
end
-- Allow variables starting with an underscore
if string.match(diagnostic.message, '"_.+" is not accessed') then
return false
end
return true
end
local function pyright_custom_diagnostic(a, params, client_id, c, config)
filter(params.diagnostics, pyright_accessed_filter)
vim.lsp.diagnostic.on_publish_diagnostics(a, params, client_id, c, config)
end
nvim_lsp.pyright.setup({ on_attach = function(client, bufnr)
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(pyright_custom_diagnostic, diagnostic_options)
end })
--nvim_lsp.pyright.setup({ on_attach = on_attach })
--nvim_lsp.pylsp.setup({
--on_attach = on_attach,
--settings = {
--pylsp = {
--plugins = {
---- formatter options
----black = { enabled = true },
--autopep8 = { enabled = false },
--yapf = { enabled = false },
---- linter options
--pylint = { enabled = false, executable = "pylint" },
--pyflakes = { enabled = false },
--pycodestyle = { enabled = false },
---- type checker
--pylsp_mypy = { enabled = true },
---- auto-completion options
--jedi_completion = { enabled = false },
---- import sorting
----pyls_isort = { enabled = true },
----flake8 = {
----maxLineLength = 100,
----},
--pycodestyle = {
--maxLineLength = 100,
--},
----rope_autoimport = {
----enabled = true
----},
----rope_completion = {
----enabled = true
----},
--}
--}
--}
--})
--nvim_lsp.clangd.setup({ on_attach = on_attach })
nvim_lsp.tsserver.setup {
@ -100,7 +190,12 @@ require 'lspconfig'.lua_ls.setup {
},
}
require('go').setup()
require('go').setup({
iferr_vertical_shift = 2
})
require('telescope').load_extension('goimpl')
function org_imports(wait_ms)
local params = vim.lsp.util.make_range_params()
@ -120,34 +215,42 @@ function org_imports(wait_ms)
end
end
nvim_lsp.efm.setup {
init_options = { documentFormatting = true },
-- register linters
local luaformat = require("efmls-configs.formatters.lua_format")
local rustfmt = require('efmls-configs.formatters.rustfmt')
local black = require('efmls-configs.formatters.black')
local mypy = require('efmls-configs.linters.mypy')
local eslint = require('efmls-configs.linters.eslint')
local isort = require('efmls-configs.formatters.isort')
local languages = {
typescript = { eslint },
lua = { luaformat },
python = { black, mypy, isort },
rust = { rustfmt },
}
local efmls_config = {
filetypes = vim.tbl_keys(languages),
settings = {
rootMarkers = { ".git/", "package.json" },
languages = {
lua = {
{ formatCommand = "lua-format -i", formatStdin = true }
rootMarkers = { '.git/' },
languages = languages,
},
python = {
{ formatCommand = 'black --quiet -', formatStdin = true }
init_options = {
documentFormatting = true,
documentRangeFormatting = true,
},
rust = {
{ formatCommand = 'rustfmt', formatStdin = true }
},
typescript = {
{ formatCommand = 'pnpm exec eslint --fix' }
}
}
}
}
require('lspconfig').efm.setup(vim.tbl_extend('force', efmls_config, {
-- Pass your custom lsp config below like on_attach and capabilities
on_attach = on_attach,
capabilities = default_capabilities,
}))
-- Enable diagnostics
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = false,
signs = true,
update_in_insert = false,
}
vim.lsp.diagnostic.on_publish_diagnostics,
diagnostic_options
)
-- Compe setup
@ -181,7 +284,7 @@ require 'compe'.setup {
--require'lsp_signature'.on_attach(signature_cfg)
saga_cfg = {
local saga_cfg = {
code_action_prompt = {
enable = false,
sign = false,
@ -215,6 +318,7 @@ _G.tab_complete = function()
return vim.fn['compe#complete']()
end
end
_G.s_tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-p>"
@ -319,8 +423,16 @@ require('telescope').setup {
["ff"] = require('telescope.actions').send_to_qflist,
},
},
path_display = { "smart", "shorten" },
dynamic_preview_title = true,
},
pickers = {
goimpl = {
theme = "ivy",
layout_config = {
height = 10,
},
},
lsp_code_actions = {
theme = "ivy",
layout_config = {
@ -367,31 +479,13 @@ require('telescope').setup {
layout_config = {
height = 15,
},
ignore_current_buffer = true,
initial_mode = "normal",
},
},
}
local dropdown = require 'telescope.themes'.get_dropdown({
--previewer = false,
--prompt_title = "",
--results_height = 16,
--width = 0.6,
--borderchars = {
--{"─", "│", "─", "│", "╭", "╮", "╯", "╰"},
--prompt = {"─", "│", " ", "│", "╭", "╮", "│", "│"},
--results = {"─", "│", "─", "│", "├", "┤", "╯", "╰"},
--preview = {"─", "│", "─", "│", "╭", "╮", "╯", "╰"}
--},
--winblend = 10
})
local telescope_ivy = require 'telescope.themes'.get_ivy({
})
--
-- Treesitter
--
@ -477,6 +571,18 @@ require "neogen".setup {}
require('leap').set_default_keymaps()
require("flit").setup {}
require('snippy').setup({
mappings = {
is = {
[',,'] = 'expand_or_advance',
[',.'] = 'previous',
},
nx = {
['<leader>x'] = 'cut_text',
},
},
})
---
--- My own "where" clause generator for Rust
@ -486,7 +592,7 @@ function string.insert(str1, str2, pos)
end
function string.split(s, delimiter)
result = {};
local result = {};
for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do
table.insert(result, match);
end
@ -559,3 +665,5 @@ function neogen_dwim()
end
end
end
require("murdock")

28
.vimrc
View file

@ -83,6 +83,17 @@ if exists('veonim')
set guifont=Droid\ Sans\ Mono\ Dotted:h20
" set linespace=10
endif
if exists('g:neovide')
let g:neovide_floating_blur_amount_x = 2.0
let g:neovide_floating_blur_amount_y = 2.0
let g:neovide_transparency = 0.95
let g:neovide_scroll_animation_length = 0.1
let g:neovide_cursor_animation_length = 0.05
let g:neovide_cursor_trail_size = 0.5
endif
" * Polyglot
let g:tex_flavor = 'latex'
@ -139,7 +150,10 @@ Plug 'vim-airline/vim-airline-themes'
Plug 'airblade/vim-rooter'
"Plug 'bling/vim-bufferline'
Plug 'majutsushi/tagbar'
Plug 'SirVer/ultisnips'
"Plug 'SirVer/ultisnips'
Plug 'dcampos/nvim-snippy'
Plug 'rafamadriz/friendly-snippets'
Plug 'honza/vim-snippets'
"Plug 'fatih/vim-go'
Plug 'tpope/vim-abolish'
@ -217,7 +231,9 @@ Plug 'ray-x/go.nvim'
Plug 'RishabhRD/popfix'
Plug 'RishabhRD/nvim-lsputils'
Plug 'stevanmilic/nvim-lspimport'
Plug 'folke/trouble.nvim'
Plug 'creativenull/efmls-configs-nvim', { 'tag': 'v1.*' }
" Plugins that do specific things
"Plug 'Shougo/vimproc.vim'
@ -251,6 +267,7 @@ Plug 'danymat/neogen'
" Unclear
"Plug 'ncm2/float-preview.nvim'
Plug 'lambdalisue/gina.vim'
Plug 'edolphin-ydf/goimpl.nvim'
call plug#end()
@ -289,6 +306,8 @@ nnoremap <silent> <leader>xx <cmd>TroubleToggle<cr>
nnoremap <silent> <leader>xq <cmd>lua vim.diagnostic.setqflist()<CR>
"nnoremap <silent> <leader>nc <cmd>lua neogen_dwim()<CR>
nnoremap <silent> <leader>nc <cmd>lua require('neogen').generate({ type = 'any' })<CR>
nnoremap <silent> gm <cmd>lua require('lspimport').import()<CR>
" Set updatetime for CursorHold
" 300ms of no cursor movement to trigger CursorHold
@ -1026,7 +1045,8 @@ nnoremap <Leader>hh :A<CR>
" CommandT is useful, but if I'm juggling lots of buffers, limit it to another
" one I have open (instead of standard <Leader>t).
"nnoremap <silent> <Leader>o :<C-u>Buffers<CR>
nnoremap <silent> <Leader>o <cmd>lua require('telescope.builtin').buffers{}<cr>
nnoremap <silent> <Leader>o <cmd>lua require('telescope.builtin').buffers{initial_mode = "insert"}<cr>
nnoremap <silent> <C-j> <cmd>lua require('telescope.builtin').buffers{prompt_prefix = " "}<cr>
"nnoremap <Leader>j <C-^>
"nnoremap <Leader>p :PTW
nnoremap <Leader>p :LustyJugglePrevious<CR>
@ -1043,9 +1063,6 @@ endif
" ** SEE ALSO **
" filetype.vim
command Comments lexpr system($HOME . '/src/gogh/src/github.com/barakmich/gogh/gogh')
"call remote#host#RegisterPlugin('python3', '/home/barak/.vim/bundle/deoplete.nvim/rplugin/python3/deoplete', [
"\ {'sync': v:true, 'name': '_deoplete', 'type': 'function', 'opts': {}},
"\ ])
@ -1088,4 +1105,3 @@ let s:gptool_temp = expand($HOME . '/src/gptool/bindings.vim')
if filereadable(s:gptool_temp)
exec ':so ' . s:gptool_temp
endif