浏览代码

samus: added lua configuration

Douglas A 2 年之前
父节点
当前提交
cd9b836d0b
共有 7 个文件被更改,包括 133 次插入149 次删除
  1. 1 0
      bash/aliases
  2. 41 45
      nvim/after/plugin/lsp.lua
  3. 9 0
      nvim/after/plugin/telescope.lua
  4. 19 0
      nvim/after/plugin/treesitter.lua
  5. 63 0
      nvim/init.lua
  6. 0 90
      nvim/init.vim
  7. 0 14
      nvim/main.sh

+ 1 - 0
bash/aliases

@@ -4,4 +4,5 @@ alias vim=nvim
 alias ls="ls --color"
 alias grep="grep --color"
 alias egrep="grep -e"
+alias go=/home/cmte/go/bin/go1.19.1
 

+ 41 - 45
nvim/lua/init.lua → nvim/after/plugin/lsp.lua

@@ -1,36 +1,40 @@
---Set highlight on search
-vim.o.hlsearch = false
-
---Set statusbar
-vim.g.lightline = {
-        colorscheme = 'onedark',
-        active = { left = { { 'mode', 'paste' }, { 'gitbranch', 'readonly', 'filename', 'modified' } } },
-        component_function = { gitbranch = 'fugitive#head' },
-}
-
--- Highlight on yank
-vim.api.nvim_exec(
-[[
-        augroup YankHighlight
-        autocmd!
-        autocmd TextYankPost * silent! lua vim.highlight.on_yank()
-        augroup end
-]],
-false
-)
-
-local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
+local lsp = require('lsp-zero')
+lsp.preset('recommended')
+
+lsp.ensure_installed({
+	'tsserver',
+	'eslint',
+	'sumneko_lua',
+	'gopls',
+	'rust_analyzer',
+	'clangd',
+	'jedi_language_server'
+})
+
+
+-- Fix Undefined global 'vim'
+lsp.configure('sumneko_lua', {
+    settings = {
+        Lua = {
+            diagnostics = {
+                globals = { 'vim' }
+            }
+        }
+    }
+})
+
+
 local cmp = require'cmp'
+local cmp_select = {behavior = cmp.SelectBehavior.Select}
 
 cmp.setup({
         mapping = {
                 ["<C-e>"] = cmp.mapping.close(),
-                ["<C-p>"] = cmp.mapping.select_prev_item(),
-                ["<C-n>"] = cmp.mapping.select_next_item(),
+                ["<C-p>"] = cmp.mapping.select_prev_item(cmp_select),
+                ["<C-n>"] = cmp.mapping.select_next_item(cmp_select),
                 ["<C-d>"] = cmp.mapping.scroll_docs(-4),
                 ["<C-f>"] = cmp.mapping.scroll_docs(4),
                 ["<C-y>"] = cmp.mapping.confirm {
-                        behavior = cmp.ConfirmBehavior.Insert,
                         select = true,
                 },
                 ["<C-space>"] = cmp.mapping.complete(),
@@ -47,9 +51,9 @@ cmp.setup({
         },
 
         snippet = {
-                expand = function(args) 
+                expand = function(args)
                         require('luasnip').lsp_expand(args.body)
-                end,      
+                end,
         },
 
         experimental = {
@@ -57,15 +61,11 @@ cmp.setup({
         }
 })
 
+
 local opts = { noremap=true, silent=true }
-vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
-vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
-vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
-vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
 
-local on_attach = function(client, bufnr)
-  -- Enable completion triggered by <c-x><c-o>
-  vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
+lsp.on_attach(function(client, bufnr)
+	  vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
 
   -- Mappings.
   -- See `:help vim.lsp.*` for documentation on any of the below functions
@@ -82,16 +82,12 @@ local on_attach = function(client, bufnr)
   vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
   vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
   vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
-end
+
+  vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
+
+end)
+
+
+lsp.setup()
 
 
-local servers = { 'gopls', 'clangd', 'jedi_language_server' , 'rust_analyzer', 'tsserver' }
-for _, lsp in pairs(servers) do
-  require('lspconfig')[lsp].setup {
-    on_attach = on_attach,
-    flags = {
-      -- This will be the default in neovim 0.7+
-      debounce_text_changes = 150,
-    }
-  }
-end

+ 9 - 0
nvim/after/plugin/telescope.lua

@@ -0,0 +1,9 @@
+local builtin = require('telescope.builtin')
+
+
+vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
+vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
+vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
+vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
+
+

+ 19 - 0
nvim/after/plugin/treesitter.lua

@@ -0,0 +1,19 @@
+require'nvim-treesitter.configs'.setup {
+  -- A list of parser names, or "all"
+  ensure_installed = { "c", "lua", "rust", "javascript", "typescript", "python", "bash" },
+
+  -- Install parsers synchronously (only applied to `ensure_installed`)
+  sync_install = false,
+
+  -- Automatically install missing parsers when entering buffer
+  -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
+  auto_install = true,
+
+
+  highlight = {
+    -- `false` will disable the whole extension
+    enable = true,
+
+    additional_vim_regex_highlighting = false,
+  },
+}

+ 63 - 0
nvim/init.lua

@@ -0,0 +1,63 @@
+vim.g.mapleader = " "
+
+vim.opt.nu = true
+vim.opt.relativenumber = true
+
+vim.opt.tabstop = 4
+vim.opt.softtabstop = 4
+vim.opt.shiftwidth = 4
+vim.opt.expandtab = true
+vim.opt.smartindent = true
+
+vim.opt.wrap = false
+
+vim.opt.swapfile = false
+vim.opt.backup = false
+vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
+vim.opt.undofile = true
+
+vim.opt.hlsearch = false
+vim.opt.incsearch = true
+
+vim.opt.termguicolors = true
+
+vim.opt.scrolloff = 8
+vim.opt.signcolumn = "yes"
+vim.opt.isfname:append("@-@")
+
+vim.opt.updatetime = 50
+
+vim.opt.colorcolumn = "80"
+
+local Plug = vim.fn['plug#']
+
+vim.call('plug#begin', '~/.config/nvim/plugged')
+
+Plug 'nvim-lua/plenary.nvim'
+Plug 'nvim-telescope/telescope.nvim'
+Plug 'marko-cerovac/material.nvim'
+Plug('nvim-treesitter/nvim-treesitter', {['do'] = 'TSUpdate'})
+
+Plug 'neovim/nvim-lspconfig'
+Plug 'williamboman/mason.nvim'
+Plug 'williamboman/mason-lspconfig.nvim'
+
+Plug 'hrsh7th/nvim-cmp'
+Plug 'hrsh7th/cmp-buffer'
+Plug 'hrsh7th/cmp-path'
+Plug 'saadparwaiz1/cmp_luasnip'
+Plug 'hrsh7th/cmp-nvim-lsp'
+Plug 'hrsh7th/cmp-nvim-lua'
+
+Plug 'L3MON4D3/LuaSnip'
+Plug 'rafamadriz/friendly-snippets'
+
+Plug 'VonHeikemen/lsp-zero.nvim'
+
+vim.call('plug#end')
+
+vim.g.material_style = "palenight"
+vim.cmd "colorscheme material"
+
+
+

+ 0 - 90
nvim/init.vim

@@ -1,90 +0,0 @@
-syntax on
-filetype plugin indent on
-
-
-let mapleader = " "
-
-" Plugins
-call plug#begin('~/.vim/plugged')
-	
-	Plug 'neovim/nvim-lspconfig'
-
-	Plug 'neovim/nvim-lspconfig'
-    Plug 'hrsh7th/cmp-nvim-lsp'
-	Plug 'hrsh7th/cmp-buffer'
-	Plug 'hrsh7th/cmp-path'
-	Plug 'hrsh7th/cmp-cmdline'
-
-	" For vsnip users.
-    Plug 'L3MON4D3/LuaSnip'
-	Plug 'hrsh7th/nvim-cmp'
-    Plug 'hrsh7th/cmp-buffer'
-    Plug 'hrsh7th/cmp-path'
-    Plug 'hrsh7th/cmp-nvim-lua'
-    Plug 'hrsh7th/cmp-nvim-lsp'
-    Plug 'saadparwaiz1/cmp_luasnip'
-	""Plug 'hrsh7th/vim-vsnip'
-
-    Plug 'chriskempson/base16-vim'
-	Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}  " We recommend updating the parsers on update
-	Plug 'kaicataldo/material.vim', { 'branch': 'main' }
-    Plug 'nvim-lua/popup.nvim'
-    Plug 'nvim-lua/plenary.nvim'
-    Plug 'nvim-telescope/telescope.nvim'
-    Plug 'itchyny/lightline.vim'
-    Plug 'joshdick/onedark.vim'
-
-    Plug 'rust-lang/rust.vim'
-
-
-call plug#end()
-
-lua require('init')
-" General vim configurations
-set relativenumber
-set colorcolumn=80
-set updatetime=50
-set tabstop=4 softtabstop=4
-set expandtab
-set smartindent
-set completeopt=menu,menuone,noselect
-set noswapfile
-set nobackup
-set scrolloff=8
-set signcolumn=yes
-set nowrap
-set nu
-set hidden
-set undodir=~/.config/nvim/undodir
-set undofile
-
-
-"  Theme settings
-"  https://github.com/kaicataldo/material.vim
-if (has('termguicolors'))
-  set termguicolors
-endif
-let g:material_theme_style = 'darker'
-colorscheme material
-
-
-" Lsp configuration for multiple languages
-
-
-" Use <Tab> and <S-Tab> to navigate through popup menu
-"inoremap <expr> <Tab>   pumvisible() ? "\<C-n>" : "\<Tab>"
-"inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
-
-" Tree-sitter config
-lua require'nvim-treesitter.configs'.setup { highlight = { enable = true }, incremental_selection = { enable = true }, textobjects = { enable = true }}
-
-" keyboard shortcut options
-nnoremap <leader>n gt
-nnoremap <leader>m gT
-
-" Telescope shortcuts
-nnoremap <leader>ff <cmd>Telescope find_files<cr>
-nnoremap <leader>fg <cmd>Telescope live_grep<cr>
-nnoremap <leader>fb <cmd>Telescope buffers<cr>
-nnoremap <leader>fh <cmd>Telescope help_tags<cr>
-

+ 0 - 14
nvim/main.sh

@@ -1,14 +0,0 @@
-#!/bin/sh
-
-HOME=/home/cmte
-DOTFILES=/home/cmte/dotfiles
-LOCAL=$HOME/.config/nvim
-
-# if $LOCAL does not exists, create it
-test -d $LOCAL || mkdir -p $LOCAL
-
-rm $LOCAL/init.vim 2>&1 > /dev/null
-rm $LOCAL/lua/init.lua 2>&1 > /dev/null
-ln -s $DOTFILES/nvim/init.vim $LOCAL/init.vim
-mkdir -p $LOCAL/lua
-ln -s $DOTFILES/nvim/lua/init.lua $LOCAL/lua/init.lua