diff options
-rw-r--r-- | .config/nvim/ftplugin/lua.lua | 3 | ||||
-rw-r--r-- | .config/nvim/init.lua | 72 | ||||
-rwxr-xr-x | .local/bin/bell | 3 | ||||
-rwxr-xr-x | .local/bin/set-title | 30 |
4 files changed, 108 insertions, 0 deletions
diff --git a/.config/nvim/ftplugin/lua.lua b/.config/nvim/ftplugin/lua.lua new file mode 100644 index 0000000..12890e2 --- /dev/null +++ b/.config/nvim/ftplugin/lua.lua @@ -0,0 +1,3 @@ +vim.opt.omnifunc = 'v:lua.vim.lua_omnifunc' + + diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..eaa31b2 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,72 @@ +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.title = true +vim.opt.termguicolors = true +vim.opt.signcolumn = 'yes' + +vim.g.netrw_keepdir = 0 +vim.g.netrw_banner = 0 + +vim.cmd.colorscheme 'melange' +vim.opt.colorcolumn = '+1' +vim.opt.foldlevel = 2 +vim.opt.foldmethod = "expr" +vim.opt.foldexpr = "nvim_treesitter#foldexpr()" +vim.opt.foldenable = false + +vim.opt.omnifunc = "syntaxcomplete#Complete" +vim.opt.completeopt = {'menu', 'noinsert'} + +require "paq" { + "savq/paq-nvim", -- Let Paq manage itself + "savq/melange-nvim", + "neovim/nvim-lspconfig", + { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate' }, +}:sync() + +require'nvim-treesitter.configs'.setup { + highlight = { + enable = true, + }, + indent = { enable = true }, + auto_install = true, + ensure_installed = { "vimdoc", "lua" } +} + +require'lspconfig'.clangd.setup{} +require'lspconfig'.tsserver.setup{} +require'lspconfig'.eslint.setup{} +require'lspconfig'.html.setup{} +require'lspconfig'.cssls.setup{} +require'lspconfig'.jsonls.setup{} +require'lspconfig'.pyright.setup{} + +vim.keymap.set('i', '<C-Space>', '<C-x><C-o>') +vim.keymap.set('n', '<space>e', vim.diagnostic.open_float) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next) +vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist) + +vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + local opts = { buffer = ev.buf } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) + vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts) + vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set('n', '<space>wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, opts) + vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts) + vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts) + vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) + vim.keymap.set('n', '<space>f', function() + vim.lsp.buf.format { async = true } + end, opts) + end, +}) diff --git a/.local/bin/bell b/.local/bin/bell new file mode 100755 index 0000000..7d6b529 --- /dev/null +++ b/.local/bin/bell @@ -0,0 +1,3 @@ +#/bin/sh -- + +tput bel diff --git a/.local/bin/set-title b/.local/bin/set-title new file mode 100755 index 0000000..34caa8a --- /dev/null +++ b/.local/bin/set-title @@ -0,0 +1,30 @@ +#!/bin/sh + +exec < /dev/tty + +if tput hs +then + tsl="$(tput tsl)" + fsl="$(tput fsl)" + hs=1 +else + case ${TERM} in + xterm*|rxvt*) + tsl="$(printf "\x1b]0;")" + fsl="$(printf "\a")" + hs=1 + ;; + screen*) + tsl="$(printf "\x1b_")" + fsl="$(printf "\x1b\\")" + hs=1 + ;; + esac +fi + +if test "$hs" = 1 +then + printf "%s" "$tsl" + printf "%s" "$@" + printf "%s" "$fsl" +fi |