diff options
-rw-r--r-- | .config/nvim/init.lua | 6 | ||||
-rw-r--r-- | .config/nvim/lua/lsp_cfg.lua | 141 | ||||
-rw-r--r-- | .config/nvim/lua/plugins.lua | 53 | ||||
-rw-r--r-- | .config/nvim/lua/settings.lua | 96 | ||||
-rw-r--r-- | .config/nvim/lua/statusline.lua | 17 | ||||
-rw-r--r-- | .config/nvim/lua/wavefunction/init.lua (renamed from .config/nvim/lua/mappings.lua) | 0 | ||||
-rw-r--r-- | .config/nvim/lua/wavefunction/packer.lua | 11 | ||||
-rwxr-xr-x | .local/bin/confgit.sh | 23 | ||||
-rw-r--r-- | .local/share/git/repolist | 1 | ||||
-rw-r--r-- | .profile | 19 |
10 files changed, 31 insertions, 336 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index e617adc..c9c08e4 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,5 +1 @@ -require("plugins") -require("lsp_cfg") -require("settings") -require("mappings") -require("statusline") +require("wavefunction") diff --git a/.config/nvim/lua/lsp_cfg.lua b/.config/nvim/lua/lsp_cfg.lua deleted file mode 100644 index 887b529..0000000 --- a/.config/nvim/lua/lsp_cfg.lua +++ /dev/null @@ -1,141 +0,0 @@ --- Statusline via LSP -local lsp_status = require('lsp-status') -lsp_status.config({ -indicator_errors = 'E', -indicator_warnings = 'W', -indicator_info = 'i', -indicator_hint = '?', -indicator_ok = 'Ok', -}) - -lsp_status.register_progress() - --- Set up Mason -require("mason").setup() - --- Main LSP Configs -local nvim_lsp = require('lspconfig') -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - --- null-ls setup -local null_ls = require("null-ls") - --- Rust Tools setup -local rt = { - server = { - settings = { - on_attach = function(_, bufnr) - -- Hover actions - vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr }) - -- Code action groups - vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr }) - require 'illuminate'.on_attach(client) - end, - ["rust-analyzer"] = { - checkOnSave = { - command = "clippy" - }, - }, - } - }, -} -require('rust-tools').setup(rt) - --- register any number of sources simultaneously -local sources = { - -- These are a first-pass at sources - null_ls.builtins.completion.tags, - null_ls.builtins.completion.vsnip, - null_ls.builtins.diagnostics.clang_check, - null_ls.builtins.diagnostics.gitlint, - null_ls.builtins.diagnostics.golangci_lint, - null_ls.builtins.diagnostics.markdownlint.with({ - extra_args = { "-c /home/tydavis/.markdowntlint.jsonc" }, - }), - null_ls.builtins.formatting.clang_format, - null_ls.builtins.formatting.markdownlint, -} - -null_ls.setup({ sources = sources }) - -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 - - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - - -- Mappings. - local opts = { noremap=true, silent=true } - buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts) - buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts) - buf_set_keymap('n', 'ga', '<Cmd>lua vim.lsp.buf.code_action()<CR>', opts) - buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts) - buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) - buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) - buf_set_keymap('n', '<Leader>d', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) - -- buf_set_keymap('n', '<Leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) - buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) - buf_set_keymap('n', '<Leader>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts) - buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts) - buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts) - buf_set_keymap('n', '<Leader>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts) - -- Original Keybinds - --buf_set_keymap('n', '<Leader>b', '<cmd>GoBuild<CR>', opts) - --buf_set_keymap('n', '<Leader>t', '<cmd>GoTest<CR>', opts) - - -- Set some keybinds conditional on server capabilities - if client.resolved_capabilities.document_formatting then - buf_set_keymap("n", "ff", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts) - elseif client.resolved_capabilities.document_range_formatting then - buf_set_keymap("n", "ff", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts) - end -end - --- Go -nvim_lsp.gopls.setup{ - cmd = {'gopls'}, - -- for postfix snippets and analyzers - capabilities = capabilities, - settings = { - gopls = { -- Analyzers and snippets enabled - experimentalPostfixCompletions = true, - analyses = { - unusedparams = true, - shadow = true, - }, - staticcheck = true, - }, - }, - on_attach = on_attach, -} - - function org_imports(wait_ms) - local params = vim.lsp.util.make_range_params() - params.context = {only = {"source.organizeImports"}} - local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, wait_ms) - for _, res in pairs(result or {}) do - for _, r in pairs(res.result or {}) do - if r.edit then - vim.lsp.util.apply_workspace_edit(r.edit, "utf-8") - else - vim.lsp.buf.execute_command(r.command) - end - end - end - end --- END GO - --- NOTE omnifunc setting for LSP allows for C-x,C-o wildmenu completion --- --- Autoformat -vim.cmd [[ - -autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_seq_sync() - -autocmd FileType go setlocal omnifunc=v:lua.vim.lsp.omnifunc -autocmd FileType c,cpp setlocal omnifunc=v:lua.vim.lsp.omnifunc -autocmd FileType rust setlocal omnifunc=v:lua.vim.lsp.omnifunc - -]] --- diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua deleted file mode 100644 index 67fd109..0000000 --- a/.config/nvim/lua/plugins.lua +++ /dev/null @@ -1,53 +0,0 @@ --- Use Packer --- --- git clone --depth 1 https://github.com/wbthomason/packer.nvim\ --- ~/.local/share/nvim/site/pack/packer/start/packer.nvim --- - -return require("packer").startup(function(use) - -- Packer can manage itself - use("wbthomason/packer.nvim") - - -- Dependency for other plugins - use("nvim-lua/plenary.nvim") - use("nvim-lua/popup.nvim") - - -- LSP - use("williamboman/mason.nvim") - use("williamboman/mason-lspconfig.nvim") - use("neovim/nvim-lspconfig") - - use("nvim-lua/lsp_extensions.nvim") - use("nvim-lua/lsp-status.nvim") - use("nvim-lua/completion-nvim") - - use("jose-elias-alvarez/null-ls.nvim") - - -- Languages - use("rust-lang/rust.vim") - use("simrat39/rust-tools.nvim") - use("fatih/vim-go") - - -- Features - use("jremmen/vim-ripgrep") - use("vim-scripts/DrawIt") - - --vim-go search requirement - use("vijaymarupudi/nvim-fzf") - - -- Debuggers - use("mfussenegger/nvim-dap") - use("rcarriga/nvim-dap-ui") - use("theHamsta/nvim-dap-virtual-text") - - -- Completion framework - use("hrsh7th/nvim-cmp") - use("hrsh7th/cmp-nvim-lsp") - - -- Useful completion sources - use("hrsh7th/cmp-nvim-lua") - use("hrsh7th/cmp-nvim-lsp-signature-help") - use("hrsh7th/cmp-path") - use("hrsh7th/cmp-buffer") -end) - diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/settings.lua deleted file mode 100644 index cac13fb..0000000 --- a/.config/nvim/lua/settings.lua +++ /dev/null @@ -1,96 +0,0 @@ --- Settings file -HOME = os.getenv("HOME") - --- Core settings -vim.g.mapleader = '\\' - ---New Neovim 0.7 settings, as vimcmd because not yet Lua-fied -vim.cmd [[ -let g:do_filetype_lua = 1 -let g:did_load_filetypes = 0 -]] - --- Sidebar -vim.o.number = true -- line number on the left -vim.o.numberwidth = 2 -- always reserve 2 spaces for line number -vim.o.signcolumn = 'yes' -- keep 1 column for coc.vim check -vim.o.modelines = 0 -vim.o.showcmd = true -- display command in bottom bar - --- Files and interface -vim.o.encoding = "utf-8" -vim.o.backspace = "eol,start,indent" -- backspace works on every char in insert mode -vim.o.completeopt = 'menuone,noselect' -vim.o.history = 500 ---vim.o.dictionary = '/usr/share/dict/words' -vim.o.startofline = true - -vim.o.expandtab = true -- expand tab to spaces -vim.o.autoindent = true -vim.o.smartindent = true -vim.o.tabstop = 8 -vim.o.shiftwidth = 8 -- indentation rule -vim.o.shiftround = true - --- Display -vim.o.showmatch = true -- show matching brackets -vim.o.scrolloff = 7 -- always show 3 rows from edge of the screen -vim.o.synmaxcol = 250 -- stop syntax highlight after x lines for performance -vim.o.laststatus = 3 -- always show status line, globally - -vim.o.list = false -- do not display white characters -vim.o.foldenable = false -vim.o.foldlevel = 4 -- limit folding to 4 levels -vim.o.foldmethod = 'syntax' -- use language syntax to generate folds -vim.o.matchtime = 2 -- delay (tenths of seconds) before showing matching paren - -vim.o.errorbells = false -vim.o.visualbell = false - --- Search -vim.o.incsearch = true -- starts searching as soon as typing, without enter needed -vim.o.ignorecase = true -- ignore letter case when searching -vim.o.smartcase = true -- case insentive unless capitals used in search - --- Colors -vim.o.background = "light" --- Can't set some values with lua yet -vim.cmd [[ - syntax off - colorscheme peachpuff -]] - --- Backup files -vim.o.backup = true -- use backup files -vim.o.writebackup = false -vim.o.swapfile = false -- do not use swap file -vim.o.undodir = HOME .. '/.vim/tmp/undo//' -- undo files -vim.o.backupdir = HOME .. '/.vim/tmp/backup//' -- backups -vim.o.directory = '/.vim/tmp/swap//' -- swap files - --- Command Mode -vim.o.wildmenu = true -- on TAB, complete options for system command -vim.o.wildignore = 'deps,.svn,CVS,.git,.hg,*.o,*.a,*.class,*.mo,*.la,*.so,*.obj,*.swp,*.jpg,*.png,*.xpm,*.gif,.DS_Store,*.aux,*.out,*.toc' - --- Remove trailing whitespace -vim.cmd [[ -autocmd BufWritePre * :%s/\s\+$//e -]] - --- Language Settings --- Go -vim.cmd [[ -autocmd BufWritePre *.go lua vim.lsp.buf.formatting() -autocmd BufWritePre *.go lua org_imports(2000) -]] - --- All files attempt to auto-format -vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.formatting_sync()]] - --- Auto-compile after changes to the file -vim.cmd [[ - augroup packer_user_config - autocmd! - autocmd BufWritePost plugins.lua source <afile> | PackerCompile - augroup end -]] diff --git a/.config/nvim/lua/statusline.lua b/.config/nvim/lua/statusline.lua deleted file mode 100644 index facc04c..0000000 --- a/.config/nvim/lua/statusline.lua +++ /dev/null @@ -1,17 +0,0 @@ --- Lua statusline imported into the main init - --- Line table Left-to-Right -local stl = { - ' [%n] ', -- Buffer - ' %f ', -- Filename with Path - ' %m%r%w ', -- Modified flag - ' (%{&filetype})', -- VIM Filetype - " %{''.(&fenc!=''?&fenc:&enc).''}", -- File Encoding - ' %{(&bomb?\",BOM\":\"\")}', -- "UCS-BOM" /bomb/ detection - ' %=', -- Separator - ' row:%l/%L (%03p%%)', -- Formatted row, then percentage of file - ' col:%03c ', -- Formatted column -} --- Generate the statusline -vim.o.statusline = table.concat(stl) - diff --git a/.config/nvim/lua/mappings.lua b/.config/nvim/lua/wavefunction/init.lua index e69de29..e69de29 100644 --- a/.config/nvim/lua/mappings.lua +++ b/.config/nvim/lua/wavefunction/init.lua diff --git a/.config/nvim/lua/wavefunction/packer.lua b/.config/nvim/lua/wavefunction/packer.lua new file mode 100644 index 0000000..9999846 --- /dev/null +++ b/.config/nvim/lua/wavefunction/packer.lua @@ -0,0 +1,11 @@ + + +-- This file can be loaded by calling `lua require('plugins')` from your init.vim + +-- Only required if you have packer configured as `opt` +vim.cmd [[packadd packer.nvim]] + +return require('packer').startup(function(use) + -- Packer can manage itself + use 'wbthomason/packer.nvim' + diff --git a/.local/bin/confgit.sh b/.local/bin/confgit.sh index e1db9a4..643080b 100755 --- a/.local/bin/confgit.sh +++ b/.local/bin/confgit.sh @@ -108,24 +108,19 @@ git config --global mergetool.vscode.cmd "code --wait \$MERGED" # Editors if [ "$(command -v code)" ] && [ "$(env | grep VSCODE)" ]; then - export EDITOR="code" - export VISUAL="code" git config --global core.editor "code --wait" git config --global diff.tool vscode git config --global merge.tool vscode -#elif [ "$(command -v hx)" ]; then -# export EDITOR="hx" -# export VISUAL="hx" -# git config --global core.editor hx -# # Still can't find whether helix supports merge contents -# git config --global diff.tool vim -# git config --global merge.tool vim else - export EDITOR="vim" - export VISUAL="vim" - git config --global core.editor vim - git config --global diff.tool vim - git config --global merge.tool vim + if [ "$(command -v nvim)" ]; then + git config --global core.editor nvim + git config --global diff.tool nvim + git config --global merge.tool nvim + else + git config --global core.editor vim + git config --global diff.tool vim + git config --global merge.tool vim + fi fi # Use pager for large diffs diff --git a/.local/share/git/repolist b/.local/share/git/repolist index 104e5f0..1bd1522 100644 --- a/.local/share/git/repolist +++ b/.local/share/git/repolist @@ -5,5 +5,6 @@ hut,origin=https://git.sr.ht/~xenrox/hut journal,origin=ssh://tydavis@git.gluecode.net:/var/www/.gitdata/journal.git,sourcehut=git@git.sr.ht:~tydavis/journal resume,origin=ssh://tydavis@git.gluecode.net:/var/www/.gitdata/resume.git,sourcehut=git@git.sr.ht:~tydavis/resume senpai,origin=https://git.sr.ht/~delthas/senpai +servo,origin=ssh://git.gluecode.net/var/www/.gitdata/servo.git standards,origin=ssh://tydavis@git.gluecode.net:/var/www/.gitdata/standards.git,sourcehut=git@git.sr.ht:~tydavis/standards wally-cli,origin=git@github.com:zsa/wally-cli.git @@ -97,17 +97,16 @@ fi if [ ! "$(command -v vim)" ]; then alias vim=vi export EDITOR="vi" -fi - -if [ "$(command -v code)" ] && [ "$(env | grep VSCODE)" ]; then - export EDITOR="code" - export VISUAL="code" -#elif [ "$(command -v hx)" ]; then -# export EDITOR="hx" -# export VISUAL="hx" else - export EDITOR="vim" - export VISUAL="vim" + # But do we also have neovim? + if [ ! "$(command -v nvim)" ]; then + export EDITOR="vim" + export VISUAL="vim" + else + export EDITOR="nvim" + export VISUAL="nvim" + alias vim=nvim + fi fi # Ensure less always uses the one-page, raw control characters, and no-init settings |