diff options
Diffstat (limited to 'init.lua.backup')
-rw-r--r-- | init.lua.backup | 310 |
1 files changed, 295 insertions, 15 deletions
diff --git a/init.lua.backup b/init.lua.backup index 8dbeee2..0323dd8 100644 --- a/init.lua.backup +++ b/init.lua.backup @@ -1,9 +1,15 @@ --- How to install --- --- 1. Run `PackerSync` --- 2. Run TSInstall <langauge> for treesitter grammar --- 3. LspInfo to check if the language servers are working +--[[ +How to install + +1. Run `PackerSync` +2. Run TSInstall <langauge> for treesitter grammar +3. LspInfo to check if the language servers are working + +Todo +https://dev.to/voyeg3r/writing-useful-lua-functions-to-my-neovim-14ki +function to remove whitespace and preserve spot on save +]]-- -- Bootstrap packer if not installed local fn = vim.fn @@ -13,15 +19,164 @@ if fn.empty(fn.glob(install_path)) > 0 then vim.cmd 'packadd packer.nvim' end --- Install My Stuff -require('settings') -vim.cmd "nnoremap <space>ps <cmd>PackerSync<cr>" -vim.cmd "nnoremap <space>ff <cmd>Telescope find_files<cr>" -vim.cmd "nnoremap <space>/ <cmd>Telescope live_grep<cr>" -vim.cmd "nnoremap <space>fb <cmd>Telescope buffers<cr>" -vim.cmd "nnoremap <space>fg <cmd>lua require('telescope.builtin').git_status()<cr>" +local o = vim.o +local g = vim.g +local cmd = vim.cmd +local map = vim.api.nvim_set_keymap + + +-- https://old.reddit.com/r/neovim/comments/lrz18i/how_to_change_colorscheme_in_lua_without_any/ +g.colors_name = "nord" + + +-- Set up spacebar as leader +-- https://icyphox.sh/blog/nvim-lua/ +map('n', '<Space>', '', {}) +vim.g.mapleader = ' ' + +-- Set spaces > tabs, 4 as default +o.expandtab = true +o.tabstop = 4 +o.shiftwidth = 0 + +o.wrap = false +o.history = 1000 +-- Wildmode show list, complete to first result +o.wildignore = "*/app/cache,*/vendor,*/env,*.pyc,*/venv,*/__pycache__,*/venv" +o.splitright = true +o.splitbelow = true +o.spelllang = "en_ca" + + +local highlights = { + "Search ctermfg=166", + "DiffAdd cterm=BOLD ctermfg=NONE ctermbg=22", + "DiffDelete cterm=BOLD ctermfg=NONE ctermbg=52", + "DiffChange cterm=BOLD ctermfg=NONE ctermbg=23", + "DiffText cterm=BOLD ctermfg=NONE ctermbg=23", + "Normal guibg=NONE ctermbg=NONE", + "Search ctermbg=None ctermfg=166", + "PrimaryBlock ctermfg=06 ctermbg=NONE", + "SecondaryBlock ctermfg=06 ctermbg=NONE", + "Blanks ctermfg=07 ctermbg=NONE", + "ColorColumn ctermbg=cyan", +} +for i, highlight in ipairs(highlights) do + cmd('au VimEnter * hi ' .. highlight) +end + +-- Along with the highlight definition for ColorColumn above, these options +-- will set colored marks at certain line lengths +cmd([[au BufEnter *.py let w:m1=matchadd('ColorColumn', '\%81v', 100)]]) +cmd([[au BufEnter *.py let w:m2=matchadd('Error', '\%121v', 100)]]) +cmd([[au BufLeave *.py call clearmatches()"]]) + + + +options = { noremap = true } + +map('n', '<leader><leader>', ':noh<cr>', options) +map('i', 'jj', '<esc>', options) + +-- Visually select last copied text +map('n', 'gp', "`[v`]", options) +map('n', '<leader>ps', '<cmd>PackerSync<cr>', options) +map('n', '<leader>ff', '<cmd>Telescope find_files<cr>', options) +map('n', '<leader>fb', '<cmd>Telescope buffers<cr>', options) +map('n', '<leader>fj', '<cmd>Telescope jumplist<cr>', options) +map('n', '<leader>f/', '<cmd>Telescope live_grep<cr>', options) +map('n', '<leader>fa', '<cmd>Telescope grep_string<cr>', options) +map('n', '<leader>fg', "<cmd>lua require('telescope.builtin').git_status()<cr>", options) + +map('n', '<leader>du', '<cmd>diffupdate<cr>', options) +map('n', '<leader>dd', '<cmd>diffget<cr>', options) +map('n', '<leader>df', '<cmd>diffput<cr>', options) +map('n', '_', '[c', options) +map('n', '=', ']c', options) +-- Visually select line without ending +map('n', '<leader>v', '^v$h', options) + +-- Ledger Shortcuts +-- Copy the last entry +map('n', '<leader>ll', 'G{jV}y}p10l', options) +-- Copy the current entry to the bottom, copy date from last entry +map('n', '<leader>lb', '{jV}yGp10l{{jvEy}jvEpl', options) +-- Copy the current entry to the next position +map('n', '<leader>ln', '{jV}y}p10l', options) +-- Jump down from line to replace dollar ammount +map('n', '<leader>ld', 'j^f$lC', options) +-- After searching pull entry to current position +map('n', '<leader>ly', 'vapy<C-o>p{{jvEy}jvEpl', options) + + +map('n', '<leader>ep', 'ofrom pudb import set_trace; set_trace()<esc>', options) + + + + +map('n', '<c-w>t', "<cmd>tabnew<cr>", options) +map('n', '<c-w><c-f>', '<c-w>f<c-w>T', options) +map('n', '<c-w><c-]>', '<c-w>v<c-]><c-w>T', options) +map('n', '<c-w><c-t>', '<c-w>v<c-w>T', options) +map('n', '<leader>ee', '<cmd>e!<cr>', options) +map('n', '<expr> k', [[(v:count > 1 ? "m'" . v:count : '') . 'k']], options) +map('n', '<expr> j', [[(v:count > 1 ? "m'" . v:count : '') . 'j']], options) + + +map('n', '<leader>co', '<cmd>copen<cr>', options) +map('n', '<leader>cc', '<cmd>cclose<cr>', options) + + + + + +-- Status Line +-- https://icyphox.sh/blog/nvim-lua/ +local mode_map = { + ['n'] = 'normal', + ['no'] = 'n·operator pending', + ['v'] = 'visual', + ['V'] = 'v·line', + [''] = 'v·block', + ['s'] = 'select', + ['S'] = 's·line', + [''] = 's·block', + ['i'] = 'insert', + ['R'] = 'replace', + ['Rv'] = 'v·replace', + ['c'] = 'command', + ['cv'] = 'vim ex', + ['ce'] = 'ex', + ['r'] = 'prompt', + ['rm'] = 'more', + ['r?'] = 'confirm', + ['!'] = 'shell', + ['t'] = 'terminal' +} + +local function mode() + local m = vim.api.nvim_get_mode().mode + if mode_map[m] == nil then return m end + return '[' .. mode_map[m] .. '] ' +end + +local stl = { + '%#PrimaryBlock#', + mode(), + '%#SecondaryBlock#', + '%#Blanks#', + '%f', + '%m', + '%=', + '%#SecondaryBlock#', + '%l,%c ', + '%#PrimaryBlock#', + '%{&filetype}', +} + +o.statusline = table.concat(stl) --[[ vim.cmd "let g:python3_host_prog = expand('~/venv/bin/python3')" @@ -41,13 +196,79 @@ return require('packer').startup(function() 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate', config = function() - require "treesitterconf" + local present, ts_config = pcall(require, "nvim-treesitter.configs") + if not present then + return + end + + ts_config.setup { + ensure_installed = { + "python", + "lua", + "nix", + }, + highlight = { + enable = true, + }, + indent = { + enable = true, + } + } end, } use { "neovim/nvim-lspconfig", config = function() - require "lspconfigconf" + local present, nvim_lsp = pcall(require, "lspconfig") + if not present then + return + end + + -- 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 <c-x><c-o> + 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', '<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', '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', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts) + buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) + buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts) + buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) + buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) + buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts) + buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) + buf_set_keymap('n', '<space>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', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts) + buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts) + + end + + -- Use a loop to conveniently call 'setup' on multiple servers and + -- map buffer local keybindings when the language server attaches + -- local servers = { 'pyls', 'rust_analyzer', 'tsserver' } + local servers = { 'pylsp' } + for _, lsp in ipairs(servers) do + nvim_lsp[lsp].setup { + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + } + } + end end, } use 'nvim-treesitter/playground' @@ -55,7 +276,66 @@ return require('packer').startup(function() 'nvim-telescope/telescope.nvim', requires = { {'nvim-lua/plenary.nvim'} }, config = function() - require "telescopeconf" + local present, actions = pcall(require, "telescope.actions") + if not present then + return + end + + local present, tele_config = pcall(require, "telescope") + if not present then + return + end + + tele_config.setup{ + defaults = { + mappings = { + i = { + ["<esc>"] = actions.close, + ['<C-u>'] = false, + }, + }, + vimgrep_arguments = { + 'rg', + '--color=never', + '--no-heading', + '--with-filename', + '--line-number', + '--column', + '--smart-case' + }, + prompt_prefix = "> ", + selection_caret = "> ", + entry_prefix = " ", + initial_mode = "insert", + selection_strategy = "reset", + sorting_strategy = "descending", + layout_strategy = "horizontal", + layout_config = { + horizontal = { + mirror = false, + }, + vertical = { + mirror = false, + }, + }, + file_sorter = require'telescope.sorters'.get_fuzzy_file, + file_ignore_patterns = {}, + generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter, + winblend = 0, + border = {}, + borderchars = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' }, + color_devicons = true, + use_less = true, + path_display = {}, + set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil, + file_previewer = require'telescope.previewers'.vim_buffer_cat.new, + grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new, + qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new, + + -- Developer configurations: Not meant for general override + buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker + } + } end, } -- use 'kevinhwang91/rnvimr' |