diff --git a/after/plugin/defaults.lua b/after/plugin/defaults.lua new file mode 100644 index 00000000..ef1ce4e8 --- /dev/null +++ b/after/plugin/defaults.lua @@ -0,0 +1,70 @@ +-- prev/next tab +vim.keymap.set('n', 'H', 'gT') +vim.keymap.set('n', 'L', 'gt') + +-- line bubbling + +-- nnoremap :m .+1== +-- nnoremap :m .-2== +vim.keymap.set('n', '', ':m .+1==', { noremap = true }) +vim.keymap.set('n', '', ':m .-2==', { noremap = true }) -- conflicts with "signature help" from LSP + +-- inoremap :m .+1==gi +-- inoremap :m .-2==gi +vim.keymap.set('i', '', ':m .+1==gi', { noremap = true }) +vim.keymap.set('i', '', ':m .-2==gi', { noremap = true }) + +-- vnoremap :m '>+1gv=gv +-- vnoremap :m '<-2gv=gv +vim.keymap.set('v', '', ":m '<-2gv=gv", { noremap = true }) +vim.keymap.set('v', '', ":m '>+1gv=gv", { noremap = true }) + +vim.o.inccommand = "nosplit" + +-- vim.cmd([[ +-- autocmd FileType dirvish nmap - +-- ]]) + +vim.diagnostic.config({ + virtual_text = { + -- source = "always", -- Or "if_many" + prefix = '●', -- Could be '■', '▎', 'x' + }, + severity_sort = true, + float = { + source = "always", -- Or "if_many" + }, +}) +-- vim.o.updatetime = 250 +-- vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]] + + +local signs = { Error = "✗", Warn = "⚠", Hint = "➤", Info = "i" } +for type, icon in pairs(signs) do + local hl = "DiagnosticSign" .. type + vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) +end + + +-- function PrintDiagnostics(opts, bufnr, line_nr, client_id) +-- bufnr = bufnr or 0 +-- line_nr = line_nr or (vim.api.nvim_win_get_cursor(0)[1] - 1) +-- opts = opts or { ['lnum'] = line_nr } +-- +-- local line_diagnostics = vim.diagnostic.get(bufnr, opts) +-- if vim.tbl_isempty(line_diagnostics) then return end +-- +-- local diagnostic_message = "" +-- for i, diagnostic in ipairs(line_diagnostics) do +-- diagnostic_message = diagnostic_message .. string.format("%d: %s", i, diagnostic.message or "") +-- print(diagnostic_message) +-- if i ~= #line_diagnostics then +-- diagnostic_message = diagnostic_message .. "\n" +-- end +-- end +-- vim.api.nvim_echo({ { diagnostic_message, "Normal" } }, false, {}) +-- end +-- +-- vim.cmd [[ autocmd! CursorHold * lua PrintDiagnostics() ]] + +-- vim: ts=2 sts=2 sw=2 et diff --git a/init.lua b/init.lua index fb0252cc..a84edfb4 100644 --- a/init.lua +++ b/init.lua @@ -84,7 +84,7 @@ require('lazy').setup({ -- Useful status updates for LSP -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` - { 'j-hui/fidget.nvim', opts = {} }, + { 'j-hui/fidget.nvim', opts = {} }, -- Additional lua configuration, makes nvim stuff amazing! 'folke/neodev.nvim', @@ -107,8 +107,7 @@ require('lazy').setup({ }, }, - -- Useful plugin to show you pending keybinds. - { 'folke/which-key.nvim', opts = {} }, + { 'folke/which-key.nvim', opts = {} }, { -- Adds git releated signs to the gutter, as well as utilities for managing changes 'lewis6991/gitsigns.nvim', @@ -145,7 +144,7 @@ require('lazy').setup({ opts = { options = { icons_enabled = false, - theme = 'onedark', + theme = 'base16', component_separators = '|', section_separators = '', }, @@ -164,7 +163,7 @@ require('lazy').setup({ }, -- "gc" to comment visual regions/lines - { 'numToStr/Comment.nvim', opts = {} }, + { 'numToStr/Comment.nvim', opts = {} }, -- Fuzzy Finder (files, lsp, etc) { 'nvim-telescope/telescope.nvim', branch = '0.1.x', dependencies = { 'nvim-lua/plenary.nvim' } }, @@ -194,7 +193,7 @@ require('lazy').setup({ -- NOTE: Next Step on Your Neovim Journey: Add/Configure additional "plugins" for kickstart -- These are some example plugins that I've included in the kickstart repository. -- Uncomment any of the lines below to enable them. - -- require 'kickstart.plugins.autoformat', + require 'kickstart.plugins.autoformat', -- require 'kickstart.plugins.debug', -- NOTE: The import below automatically adds your own plugins, configuration, etc from `lua/custom/plugins/*.lua` @@ -309,7 +308,7 @@ require('nvim-treesitter.configs').setup { ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'typescript', 'vimdoc', 'vim' }, -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!) - auto_install = false, + auto_install = true, highlight = { enable = true }, indent = { enable = true, disable = { 'python' } }, @@ -403,7 +402,7 @@ local on_attach = function(_, bufnr) -- See `:help K` for why this keymap nmap('K', vim.lsp.buf.hover, 'Hover Documentation') - nmap('', vim.lsp.buf.signature_help, 'Signature Documentation') + -- nmap('', vim.lsp.buf.signature_help, 'Signature Documentation') -- Lesser used LSP functionality nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') @@ -425,12 +424,14 @@ end -- Add any additional override configuration in the following tables. They will be passed to -- the `settings` field of the server config. You must look up that documentation yourself. local servers = { - -- clangd = {}, - -- gopls = {}, - -- pyright = {}, - -- rust_analyzer = {}, - -- tsserver = {}, - + clangd = {}, + cssls = {}, + eslint = {}, + gopls = {}, + pyright = {}, + rust_analyzer = {}, + stylelint_lsp = {}, + tsserver = {}, lua_ls = { Lua = { workspace = { checkThirdParty = false }, diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index be0eb9d8..98029f39 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -1,5 +1,26 @@ --- You can add your own plugins here or in other files in this directory! --- I promise not to create any merge conflicts in this directory :) --- --- See the kickstart.nvim README for more information -return {} +return { + { "github/copilot.vim", }, + { "myusuf3/numbers.vim", }, + { "tpope/vim-eunuch", }, + { "tpope/vim-repeat", }, + { "tpope/vim-surround" }, + + { + "nvim-tree/nvim-web-devicons", + opts = {} + }, + + { + "windwp/nvim-autopairs", + config = function() + require("nvim-autopairs").setup {} + end, + }, + + { + "kristijanhusak/vim-dirvish-git", + dependencies = { + "justinmk/vim-dirvish", + }, + }, +} diff --git a/lua/custom/plugins/nvim-base16.lua b/lua/custom/plugins/nvim-base16.lua new file mode 100644 index 00000000..6e8be747 --- /dev/null +++ b/lua/custom/plugins/nvim-base16.lua @@ -0,0 +1,10 @@ +return { + 'norcalli/nvim-base16.lua', + lazy = false, + priority = 1000, + config = function() + local base16 = require 'base16' + + base16(base16.themes[vim.env.BASE16_THEME or "3024"], true) + end, +} diff --git a/lua/custom/plugins/reveal.lua b/lua/custom/plugins/reveal.lua new file mode 100644 index 00000000..95a67294 --- /dev/null +++ b/lua/custom/plugins/reveal.lua @@ -0,0 +1,20 @@ +-- RevealInFinder +-- --------------------------------------------------------------------------- + +-- set this to leader-e +vim.cmd([[ +function! s:RevealInFinder() + if filereadable(expand("%")) + let l:command = "open -R %" + elseif getftype(expand("%:p:h")) == "dir" + let l:command = "open %:p:h" + else + let l:command = "open ." + endif + execute ":silent! !" . l:command + redraw! +endfunction +command! Reveal call RevealInFinder() +]]) + +return {} diff --git a/lua/kickstart/plugins/autoformat.lua b/lua/kickstart/plugins/autoformat.lua index bc56b15b..1bbd622e 100644 --- a/lua/kickstart/plugins/autoformat.lua +++ b/lua/kickstart/plugins/autoformat.lua @@ -46,9 +46,9 @@ return { -- Tsserver usually works poorly. Sorry you work with bad languages -- You can remove this line if you know what you're doing :) - if client.name == 'tsserver' then - return - end + -- if client.name == 'tsserver' then + -- return + -- end -- Create an autocmd that will run *before* we save the buffer. -- Run the formatting command for the LSP that has just attached.