Add treesitter, tweak completion for narrow terminal
This commit is contained in:
parent
259bf17eda
commit
5e5fedfa9c
4 changed files with 110 additions and 49 deletions
59
init.lua
59
init.lua
|
@ -1,10 +1,10 @@
|
||||||
vim.opt.syntax = 'on'
|
vim.opt.syntax = 'on'
|
||||||
vim.cmd([[hi MatchParen ctermfg=none ctermbg=none cterm=bold,underline gui=bold,underline guifg=fg guibg=bg
|
vim.cmd([[
|
||||||
filetype plugin indent on
|
filetype plugin indent on
|
||||||
]])
|
]])
|
||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
-- set relativenumber
|
-- set relativenumber
|
||||||
vim.opt.relativenumber = true
|
vim.opt.relativenumber = false
|
||||||
--vim.opt.path += "**"
|
--vim.opt.path += "**"
|
||||||
vim.opt.swapfile = false
|
vim.opt.swapfile = false
|
||||||
vim.opt.wildmenu = true
|
vim.opt.wildmenu = true
|
||||||
|
@ -28,6 +28,8 @@ vim.opt.guicursor = ""
|
||||||
|
|
||||||
require("colorschemes")
|
require("colorschemes")
|
||||||
|
|
||||||
|
vim.cmd([[hi MatchParen cterm=bold,underline gui=bold,underline]])
|
||||||
|
|
||||||
vim.api.nvim_set_keymap("n", "<SPACE>", "<Nop>", { noremap = true })
|
vim.api.nvim_set_keymap("n", "<SPACE>", "<Nop>", { noremap = true })
|
||||||
vim.g.mapleader = " "
|
vim.g.mapleader = " "
|
||||||
|
|
||||||
|
@ -41,6 +43,9 @@ for _, mode in ipairs({"n", "i"}) do
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.api.nvim_set_keymap("n", "<Leader>o", "<Cmd>lua vim.diagnostic.open_float()<CR>", { noremap = true })
|
vim.api.nvim_set_keymap("n", "<Leader>o", "<Cmd>lua vim.diagnostic.open_float()<CR>", { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap("n", "<M-o>", "<Cmd>lua vim.diagnostic.open_float()<CR>", { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap("n", "<Leader>i", "<Cmd>lua vim.lsp.buf.code_action()<CR>", { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap("n", "<M-i>", "<Cmd>lua vim.lsp.buf.code_action()<CR>", { noremap = true })
|
||||||
|
|
||||||
require('plugins')
|
require('plugins')
|
||||||
-- require'lspconfig'.pyright.setup{}
|
-- require'lspconfig'.pyright.setup{}
|
||||||
|
@ -64,53 +69,7 @@ nvim_lsp.pyright.setup{}
|
||||||
-- },
|
-- },
|
||||||
-- })
|
-- })
|
||||||
|
|
||||||
local cmp = require'cmp'
|
require('completion')
|
||||||
local snippy = require('snippy')
|
|
||||||
|
|
||||||
cmp.setup({
|
|
||||||
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
snippy.expand_snippet(args.body)
|
|
||||||
end
|
|
||||||
},
|
|
||||||
window = {
|
|
||||||
completion = cmp.config.window.bordered(),
|
|
||||||
documentation = cmp.config.window.bordered(),
|
|
||||||
},
|
|
||||||
mapping = cmp.mapping.preset.insert({
|
|
||||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
|
||||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
|
||||||
['<C-Space>'] = cmp.mapping.complete(),
|
|
||||||
['<C-e>'] = cmp.mapping.abort(),
|
|
||||||
-- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
|
||||||
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
|
||||||
["<Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_next_item()
|
|
||||||
elseif snippy.can_expand_or_advance() then
|
|
||||||
snippy.expand_or_advance()
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
|
|
||||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_prev_item()
|
|
||||||
elseif snippy.can_jump(-1) then
|
|
||||||
snippy.previous()
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
}),
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = 'nvim_lsp' },
|
|
||||||
{ name = 'snippy' },
|
|
||||||
{ name = 'buffer' },
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
nvim_lsp.rust_analyzer.setup({
|
nvim_lsp.rust_analyzer.setup({
|
||||||
|
@ -133,6 +92,8 @@ vim.diagnostic.config({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
require('treesitter')
|
||||||
|
|
||||||
-- -- trouble.nvim mappings
|
-- -- trouble.nvim mappings
|
||||||
-- vim.api.nvim_set_keymap("n", "<leader>xx", "<cmd>Trouble<cr>",
|
-- vim.api.nvim_set_keymap("n", "<leader>xx", "<cmd>Trouble<cr>",
|
||||||
-- {silent = true, noremap = true}
|
-- {silent = true, noremap = true}
|
||||||
|
|
61
lua/completion.lua
Normal file
61
lua/completion.lua
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
local cmp = require'cmp'
|
||||||
|
local snippy = require('snippy')
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
snippy.expand_snippet(args.body)
|
||||||
|
end
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered(),
|
||||||
|
documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.abort(),
|
||||||
|
-- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif snippy.can_expand_or_advance() then
|
||||||
|
snippy.expand_or_advance()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif snippy.can_jump(-1) then
|
||||||
|
snippy.previous()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
}),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'snippy' },
|
||||||
|
{ name = 'buffer' },
|
||||||
|
}),
|
||||||
|
formatting = {
|
||||||
|
fields = {
|
||||||
|
cmp.ItemField.Abbr,
|
||||||
|
cmp.ItemField.Kind,
|
||||||
|
cmp.ItemField.Menu,
|
||||||
|
},
|
||||||
|
format = function(entry, vim_item)
|
||||||
|
vim_item.abbr = string.sub(vim_item.abbr, 1, 20)
|
||||||
|
vim_item.kind = string.sub(vim_item.kind, 1, 10)
|
||||||
|
vim_item.menu = string.sub(vim_item.menu, 1, 10)
|
||||||
|
return vim_item
|
||||||
|
end
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
|
@ -17,5 +17,11 @@ packer.startup(
|
||||||
use 'NLKNguyen/papercolor-theme'
|
use 'NLKNguyen/papercolor-theme'
|
||||||
use 'olimorris/onedarkpro.nvim'
|
use 'olimorris/onedarkpro.nvim'
|
||||||
use 'EdenEast/nightfox.nvim'
|
use 'EdenEast/nightfox.nvim'
|
||||||
|
use {
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
run = function()
|
||||||
|
require('nvim-treesitter.install').update({ with_sync = true })
|
||||||
|
end,
|
||||||
|
}
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
33
lua/treesitter.lua
Normal file
33
lua/treesitter.lua
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
-- A list of parser names, or "all"
|
||||||
|
ensure_installed = { "rust" },
|
||||||
|
|
||||||
|
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||||
|
sync_install = false,
|
||||||
|
|
||||||
|
-- Automatically install missing parsers when entering buffer
|
||||||
|
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 = {
|
||||||
|
-- `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 = { "c", "rust" },
|
||||||
|
|
||||||
|
-- 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,
|
||||||
|
},
|
||||||
|
}
|
Loading…
Reference in a new issue