Complete rehaul of nvim configuration with lsp and treesitter.
This commit is contained in:
parent
41298489c4
commit
bef2632ee9
16
.config/nvim/after/plugin/lsp.lua
Normal file
16
.config/nvim/after/plugin/lsp.lua
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
local lsp = require('lsp-zero').preset({})
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = true
|
||||||
|
})
|
||||||
|
|
||||||
|
lsp.on_attach(function(client, bufnr)
|
||||||
|
lsp.default_keymaps({buffer = bufnr})
|
||||||
|
-- set tagfunc to empty to use default tag jumpingn behaviour withouth going through the lsp
|
||||||
|
vim.opt.tagfunc = ""
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- (Optional) Configure lua language server for neovim
|
||||||
|
require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls())
|
||||||
|
|
||||||
|
lsp.setup()
|
27
.config/nvim/after/plugin/treesitter.lua
Normal file
27
.config/nvim/after/plugin/treesitter.lua
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
-- A list of parser names, or "all" (the five listed parsers should always be installed)
|
||||||
|
ensure_installed = { "c", "cpp", "javascript", "lua", "typescript", "vim", "vimdoc", "query" },
|
||||||
|
|
||||||
|
-- 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,
|
||||||
|
|
||||||
|
-- List of parsers to ignore installing (for "all")
|
||||||
|
ignore_install = { "javascript" },
|
||||||
|
|
||||||
|
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
|
||||||
|
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
|
||||||
|
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
|
||||||
|
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||||
|
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||||
|
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||||
|
-- Instead of true it can also be a list of languages
|
||||||
|
additional_vim_regex_highlighting = false,
|
||||||
|
},
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1
.config/nvim/init.lua
Normal file
1
.config/nvim/init.lua
Normal file
@ -0,0 +1 @@
|
|||||||
|
require("sheldonmlee")
|
@ -1,49 +0,0 @@
|
|||||||
filetype plugin on
|
|
||||||
|
|
||||||
syntax on
|
|
||||||
|
|
||||||
" numbering
|
|
||||||
set number
|
|
||||||
set relativenumber
|
|
||||||
|
|
||||||
" indenting
|
|
||||||
set autoindent
|
|
||||||
set smartindent
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
filetype plugin indent on
|
|
||||||
|
|
||||||
" softwrapping
|
|
||||||
set wrap linebreak
|
|
||||||
|
|
||||||
" search
|
|
||||||
set incsearch
|
|
||||||
"set nohlsearch
|
|
||||||
set ignorecase
|
|
||||||
set smartcase
|
|
||||||
" live changes when !s/search/replace/
|
|
||||||
set inccommand=split
|
|
||||||
|
|
||||||
" theme
|
|
||||||
set termguicolors
|
|
||||||
"set background=dark
|
|
||||||
"colorscheme solarized8
|
|
||||||
autocmd vimenter * ++nested colorscheme gruvbox
|
|
||||||
|
|
||||||
" transparancy for background
|
|
||||||
"hi Normal guibg=NONE ctermbg=NONE
|
|
||||||
|
|
||||||
" utf-8 encoding
|
|
||||||
set encoding=utf8
|
|
||||||
set fileencoding=utf8
|
|
||||||
|
|
||||||
" Remapping
|
|
||||||
noremap <C-Space> :Files<Enter>
|
|
||||||
|
|
||||||
" plugins
|
|
||||||
call plug#begin('~/.local/share/nvim/site/plugged')
|
|
||||||
Plug 'lervag/vimtex'
|
|
||||||
Plug 'morhetz/gruvbox'
|
|
||||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
|
||||||
Plug 'junegunn/fzf.vim'
|
|
||||||
call plug#end()
|
|
3
.config/nvim/lua/sheldonmlee/init.lua
Normal file
3
.config/nvim/lua/sheldonmlee/init.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
require("sheldonmlee.packer")
|
||||||
|
require("sheldonmlee.remap")
|
||||||
|
require("sheldonmlee.set")
|
45
.config/nvim/lua/sheldonmlee/packer.lua
Normal file
45
.config/nvim/lua/sheldonmlee/packer.lua
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
|
||||||
|
|
||||||
|
-- Only required if you have packer configured as `opt`
|
||||||
|
vim.cmd [[packadd packer.nvim]]
|
||||||
|
|
||||||
|
return require('packer').startup(function(use)
|
||||||
|
-- Packer can manage itself
|
||||||
|
use 'wbthomason/packer.nvim'
|
||||||
|
|
||||||
|
use 'junegunn/fzf.vim'
|
||||||
|
|
||||||
|
use {
|
||||||
|
'morhetz/gruvbox',
|
||||||
|
-- below adapted from old the old vimconfig commands:
|
||||||
|
-- set termguicolors
|
||||||
|
-- autocmd vimenter * ++nested colorscheme gruvbox
|
||||||
|
config = function()
|
||||||
|
vim.cmd('set termguicolors')
|
||||||
|
vim.cmd('autocmd vimenter * ++nested colorscheme gruvbox')
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
use ('nvim-treesitter/nvim-treesitter', { run = ':TSUpdate' })
|
||||||
|
|
||||||
|
use {
|
||||||
|
'VonHeikemen/lsp-zero.nvim',
|
||||||
|
branch = 'v2.x',
|
||||||
|
requires = {
|
||||||
|
-- LSP Support
|
||||||
|
{'neovim/nvim-lspconfig'}, -- Required
|
||||||
|
{ -- Optional
|
||||||
|
'williamboman/mason.nvim',
|
||||||
|
run = function()
|
||||||
|
pcall(vim.cmd, 'MasonUpdate')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{'williamboman/mason-lspconfig.nvim'}, -- Optional
|
||||||
|
|
||||||
|
-- Autocompletion
|
||||||
|
{'hrsh7th/nvim-cmp'}, -- Required
|
||||||
|
{'hrsh7th/cmp-nvim-lsp'}, -- Required
|
||||||
|
{'L3MON4D3/LuaSnip'}, -- Required
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end)
|
5
.config/nvim/lua/sheldonmlee/remap.lua
Normal file
5
.config/nvim/lua/sheldonmlee/remap.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
|
||||||
|
vim.keymap.set("n", "<leader>f", vim.cmd.Files)
|
||||||
|
vim.keymap.set("n", "<leader>t", vim.cmd.Tags)
|
||||||
|
vim.keymap.set("n", "<leader>rg", vim.cmd.Rg)
|
18
.config/nvim/lua/sheldonmlee/set.lua
Normal file
18
.config/nvim/lua/sheldonmlee/set.lua
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
vim.opt.number = true
|
||||||
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
|
vim.opt.smartindent = true
|
||||||
|
vim.opt.tabstop = 4
|
||||||
|
vim.opt.softtabstop = 4
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
|
||||||
|
vim.opt.incsearch = true
|
||||||
|
vim.opt.ignorecase = true
|
||||||
|
vim.opt.smartcase = true
|
||||||
|
|
||||||
|
vim.opt.undodir = os.getenv("HOME") .. "/.config/nvim/.undodir"
|
||||||
|
vim.opt.undofile = true
|
||||||
|
|
||||||
|
vim.opt.scrolloff = 8
|
||||||
|
-- set sign col to hide if there is no warning/error etc.
|
||||||
|
vim.opt.signcolumn = 'auto:1'
|
154
.config/nvim/plugin/packer_compiled.lua
Normal file
154
.config/nvim/plugin/packer_compiled.lua
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
-- Automatically generated packer.nvim plugin loader code
|
||||||
|
|
||||||
|
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
|
||||||
|
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_command('packadd packer.nvim')
|
||||||
|
|
||||||
|
local no_errors, error_msg = pcall(function()
|
||||||
|
|
||||||
|
_G._packer = _G._packer or {}
|
||||||
|
_G._packer.inside_compile = true
|
||||||
|
|
||||||
|
local time
|
||||||
|
local profile_info
|
||||||
|
local should_profile = false
|
||||||
|
if should_profile then
|
||||||
|
local hrtime = vim.loop.hrtime
|
||||||
|
profile_info = {}
|
||||||
|
time = function(chunk, start)
|
||||||
|
if start then
|
||||||
|
profile_info[chunk] = hrtime()
|
||||||
|
else
|
||||||
|
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
time = function(chunk, start) end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function save_profiles(threshold)
|
||||||
|
local sorted_times = {}
|
||||||
|
for chunk_name, time_taken in pairs(profile_info) do
|
||||||
|
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
|
||||||
|
end
|
||||||
|
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
|
||||||
|
local results = {}
|
||||||
|
for i, elem in ipairs(sorted_times) do
|
||||||
|
if not threshold or threshold and elem[2] > threshold then
|
||||||
|
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if threshold then
|
||||||
|
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
|
||||||
|
end
|
||||||
|
|
||||||
|
_G._packer.profile_output = results
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[Luarocks path setup]], true)
|
||||||
|
local package_path_str = "/home/sheldonmlee/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/sheldonmlee/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/sheldonmlee/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/sheldonmlee/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
|
||||||
|
local install_cpath_pattern = "/home/sheldonmlee/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
|
||||||
|
if not string.find(package.path, package_path_str, 1, true) then
|
||||||
|
package.path = package.path .. ';' .. package_path_str
|
||||||
|
end
|
||||||
|
|
||||||
|
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
|
||||||
|
package.cpath = package.cpath .. ';' .. install_cpath_pattern
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[Luarocks path setup]], false)
|
||||||
|
time([[try_loadstring definition]], true)
|
||||||
|
local function try_loadstring(s, component, name)
|
||||||
|
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
|
||||||
|
if not success then
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[try_loadstring definition]], false)
|
||||||
|
time([[Defining packer_plugins]], true)
|
||||||
|
_G.packer_plugins = {
|
||||||
|
LuaSnip = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/LuaSnip",
|
||||||
|
url = "https://github.com/L3MON4D3/LuaSnip"
|
||||||
|
},
|
||||||
|
["cmp-nvim-lsp"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
|
||||||
|
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
|
||||||
|
},
|
||||||
|
["fzf.vim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/fzf.vim",
|
||||||
|
url = "https://github.com/junegunn/fzf.vim"
|
||||||
|
},
|
||||||
|
gruvbox = {
|
||||||
|
config = { "\27LJ\2\nu\0\0\3\0\4\0\t6\0\0\0009\0\1\0'\2\2\0B\0\2\0016\0\0\0009\0\1\0'\2\3\0B\0\2\1K\0\1\0004autocmd vimenter * ++nested colorscheme gruvbox\22set termguicolors\bcmd\bvim\0" },
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/gruvbox",
|
||||||
|
url = "https://github.com/morhetz/gruvbox"
|
||||||
|
},
|
||||||
|
["lsp-zero.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/lsp-zero.nvim",
|
||||||
|
url = "https://github.com/VonHeikemen/lsp-zero.nvim"
|
||||||
|
},
|
||||||
|
["mason-lspconfig.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
|
||||||
|
url = "https://github.com/williamboman/mason-lspconfig.nvim"
|
||||||
|
},
|
||||||
|
["mason.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/mason.nvim",
|
||||||
|
url = "https://github.com/williamboman/mason.nvim"
|
||||||
|
},
|
||||||
|
["nvim-cmp"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/nvim-cmp",
|
||||||
|
url = "https://github.com/hrsh7th/nvim-cmp"
|
||||||
|
},
|
||||||
|
["nvim-lspconfig"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
|
||||||
|
url = "https://github.com/neovim/nvim-lspconfig"
|
||||||
|
},
|
||||||
|
["nvim-treesitter"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
|
||||||
|
url = "https://github.com/nvim-treesitter/nvim-treesitter"
|
||||||
|
},
|
||||||
|
["packer.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/sheldonmlee/.local/share/nvim/site/pack/packer/start/packer.nvim",
|
||||||
|
url = "https://github.com/wbthomason/packer.nvim"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
time([[Defining packer_plugins]], false)
|
||||||
|
-- Config for: gruvbox
|
||||||
|
time([[Config for gruvbox]], true)
|
||||||
|
try_loadstring("\27LJ\2\nu\0\0\3\0\4\0\t6\0\0\0009\0\1\0'\2\2\0B\0\2\0016\0\0\0009\0\1\0'\2\3\0B\0\2\1K\0\1\0004autocmd vimenter * ++nested colorscheme gruvbox\22set termguicolors\bcmd\bvim\0", "config", "gruvbox")
|
||||||
|
time([[Config for gruvbox]], false)
|
||||||
|
|
||||||
|
_G._packer.inside_compile = false
|
||||||
|
if _G._packer.needs_bufread == true then
|
||||||
|
vim.cmd("doautocmd BufRead")
|
||||||
|
end
|
||||||
|
_G._packer.needs_bufread = false
|
||||||
|
|
||||||
|
if should_profile then save_profiles() end
|
||||||
|
|
||||||
|
end)
|
||||||
|
|
||||||
|
if not no_errors then
|
||||||
|
error_msg = error_msg:gsub('"', '\\"')
|
||||||
|
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user