From fe7c04d6517e3c14067c7a41bdd5a840272c105e Mon Sep 17 00:00:00 2001 From: sajenim Date: Tue, 2 May 2023 16:54:22 +0800 Subject: [PATCH] move nvim to neovim-jsm submodule --- .gitmodules | 3 + config/neovim-jsm | 1 + config/nvim/init.lua | 86 ------------------ .../lua/user/config/server_configurations.lua | 33 ------- config/nvim/lua/user/lspconfig.lua | 40 --------- config/nvim/lua/user/lualine.lua | 87 ------------------- config/nvim/lua/user/nvim-cmp.lua | 59 ------------- 7 files changed, 4 insertions(+), 305 deletions(-) create mode 160000 config/neovim-jsm delete mode 100644 config/nvim/init.lua delete mode 100644 config/nvim/lua/user/config/server_configurations.lua delete mode 100644 config/nvim/lua/user/lspconfig.lua delete mode 100644 config/nvim/lua/user/lualine.lua delete mode 100644 config/nvim/lua/user/nvim-cmp.lua diff --git a/.gitmodules b/.gitmodules index a0f6918..a079a89 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "home-manager/jade/xmonad-jsm"] path = home-manager/jade/xmonad-jsm url = git@github.com:sajenim/xmonad-jsm.git +[submodule "config/neovim-jsm"] + path = config/neovim-jsm + url = git@github.com:sajenim/neovim-jsm.git diff --git a/config/neovim-jsm b/config/neovim-jsm new file mode 160000 index 0000000..d1d1be9 --- /dev/null +++ b/config/neovim-jsm @@ -0,0 +1 @@ +Subproject commit d1d1be9d56ebbf4d5b4456228c929059825ac93d diff --git a/config/nvim/init.lua b/config/nvim/init.lua deleted file mode 100644 index d5244d9..0000000 --- a/config/nvim/init.lua +++ /dev/null @@ -1,86 +0,0 @@ --- --- Vim Options --- - --- Disable vim's built in file explorer -vim.g.loaded_netrw = 1 -vim.g.loaded_netrwPlugin = 1 - --- {{{ General Configuration -vim.opt.termguicolors = true -- set termguicolors to enable highlight groups -vim.opt.number = true -- print line numbers -vim.opt.showmode = false -- if in insert, replace or visual mode put a message on the last line -vim.opt.swapfile = false -- disable swap file -vim.opt.clipboard = 'unnamedplus' -- use the system clipboard as the default register --- }}} - --- {{{ Spaces & Tabs -vim.opt.tabstop = 2 -- number of visual spaces per TAB -vim.opt.softtabstop = 2 -- number of spaces in tab when editing -vim.opt.shiftwidth = 2 -- number of spaces to use for autoindent -vim.opt.expandtab = true -- tabs are space -vim.opt.autoindent = true -vim.opt.copyindent = true -- copy indent from the previous line --- }}} - --- {{{ Keybinds -vim.g.mapleader = ' ' - -local opts = { noremap = true, silent = true } -local map = vim.api.nvim_set_keymap - - -map('n', 't', ':NvimTreeToggle', opts) --- }}} - --- --- Gruvbox Material --- - --- For dark version -vim.opt.background = 'dark' - --- Set contrast -vim.g.gruvbox_material_background = 'hard' - --- For better performance -vim.g.gruvbox_material_better_performance = 0 - --- To disable italic in `Comment`, set this option to `1` -vim.g.gruvbox_material_disable_italic_comment = 1 - --- To enable bold in function name just like the original gruvbox, set this option to `1` -vim.g.gruvbox_material_enable_bold = 0 - --- To enable italic in this color scheme, set this option to `1` -vim.g.gruvbox_material_enable_italic = 1 - --- Set the colorscheme -vim.cmd [[colorscheme gruvbox-material]] - - --- --- Load and run our libraries --- - --- load defaults -require('nvim-tree').setup() -require('Comment').setup() -require('gitsigns').setup() - --- user -require('user.lspconfig') -require('user.nvim-cmp') -require('user.lualine') - --- user.config -require('user.config.server_configurations') - - --- Enable syntax highlighting -require('nvim-treesitter.configs').setup { - highlight = { - enable = true, - } -} - diff --git a/config/nvim/lua/user/config/server_configurations.lua b/config/nvim/lua/user/config/server_configurations.lua deleted file mode 100644 index 2784de0..0000000 --- a/config/nvim/lua/user/config/server_configurations.lua +++ /dev/null @@ -1,33 +0,0 @@ --- Setup language servers -require'lspconfig'.clangd.setup{} -require'lspconfig'.nil_ls.setup{} - --- haskell-language-server -require'lspconfig'.hls.setup { - filetypes = { 'haskell', 'lhaskell', 'cabal' }, -} - --- lua-language-server -require'lspconfig'.lua_ls.setup { - settings = { - Lua = { - runtime = { - -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) - version = 'LuaJIT', - }, - diagnostics = { - -- Get the language server to recognize the `vim` global - globals = {'vim'}, - }, - workspace = { - -- Make the server aware of Neovim runtime files - library = vim.api.nvim_get_runtime_file("", true), - checkThirdParty = false, - }, - -- Do not send telemetry data containing a randomized but unique identifier - telemetry = { - enable = false, - }, - }, - }, -} diff --git a/config/nvim/lua/user/lspconfig.lua b/config/nvim/lua/user/lspconfig.lua deleted file mode 100644 index e278cc1..0000000 --- a/config/nvim/lua/user/lspconfig.lua +++ /dev/null @@ -1,40 +0,0 @@ --- Global mappings. --- See `:help vim.diagnostic.*` for documentation on any of the below functions -vim.keymap.set('n', 'de', vim.diagnostic.enable) -vim.keymap.set('n', 'dd', vim.diagnostic.disable) -vim.keymap.set('n', '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', 'q', vim.diagnostic.setloclist) - --- Use LspAttach autocommand to only map the following keys --- after the language server attaches to the current buffer -vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('UserLspConfig', {}), - callback = function(ev) - -- Enable completion triggered by - vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' - - -- Buffer local mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - 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', '', vim.lsp.buf.signature_help, opts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) - vim.keymap.set('n', 'wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, opts) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) - vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) - vim.keymap.set('n', 'f', function() - vim.lsp.buf.format { async = true } - end, opts) - end, -}) - diff --git a/config/nvim/lua/user/lualine.lua b/config/nvim/lua/user/lualine.lua deleted file mode 100644 index f7a8817..0000000 --- a/config/nvim/lua/user/lualine.lua +++ /dev/null @@ -1,87 +0,0 @@ --- Use external source for diff -local function diff_source() - local gitsigns = vim.b.gitsigns_status_dict - if gitsigns then - return { - added = gitsigns.added, - modified = gitsigns.changed, - removed = gitsigns.removed - } - end -end - --- Configure the statusline -require('lualine').setup { - options = { - -- Set our theme and icon status - icons_enabled = true, - theme = 'gruvbox-material', - - -- Define our seperators - component_separators = { left = '', right = ''}, - section_separators = { left = '', right = ''}, - - -- Disable some filetypes - disabled_filetypes = { - statusline = {}, - winbar = {}, - }, - - -- If current filetype in in this list it'll - -- always be drawn as inactive statusline - ignore_focus = {}, - - -- When set to true, left sections i.e. 'a','b' and 'c' - -- can't take over the entire statusline even - -- if neither of 'x', 'y' or 'z' are present. - always_divide_middle = true, - - -- enable global statusline (have a single statusline - -- at bottom of neovim instead of one for every window). - globalstatus = true, - - -- sets how often lualine should refreash it's contents (in ms) - refresh = { - statusline = 1000, - tabline = 1000, - winbar = 1000, - } - }, - - -- Setup our active statusline components - sections = { - lualine_a = {'mode'}, - lualine_b = { {'FugitiveHead', icon = ''}, {'diff', source = diff_source}, 'diagnostics'}, - lualine_c = {'filename'}, - lualine_x = {'encoding', 'fileformat', 'filetype'}, - lualine_y = {'progress'}, - lualine_z = {'location'} - }, - - -- Setup our inactive statusline components - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = {'filename'}, - lualine_x = {'location'}, - lualine_y = {}, - lualine_z = {} - }, - - -- Setup our tabline components - tabline = { - lualine_a = {'buffers'}, - lualine_b = {'searchcount'}, - lualine_c = {}, - lualine_x = {}, - lualine_y = {}, - lualine_z = {'tabs'} - }, - - -- Setup our winbar components - winbar = {}, - inactive_winbar = {}, - - -- Load our extensions - extensions = {'fugitive', 'nvim-tree'} -} diff --git a/config/nvim/lua/user/nvim-cmp.lua b/config/nvim/lua/user/nvim-cmp.lua deleted file mode 100644 index 9510e46..0000000 --- a/config/nvim/lua/user/nvim-cmp.lua +++ /dev/null @@ -1,59 +0,0 @@ --- Add additional capabilities supported by nvim-cmp -local capabilities = require("cmp_nvim_lsp").default_capabilities() - -local lspconfig = require('lspconfig') - --- Enable some language servers with the additional completion capabilities offered by nvim-cmp -local servers = { 'clangd', 'lua_ls', 'nil_ls' } -for _, lsp in ipairs(servers) do - lspconfig[lsp].setup { - -- on_attach = my_custom_on_attach, - capabilities = capabilities, - } -end - --- luasnip setup -local luasnip = require 'luasnip' - --- nvim-cmp setup -local cmp = require 'cmp' -cmp.setup { - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.scroll_docs(-4), -- Up - [''] = cmp.mapping.scroll_docs(4), -- Down - -- C-b (back) C-f (forward) for snippet placeholder navigation. - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Replace, - select = false, - }, - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - else - fallback() - end - end, { 'i', 's' }), - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { 'i', 's' }), - }), - sources = { - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - }, -} -