feat: treesitter plugin support
This commit is contained in:
parent
366a92962d
commit
19ce2929b0
15
README.md
15
README.md
|
@ -2,7 +2,7 @@
|
|||
|
||||
一个neovim配置
|
||||
|
||||
### usage hello world me help, good.
|
||||
### usage
|
||||
|
||||
安装插件管理工具
|
||||
|
||||
|
@ -17,3 +17,16 @@ git clone --depth 1 https://github.com/wbthomason/packer.nvim\
|
|||
sudo dnf install fd-find ripgrep -y
|
||||
go install github.com/jesseduffield/lazygit@latest
|
||||
```
|
||||
|
||||
### 记忆项
|
||||
|
||||
代码折叠
|
||||
|
||||
- zo - 在光标下打开折叠
|
||||
- zc - 在光标下关闭折叠
|
||||
- za - 切换光标下打开、关闭状态
|
||||
- zr - 将所有折叠打开一层
|
||||
- zm - 将所有折叠关闭一层
|
||||
- zR - 打开全部折叠
|
||||
- zM - 关闭全部折叠
|
||||
|
||||
|
|
2
init.lua
2
init.lua
|
@ -31,6 +31,8 @@ require("plugins.trouble")
|
|||
require("plugins.aerial")
|
||||
-- 跳转
|
||||
require("plugins.leap")
|
||||
-- 代码高亮
|
||||
require("plugins.treesitter")
|
||||
-- LSP管理
|
||||
require("plugins.mason")
|
||||
require("lsp.init")
|
||||
|
|
|
@ -74,3 +74,9 @@ vim.opt.swapfile = false
|
|||
vim.opt.writebackup = false
|
||||
vim.opt.undofile = true
|
||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
||||
-- 开启 Folding
|
||||
vim.wo.foldmethod = "expr"
|
||||
vim.wo.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
-- 默认不要折叠
|
||||
-- https://stackoverflow.com/questions/8316139/how-to-set-the-default-to-unfolded-when-you-open-a-file
|
||||
vim.wo.foldlevel = 99
|
||||
|
|
|
@ -32,6 +32,7 @@ map("x", "<A-j>", ":move '>+1<CR>gv-gv", noreopt)
|
|||
map("x", "<A-k>", ":move '<-2<CR>gv-gv", noreopt)
|
||||
-- 快所退出
|
||||
map("n", "q", ":wq<CR>", noreopt)
|
||||
map("n", "qn", ":q!<CR>", noreopt)
|
||||
map("n", "qq", ":qa!<CR>", noreopt)
|
||||
map("i", "jk", "<ESC>", noreopt)
|
||||
-- git 管理
|
||||
|
|
|
@ -1,42 +1,54 @@
|
|||
require'nvim-treesitter.configs'.setup {
|
||||
-- A list of parser names, or "all" (the four listed parsers should always be installed)
|
||||
ensure_installed = { "c", "lua", "vim", "help", "go" },
|
||||
require("nvim-treesitter.configs").setup({
|
||||
-- A list of parser names, or "all" (the four listed parsers should always be installed)
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"c",
|
||||
"css",
|
||||
"dart",
|
||||
"dockerfile",
|
||||
"gitignore",
|
||||
"go",
|
||||
"gomod",
|
||||
"gosum",
|
||||
"gowork",
|
||||
"help",
|
||||
"html",
|
||||
"java",
|
||||
"javascript",
|
||||
"json",
|
||||
"lua",
|
||||
"markdown",
|
||||
"rust",
|
||||
"toml",
|
||||
"typescript",
|
||||
"vim",
|
||||
"vue",
|
||||
"yaml",
|
||||
},
|
||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||
sync_install = true,
|
||||
-- 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 = {},
|
||||
---- 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")!
|
||||
|
||||
-- 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 = {
|
||||
-- `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 = { },
|
||||
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
|
||||
disable = function(lang, buf)
|
||||
local max_filesize = 100 * 1024 -- 100 KB
|
||||
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
|
||||
if ok and stats and stats.size > max_filesize then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
|
||||
-- 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,
|
||||
},
|
||||
}
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "<CR>",
|
||||
node_incremental = "<CR>",
|
||||
node_decremental = "<BS>",
|
||||
scope_incremental = "<TAB>",
|
||||
},
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue