This commit is contained in:
veypi
2022-05-15 15:15:27 +08:00
parent 4a1ad02483
commit f40ae333fe
12 changed files with 555 additions and 254 deletions
+117 -111
View File
@@ -5,62 +5,62 @@ local tree_cb = require 'nvim-tree.config'.nvim_tree_callback -- following optio
-- s open item in system tool
-- a add file/dir
require 'nvim-tree'.setup {
open_on_setup = true;
open_on_setup_file = false,
git = {
enable = true,
ignore = true,
timeout = 400,
},
filters = {
dotfiles = true,
custom = {},
exclude = {},
},
system_open = {
cmd = nil,
args = {},
},
view = {
width = 24,
mappings = {
custom_only = true,
list = {
{ key = "<BS>", cb = tree_cb("dir_up") },
{ key = { "q", "<Esc>" }, cb = tree_cb("close") },
{ key = { "<2-RightMouse>", "<CR>" }, cb = tree_cb("cd") },
{ key = "<Tab>", cb = tree_cb("preview") },
{ key = "R", cb = tree_cb("refresh") },
{ key = "h", cb = tree_cb("close_node") },
open_on_setup = true;
open_on_setup_file = false,
git = {
enable = true,
ignore = true,
timeout = 400,
},
filters = {
dotfiles = true,
custom = {},
exclude = {},
},
system_open = {
cmd = nil,
args = {},
},
view = {
width = 24,
mappings = {
custom_only = true,
list = {
{ key = "<BS>", cb = tree_cb("dir_up") },
{ key = { "q", "<Esc>" }, cb = tree_cb("close") },
{ key = { "<2-RightMouse>", "<CR>" }, cb = tree_cb("cd") },
{ key = "<Tab>", cb = tree_cb("preview") },
{ key = "R", cb = tree_cb("refresh") },
{ key = "h", cb = tree_cb("close_node") },
{ key = { "o", "<CR>", "<2-RightMouse>" }, cb = tree_cb("edit") },
{ key = "a", cb = tree_cb("create") },
{ key = "d", cb = tree_cb("remove") },
{ key = "r", cb = tree_cb("rename") },
{ key = "x", cb = tree_cb("cut") },
{ key = "c", cb = tree_cb("copy") },
{ key = "p", cb = tree_cb("paste") },
{ key = { "o", "<CR>", "<2-RightMouse>" }, cb = tree_cb("edit") },
{ key = "a", cb = tree_cb("create") },
{ key = "d", cb = tree_cb("remove") },
{ key = "r", cb = tree_cb("rename") },
{ key = "x", cb = tree_cb("cut") },
{ key = "c", cb = tree_cb("copy") },
{ key = "p", cb = tree_cb("paste") },
{ key = "G", cb = tree_cb("prev_git_item") },
{ key = "g", cb = tree_cb("next_git_item") },
{ key = "?", cb = tree_cb("toggle_help") },
{ key = "G", cb = tree_cb("prev_git_item") },
{ key = "g", cb = tree_cb("next_git_item") },
{ key = "?", cb = tree_cb("toggle_help") },
{ key = "<", cb = tree_cb("prev_sibling") },
{ key = ">", cb = tree_cb("next_sibling") },
{ key = "P", cb = tree_cb("parent_node") },
{ key = "K", cb = tree_cb("first_sibling") },
{ key = "J", cb = tree_cb("last_sibling") },
{ key = "I", cb = tree_cb("toggle_ignored") },
{ key = "H", cb = tree_cb("toggle_dotfiles") },
{ key = "<C-r>", cb = tree_cb("full_rename") },
{ key = "y", cb = tree_cb("copy_name") },
{ key = "Y", cb = tree_cb("copy_path") },
{ key = "gy", cb = tree_cb("copy_absolute_path") },
{ key = "S", cb = tree_cb("system_open") },
}
}
}
{ key = "<", cb = tree_cb("prev_sibling") },
{ key = ">", cb = tree_cb("next_sibling") },
{ key = "P", cb = tree_cb("parent_node") },
{ key = "K", cb = tree_cb("first_sibling") },
{ key = "J", cb = tree_cb("last_sibling") },
{ key = "I", cb = tree_cb("toggle_ignored") },
{ key = "H", cb = tree_cb("toggle_dotfiles") },
{ key = "<C-r>", cb = tree_cb("full_rename") },
{ key = "y", cb = tree_cb("copy_name") },
{ key = "Y", cb = tree_cb("copy_path") },
{ key = "gy", cb = tree_cb("copy_absolute_path") },
{ key = "S", cb = tree_cb("system_open") },
}
}
}
}
@@ -69,49 +69,55 @@ vim.cmd([[colorscheme gruvbox]])
vim.opt.termguicolors = true
require("bufferline").setup {
options = {
sort_by = 'id',
numbers = 'ordinal',
-- 左侧让出 nvim-tree 的位置
diagnostics = "nvim_lsp";
offsets = { {
filetype = "NvimTree",
text = "veypi.com",
highlight = "Directory",
text_align = "center"
} }
}
options = {
sort_by = 'id',
numbers = 'ordinal',
-- 左侧让出 nvim-tree 的位置
diagnostics = "nvim_lsp";
offsets = { {
filetype = "NvimTree",
text = "veypi.com",
highlight = "Directory",
text_align = "center"
} }
}
}
vim.g.gitblame_display_virtual_text = 0 -- Disable virtual text
vim.g.gitblame_date_format = "%r"
local git_blame = require('gitblame')
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = '' },
section_separators = { left = '', right = '' },
disabled_filetypes = {},
always_divide_middle = true,
globalstatus = false,
},
sections = {
lualine_a = { 'mode' },
lualine_b = { 'branch', 'diff', 'diagnostics' },
lualine_c = { 'filename' },
lualine_x = { 'encoding', 'fileformat', 'filetype' },
lualine_y = { 'progress' },
lualine_z = { 'location' }
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = { 'filename' },
lualine_x = { 'location' },
lualine_y = {},
lualine_z = {}
},
tabline = {},
extensions = {}
options = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = '' },
section_separators = { left = '', right = '' },
disabled_filetypes = {},
always_divide_middle = true,
globalstatus = false,
},
sections = {
lualine_a = { 'mode' },
lualine_b = { 'branch', 'diff', 'diagnostics' },
lualine_c = {
{ git_blame.get_current_blame_text, cond = git_blame.is_blame_text_available },
'filename'
},
lualine_x = { 'encoding', 'fileformat', 'filetype' },
lualine_y = { 'progress' },
lualine_z = { 'location' }
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = { 'filename' },
lualine_x = { 'location' },
lualine_y = {},
lualine_z = {}
},
tabline = {},
extensions = {}
}
@@ -119,29 +125,29 @@ require('lualine').setup {
require 'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all"
ensure_installed = { "c", "lua", "rust", "go", "javascript", "html", "json", "python", "typescript", "vue", "css" },
-- A list of parser names, or "all"
ensure_installed = { "c", "lua", "rust", "go", "javascript", "html", "json", "python", "typescript", "vue", "css" },
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- List of parsers to ignore installing (for "all")
ignore_install = { "" },
-- List of parsers to ignore installing (for "all")
ignore_install = { "" },
highlight = {
-- `false` will disable the whole extension
enable = true,
highlight = {
-- `false` will disable the whole extension
enable = true,
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
-- the name of the parser)
-- list of language that will be disabled
disable = {},
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
-- the name of the parser)
-- list of language that will be disabled
disable = {},
-- 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,
},
-- 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,
},
}
+21 -15
View File
@@ -1,20 +1,26 @@
-- 部分补全代码不支持autoformat 需使用efm自动补全
-- https://github.com/mattn/efm-langserver
return {
init_options = { documentFormatting = true },
filetypes = { 'python', 'json' },
settings = {
rootMarkers = { ".git/" },
languages = {
python = {
-- pip install yapf
{ formatCommand = "yapf --quiet", formatStdin = true }
},
json = {
-- yarn global add fixjson
{ formatCommand = "fixjson", formatStdin = true }
init_options = { documentFormatting = true },
filetypes = { 'python', 'json', 'css' },
settings = {
rootMarkers = { ".git/" },
languages = {
python = {
-- pip install yapf
{ formatCommand = "yapf --quiet", formatStdin = true }
},
json = {
-- yarn global add fixjson
{ formatCommand = "fixjson", formatStdin = true }
}
}
}
},
css = {
-- yarn global add prettier
{ formatCommand = "prettier --tab-width=4 ${--single-quote:singleQuote} --parser css", formatStdin = true }
-- { formatCommand = "prettier ${--tab-width:tabWidth} ${--single-quote:singleQuote} --parser css", formatStdin = true }
}
}
}
}
+10 -9
View File
@@ -1,13 +1,14 @@
local eslint_config = require("lspconfig.server_configurations.eslint")
return {
on_attach = function(client, bufnr)
-- neovim's LSP client does not currently support dynamic capabilities registration, so we need to set
-- the resolved capabilities of the eslint server ourselves!
client.resolved_capabilities.document_formatting = true
end,
settings = {
format = { enable = true },
},
cmd = { "yarn", "exec", unpack(eslint_config.default_config.cmd) }
on_attach = function(client, bufnr)
-- neovim's LSP client does not currently support dynamic capabilities registration, so we need to set
-- the resolved capabilities of the eslint server ourselves!
client.resolved_capabilities.document_formatting = true
end,
settings = {
format = { enable = true },
},
print(unpack(eslint_config.default_config.cmd)),
cmd = { "yarn", "exec", unpack(eslint_config.default_config.cmd) }
}
+67 -64
View File
@@ -10,9 +10,12 @@ local keyOpts = { noremap = true, silent = true }
vim.api.nvim_set_keymap('n', '<C-]>', '<cmd>lua vim.lsp.buf.definition()<CR>', keyOpts)
vim.api.nvim_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', keyOpts)
vim.api.nvim_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', keyOpts)
vim.api.nvim_set_keymap('n', 'e[', '<cmd>lua vim.diagnostic.goto_prev()<CR>',keyOpts)
vim.api.nvim_set_keymap('n', 'e[', '<cmd>lua vim.diagnostic.goto_prev()<CR>', keyOpts)
vim.api.nvim_set_keymap('n', 'e]', '<cmd>lua vim.diagnostic.goto_next()<CR>', keyOpts)
-- vim.cmd [[autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_seq_sync()]]
-- 安装列表
@@ -20,38 +23,38 @@ vim.api.nvim_set_keymap('n', 'e]', '<cmd>lua vim.diagnostic.goto_next()<CR>', ke
-- { key: 语言 value: 配置文件 }
-- pyright 不支持autoformat
local servers = {
sumneko_lua = require "lsp.lua", -- /lua/lsp/lua.lua
gopls = require "lsp.base",
volar = require "lsp.base",
basels = require "lsp.base",
cssls = require "lsp.base",
eslint = require "lsp.eslint",
tsserver = require "lsp.base",
prosemd_lsp = require "lsp.base",
pyright = require "lsp.base",
rust_analyzer = require "lsp.base",
tailwindcss = require "lsp.base",
efm = require "lsp.efm"
sumneko_lua = require "lsp.lua", -- /lua/lsp/lua.lua
gopls = require "lsp.base",
volar = require "lsp.base",
basels = require "lsp.base",
cssls = require "lsp.base",
-- eslint = require "lsp.eslint",
tsserver = require "lsp.base",
prosemd_lsp = require "lsp.base",
pyright = require "lsp.base",
rust_analyzer = require "lsp.base",
tailwindcss = require "lsp.base",
efm = require "lsp.efm"
}
-- 自动安装 LanguageServers
for name, _ in pairs(servers) do
local server_is_found, server = lsp_installer.get_server(name)
if server_is_found then
if not server:is_installed() then
print("Installing " .. name)
server:install()
end
end
local server_is_found, server = lsp_installer.get_server(name)
if server_is_found then
if not server:is_installed() then
print("Installing " .. name)
server:install()
end
end
end
lsp_installer.on_server_ready(function(server)
local opts = servers[server.name]
opts.capabilities = capabilities
opts.flags = {
debounce_text_changes = 150,
}
server:setup(opts)
local opts = servers[server.name]
opts.capabilities = capabilities
opts.flags = {
debounce_text_changes = 150,
}
server:setup(opts)
end)
-- luasnip setup
@@ -65,42 +68,42 @@ local cmp = require 'cmp'
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = '' } }))
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = 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' }),
['<S-Tab>'] = 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' },
{ name = 'buffer' },
{ name = 'path' }
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = 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' }),
['<S-Tab>'] = 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' },
{ name = 'buffer' },
{ name = 'path' }
},
}
+39 -34
View File
@@ -4,55 +4,60 @@
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function()
-- Packer can manage itself
use 'wbthomason/packer.nvim'
-- Packer can manage itself
use 'wbthomason/packer.nvim'
-- LSP
-- LSP
use { 'neovim/nvim-lspconfig', 'williamboman/nvim-lsp-installer' }
use { 'neovim/nvim-lspconfig', 'williamboman/nvim-lsp-installer' }
use 'windwp/nvim-autopairs'
use 'windwp/nvim-autopairs'
use 'windwp/nvim-ts-autotag'
use 'windwp/nvim-ts-autotag'
use 'hrsh7th/nvim-cmp'
use 'hrsh7th/cmp-path'
use 'hrsh7th/cmp-buffer'
use 'hrsh7th/cmp-nvim-lsp'
use 'saadparwaiz1/cmp_luasnip'
use 'L3MON4D3/LuaSnip'
use 'hrsh7th/nvim-cmp'
use 'hrsh7th/cmp-path'
use 'hrsh7th/cmp-buffer'
use 'hrsh7th/cmp-nvim-lsp'
use 'saadparwaiz1/cmp_luasnip'
use 'L3MON4D3/LuaSnip'
-- Frame
-- Frame
use { "ellisonleao/gruvbox.nvim" }
-- need to install nerd font
use 'kyazdani42/nvim-web-devicons'
use 'kyazdani42/nvim-tree.lua'
use 'akinsho/bufferline.nvim'
use 'nvim-lualine/lualine.nvim'
use { "ellisonleao/gruvbox.nvim" }
-- need to install nerd font
use 'kyazdani42/nvim-web-devicons'
use 'kyazdani42/nvim-tree.lua'
use 'akinsho/bufferline.nvim'
use 'nvim-lualine/lualine.nvim'
use 'f-person/git-blame.nvim'
use {
'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate'
}
use {
'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate'
}
-- utils
use 'numToStr/Comment.nvim'
use {
'nvim-telescope/telescope.nvim',
requires = { { 'nvim-lua/plenary.nvim' } }
}
-- utils
use 'numToStr/Comment.nvim'
use {
'nvim-telescope/telescope.nvim',
requires = { { 'nvim-lua/plenary.nvim' } }
}
use { "akinsho/toggleterm.nvim" }
use { "akinsho/toggleterm.nvim" }
use "Pocco81/AutoSave.nvim"
use "Pocco81/AutoSave.nvim"
use 'lewis6991/gitsigns.nvim'
use 'lewis6991/gitsigns.nvim'
use 'ybian/smartim'
use 'ybian/smartim'
use 'aperezdc/vim-template'
use 'aperezdc/vim-template'
use "lukas-reineke/indent-blankline.nvim"
use "norcalli/nvim-colorizer.lua"
end)
+25 -18
View File
@@ -4,30 +4,37 @@ require('nvim-autopairs').setup()
require("toggleterm").setup {
open_mapping = [[<C-\>]],
hide_numbers = true,
insert_mappings = true, -- whether or not the open mapping applies in insert mode
terminal_mappings = true,
shell = vim.o.shell,
open_mapping = [[<C-\>]],
hide_numbers = true,
insert_mappings = true, -- whether or not the open mapping applies in insert mode
terminal_mappings = true,
shell = vim.o.shell,
}
require("autosave").setup {
enabled = true,
execution_message = "AutoSave: saved at " .. vim.fn.strftime("%H:%M:%S"),
events = { "BufLeave", "FocusLost" },
conditions = {
exists = true,
filename_is_not = {},
filetype_is_not = {},
modifiable = true
},
write_all_buffers = true,
on_off_commands = true,
clean_command_line_interval = 0,
debounce_delay = 135
enabled = true,
execution_message = "AutoSave: saved at " .. vim.fn.strftime("%H:%M:%S"),
events = { "BufLeave", "FocusLost" },
conditions = {
exists = true,
filename_is_not = {},
filetype_is_not = {},
modifiable = true
},
write_all_buffers = true,
on_off_commands = true,
clean_command_line_interval = 0,
debounce_delay = 135
}
require('gitsigns').setup {
}
require("indent_blankline").setup {
-- for example, context is off by default, use this to turn it on
show_current_context = true,
show_current_context_start = true,
}
require 'colorizer'.setup()