refactor(nvim): organise configs by plugin and some other stuff
This commit is contained in:
parent
72ba6d1e4a
commit
02fe021715
13 changed files with 256 additions and 215 deletions
26
common/modules/neovim/base.vim
Normal file
26
common/modules/neovim/base.vim
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
" by default, the indent is 2 spaces.
|
||||||
|
set smartindent
|
||||||
|
set expandtab
|
||||||
|
set shiftwidth=2
|
||||||
|
set softtabstop=2
|
||||||
|
set tabstop=2
|
||||||
|
|
||||||
|
" for html/rb files, 2 spaces
|
||||||
|
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
||||||
|
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
|
||||||
|
|
||||||
|
" for js/coffee/jade files, 4 spaces
|
||||||
|
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 expandtab
|
||||||
|
autocmd Filetype java setlocal ts=4 sw=4 sts=0 expandtab
|
||||||
|
|
||||||
|
" support scss @
|
||||||
|
autocmd FileType scss setl iskeyword+=@-@
|
||||||
|
|
||||||
|
set number
|
||||||
|
set relativenumber
|
||||||
|
|
||||||
|
set undofile
|
||||||
|
set undodir=/home/matt/.cache/nvim/
|
||||||
|
|
||||||
|
" remove highlight on words
|
||||||
|
nnoremap <silent> <esc> :noh<cr><esc>
|
|
@ -1,55 +0,0 @@
|
||||||
" by default, the indent is 2 spaces.
|
|
||||||
set smartindent
|
|
||||||
set expandtab
|
|
||||||
set shiftwidth=2
|
|
||||||
set softtabstop=2
|
|
||||||
set tabstop=2
|
|
||||||
|
|
||||||
" for html/rb files, 2 spaces
|
|
||||||
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
|
||||||
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
|
|
||||||
|
|
||||||
" for js/coffee/jade files, 4 spaces
|
|
||||||
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 expandtab
|
|
||||||
autocmd Filetype java setlocal ts=4 sw=4 sts=0 expandtab
|
|
||||||
|
|
||||||
set number
|
|
||||||
set relativenumber
|
|
||||||
|
|
||||||
set undofile
|
|
||||||
set undodir=/home/matt/.cache/nvim/
|
|
||||||
|
|
||||||
" set dot icon in place of trailing whitespaces
|
|
||||||
set list listchars=tab:\ \ ,nbsp:␣,trail:•,extends:⟩,precedes:⟨
|
|
||||||
|
|
||||||
" use vscode keybinds for snippets completion
|
|
||||||
inoremap <silent><expr> <TAB>
|
|
||||||
\ coc#pum#visible() ? coc#_select_confirm() :
|
|
||||||
\ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
|
|
||||||
\ CheckBackspace() ? "\<TAB>" :
|
|
||||||
\ coc#refresh()
|
|
||||||
|
|
||||||
function! CheckBackspace() abort
|
|
||||||
let col = col('.') - 1
|
|
||||||
return !col || getline('.')[col - 1] =~# '\s'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
let g:coc_snippet_next = '<tab>'
|
|
||||||
|
|
||||||
" support scss @
|
|
||||||
autocmd FileType scss setl iskeyword+=@-@
|
|
||||||
|
|
||||||
" remove highlight on words
|
|
||||||
nnoremap <silent> <esc> :noh<cr><esc>
|
|
||||||
|
|
||||||
" Auto open Neo-Tree on big enough window
|
|
||||||
function! OpenTree() abort
|
|
||||||
if &columns > 100
|
|
||||||
Neotree show
|
|
||||||
Neotree close
|
|
||||||
Neotree show
|
|
||||||
endif
|
|
||||||
lua MiniMap.open()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
autocmd VimEnter * call OpenTree()
|
|
|
@ -1,111 +0,0 @@
|
||||||
vim.opt.fillchars = {eob = " "}
|
|
||||||
vim.cmd[[colorscheme dracula]]
|
|
||||||
|
|
||||||
-- https://github.com/AstroNvim/AstroNvim/issues/648#issuecomment-1511728897
|
|
||||||
|
|
||||||
vim.g.loaded_netrw = 0
|
|
||||||
vim.g.loaded_netrwPlugin = 0
|
|
||||||
|
|
||||||
-- https://github.com/nvim-neo-tree/neo-tree.nvim/issues/983#issuecomment-1637372234
|
|
||||||
|
|
||||||
|
|
||||||
require'nvim-treesitter.configs'.setup {
|
|
||||||
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,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
require('gitsigns').setup()
|
|
||||||
require('lualine').setup {
|
|
||||||
options = {
|
|
||||||
theme = 'dracula',
|
|
||||||
globalstatus = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
require("neo-tree").setup({
|
|
||||||
close_if_last_window = true,
|
|
||||||
enable_refresh_on_write = true,
|
|
||||||
window = {
|
|
||||||
width = 25,
|
|
||||||
},
|
|
||||||
filesystem = {
|
|
||||||
use_libuv_file_watcher = true,
|
|
||||||
filtered_items = {
|
|
||||||
visible = false,
|
|
||||||
hide_dotfiles = false,
|
|
||||||
hide_gitignored = true,
|
|
||||||
hide_by_name = {},
|
|
||||||
hide_by_pattern = {},
|
|
||||||
always_show = {},
|
|
||||||
never_show = {},
|
|
||||||
never_show_by_pattern = {},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
source_selector = {
|
|
||||||
winbar = true,
|
|
||||||
statusline = false
|
|
||||||
},
|
|
||||||
follow_current_file = {
|
|
||||||
enabled = true,
|
|
||||||
leave_dirs_open = true,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
require('todo-comments').setup()
|
|
||||||
|
|
||||||
-- Auto indent when pressing Enter between brackets
|
|
||||||
local remap = vim.api.nvim_set_keymap
|
|
||||||
local npairs = require('nvim-autopairs')
|
|
||||||
npairs.setup({map_cr=false})
|
|
||||||
|
|
||||||
_G.MUtils= {}
|
|
||||||
|
|
||||||
MUtils.completion_confirm=function()
|
|
||||||
if vim.fn["coc#pum#visible"]() ~= 0 then
|
|
||||||
return vim.fn["coc#pum#confirm"]()
|
|
||||||
else
|
|
||||||
return npairs.autopairs_cr()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
|
|
||||||
|
|
||||||
-- Indent Blanklines
|
|
||||||
local highlight = {
|
|
||||||
"RainbowRed",
|
|
||||||
"RainbowYellow",
|
|
||||||
"RainbowBlue",
|
|
||||||
"RainbowOrange",
|
|
||||||
"RainbowGreen",
|
|
||||||
"RainbowViolet",
|
|
||||||
"RainbowCyan",
|
|
||||||
}
|
|
||||||
|
|
||||||
local hooks = require "ibl.hooks"
|
|
||||||
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
|
||||||
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
|
|
||||||
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
|
|
||||||
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
|
|
||||||
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
|
|
||||||
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
|
|
||||||
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
|
|
||||||
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
|
|
||||||
end)
|
|
||||||
|
|
||||||
require("ibl").setup { indent = { highlight = highlight } }
|
|
||||||
|
|
||||||
local map = require('mini.map')
|
|
||||||
map.setup({
|
|
||||||
integrations = {
|
|
||||||
map.gen_integration.builtin_search(),
|
|
||||||
map.gen_integration.gitsigns(),
|
|
||||||
map.gen_integration.diagnostic(),
|
|
||||||
},
|
|
||||||
window = {
|
|
||||||
width = 7,
|
|
||||||
},
|
|
||||||
})
|
|
|
@ -9,11 +9,12 @@
|
||||||
inherit rev owner repo hash;
|
inherit rev owner repo hash;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
fileContents = lib.strings.fileContents;
|
||||||
|
in {
|
||||||
{
|
# TODO: make a gradle module and have java in hostvars.nix
|
||||||
xdg.configFile = {
|
xdg.dataFile = {
|
||||||
"../.gradle/gradle.properties".source = pkgs.writeText "gradle.properties" ''
|
".gradle/gradle.properties".source =
|
||||||
|
pkgs.writeText "gradle.properties" ''
|
||||||
org.gradle.java.home = ${pkgs.temurin-bin-17}
|
org.gradle.java.home = ${pkgs.temurin-bin-17}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -40,14 +41,6 @@ in
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
|
||||||
extraConfig = with lib.strings; ''
|
|
||||||
${fileContents ./config/base.vim}
|
|
||||||
'';
|
|
||||||
|
|
||||||
extraLuaConfig = with lib.strings; ''
|
|
||||||
${fileContents ./config/config.lua}
|
|
||||||
'';
|
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
nodejs_latest
|
nodejs_latest
|
||||||
nodePackages.npm
|
nodePackages.npm
|
||||||
|
@ -75,7 +68,7 @@ in
|
||||||
"eslint.format.enable" = true;
|
"eslint.format.enable" = true;
|
||||||
"eslint.autoFixOnSave" = true;
|
"eslint.autoFixOnSave" = true;
|
||||||
|
|
||||||
# Stylelint FIXME: not working
|
# Stylelint
|
||||||
"stylelintplus.enable" = true;
|
"stylelintplus.enable" = true;
|
||||||
"stylelintplus.cssInJs" = true;
|
"stylelintplus.cssInJs" = true;
|
||||||
"stylelintplus.autoFixOnSave" = true;
|
"stylelintplus.autoFixOnSave" = true;
|
||||||
|
@ -115,54 +108,98 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extraConfig = fileContents ./base.vim;
|
||||||
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
vim-which-key
|
# Coc configured
|
||||||
|
|
||||||
coc-java
|
|
||||||
coc-css
|
coc-css
|
||||||
|
coc-eslint
|
||||||
|
coc-java
|
||||||
|
coc-sh
|
||||||
|
coc-stylelintplus
|
||||||
|
{
|
||||||
|
plugin = coc-snippets;
|
||||||
|
type = "viml";
|
||||||
|
config = fileContents ./plugins/snippets.vim;
|
||||||
|
}
|
||||||
|
|
||||||
# Lua
|
## Lua
|
||||||
coc-sumneko-lua
|
coc-sumneko-lua
|
||||||
neodev-nvim
|
neodev-nvim
|
||||||
|
|
||||||
|
## Fzf
|
||||||
|
coc-fzf
|
||||||
|
fzfWrapper
|
||||||
|
fzf-vim
|
||||||
|
|
||||||
coc-highlight
|
coc-highlight
|
||||||
coc-json
|
coc-json
|
||||||
coc-pyright
|
coc-pyright
|
||||||
coc-sh
|
|
||||||
coc-snippets
|
|
||||||
coc-vimlsp
|
coc-vimlsp
|
||||||
coc-yaml
|
coc-yaml
|
||||||
coc-toml
|
coc-toml
|
||||||
coc-markdownlint
|
coc-markdownlint
|
||||||
coc-tsserver
|
coc-tsserver
|
||||||
coc-eslint
|
|
||||||
coc-stylelintplus
|
|
||||||
|
|
||||||
coc-fzf
|
|
||||||
fzfWrapper
|
|
||||||
fzf-vim
|
|
||||||
|
|
||||||
nvim-treesitter
|
|
||||||
nvim-treesitter.withAllGrammars
|
|
||||||
nvim-autopairs
|
|
||||||
|
|
||||||
dracula-nvim
|
|
||||||
(plugin "lukas-reineke"
|
|
||||||
"indent-blankline.nvim"
|
|
||||||
"046e2cf04e08ece927bacbfb87c5b35c0b636546"
|
|
||||||
"sha256-bhoep8aTYje5K/dZ/XmpwBPn4PBEMPrmw33QJdfFe6M=")
|
|
||||||
gitsigns-nvim
|
|
||||||
lualine-nvim
|
|
||||||
(plugin "echasnovski"
|
|
||||||
"mini.map"
|
|
||||||
"75b7ca9443e17c852b24055b32f74a880cf48053"
|
|
||||||
"sha256-CoMc6yQXXAW1wzcD9eJGuM+kcOJghuwHjKrqEMxZBec=")
|
|
||||||
|
|
||||||
neo-tree-nvim
|
|
||||||
|
|
||||||
# to explore more
|
|
||||||
fugitive
|
fugitive
|
||||||
todo-comments-nvim
|
|
||||||
|
{
|
||||||
|
plugin = dracula-nvim;
|
||||||
|
type = "viml";
|
||||||
|
config = fileContents ./plugins/dracula.vim;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = lualine-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = fileContents ./plugins/lualine.lua;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = todo-comments-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = "require('todo-comments').setup()";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = gitsigns-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = "require('gitsigns').setup()";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = nvim-autopairs;
|
||||||
|
type = "lua";
|
||||||
|
config = fileContents ./plugins/autopairs.lua;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = nvim-treesitter-context;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = nvim-treesitter.withAllGrammars;
|
||||||
|
type = "viml";
|
||||||
|
config = fileContents ./plugins/treesitter.vim;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = (plugin "lukas-reineke" "indent-blankline.nvim"
|
||||||
|
"046e2cf04e08ece927bacbfb87c5b35c0b636546"
|
||||||
|
"sha256-bhoep8aTYje5K/dZ/XmpwBPn4PBEMPrmw33QJdfFe6M=");
|
||||||
|
type = "lua";
|
||||||
|
config = fileContents ./plugins/indent.lua;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = (plugin "echasnovski" "mini.map"
|
||||||
|
"75b7ca9443e17c852b24055b32f74a880cf48053"
|
||||||
|
"sha256-CoMc6yQXXAW1wzcD9eJGuM+kcOJghuwHjKrqEMxZBec=");
|
||||||
|
type = "lua";
|
||||||
|
config = fileContents ./plugins/minimap.lua;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = neo-tree-nvim;
|
||||||
|
type = "viml";
|
||||||
|
config = ''
|
||||||
|
${fileContents ./plugins/neotree.vim}
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
${fileContents ./plugins/neotree.lua}
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
16
common/modules/neovim/plugins/autopairs.lua
Normal file
16
common/modules/neovim/plugins/autopairs.lua
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
-- Auto indent when pressing Enter between brackets
|
||||||
|
local remap = vim.api.nvim_set_keymap
|
||||||
|
local npairs = require('nvim-autopairs')
|
||||||
|
npairs.setup({map_cr=false})
|
||||||
|
|
||||||
|
_G.MUtils= {}
|
||||||
|
|
||||||
|
MUtils.completion_confirm=function()
|
||||||
|
if vim.fn["coc#pum#visible"]() ~= 0 then
|
||||||
|
return vim.fn["coc#pum#confirm"]()
|
||||||
|
else
|
||||||
|
return npairs.autopairs_cr()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
|
10
common/modules/neovim/plugins/dracula.vim
Normal file
10
common/modules/neovim/plugins/dracula.vim
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
" set dot icon in place of trailing whitespaces
|
||||||
|
set list listchars=tab:\ \ ,nbsp:␣,trail:•,extends:⟩,precedes:⟨
|
||||||
|
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
-- Add visual indicator for trailing whitespaces
|
||||||
|
vim.opt.fillchars = {eob = " "}
|
||||||
|
|
||||||
|
vim.cmd[[colorscheme dracula]]
|
||||||
|
EOF
|
21
common/modules/neovim/plugins/indent.lua
Normal file
21
common/modules/neovim/plugins/indent.lua
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
local highlight = {
|
||||||
|
"RainbowRed",
|
||||||
|
"RainbowYellow",
|
||||||
|
"RainbowBlue",
|
||||||
|
"RainbowOrange",
|
||||||
|
"RainbowGreen",
|
||||||
|
"RainbowViolet",
|
||||||
|
"RainbowCyan",
|
||||||
|
}
|
||||||
|
local hooks = require('ibl.hooks')
|
||||||
|
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
|
||||||
|
end)
|
||||||
|
|
||||||
|
require('ibl').setup({ indent = { highlight = highlight } })
|
6
common/modules/neovim/plugins/lualine.lua
Normal file
6
common/modules/neovim/plugins/lualine.lua
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
require('lualine').setup({
|
||||||
|
options = {
|
||||||
|
theme = 'dracula',
|
||||||
|
globalstatus = true
|
||||||
|
}
|
||||||
|
})
|
13
common/modules/neovim/plugins/minimap.lua
Normal file
13
common/modules/neovim/plugins/minimap.lua
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
local map = require('mini.map')
|
||||||
|
map.setup({
|
||||||
|
integrations = {
|
||||||
|
map.gen_integration.builtin_search(),
|
||||||
|
map.gen_integration.gitsigns(),
|
||||||
|
map.gen_integration.diagnostic(),
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
focusable = true,
|
||||||
|
width = 7,
|
||||||
|
winblend = 75,
|
||||||
|
},
|
||||||
|
})
|
37
common/modules/neovim/plugins/neotree.lua
Normal file
37
common/modules/neovim/plugins/neotree.lua
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
-- Override netrw
|
||||||
|
vim.g.loaded_netrw = 0
|
||||||
|
vim.g.loaded_netrwPlugin = 0
|
||||||
|
|
||||||
|
require('neo-tree').setup({
|
||||||
|
close_if_last_window = true,
|
||||||
|
enable_refresh_on_write = true,
|
||||||
|
|
||||||
|
window = {
|
||||||
|
width = 22,
|
||||||
|
},
|
||||||
|
|
||||||
|
filesystem = {
|
||||||
|
use_libuv_file_watcher = true,
|
||||||
|
|
||||||
|
filtered_items = {
|
||||||
|
visible = false,
|
||||||
|
hide_dotfiles = false,
|
||||||
|
hide_gitignored = true,
|
||||||
|
hide_by_name = {},
|
||||||
|
hide_by_pattern = {},
|
||||||
|
always_show = {},
|
||||||
|
never_show = {},
|
||||||
|
never_show_by_pattern = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
source_selector = {
|
||||||
|
winbar = true,
|
||||||
|
statusline = false
|
||||||
|
},
|
||||||
|
|
||||||
|
follow_current_file = {
|
||||||
|
enabled = true,
|
||||||
|
leave_dirs_open = true,
|
||||||
|
}
|
||||||
|
})
|
11
common/modules/neovim/plugins/neotree.vim
Normal file
11
common/modules/neovim/plugins/neotree.vim
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
" Auto open Neo-Tree on big enough window
|
||||||
|
function! OpenTree() abort
|
||||||
|
if &columns > 100
|
||||||
|
Neotree show
|
||||||
|
Neotree close
|
||||||
|
Neotree show
|
||||||
|
endif
|
||||||
|
lua MiniMap.open()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
autocmd VimEnter * call OpenTree()
|
13
common/modules/neovim/plugins/snippets.vim
Normal file
13
common/modules/neovim/plugins/snippets.vim
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
" use vscode keybinds for snippets completion
|
||||||
|
inoremap <silent><expr> <TAB>
|
||||||
|
\ coc#pum#visible() ? coc#_select_confirm() :
|
||||||
|
\ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
|
||||||
|
\ CheckBackspace() ? "\<TAB>" :
|
||||||
|
\ coc#refresh()
|
||||||
|
|
||||||
|
function! CheckBackspace() abort
|
||||||
|
let col = col('.') - 1
|
||||||
|
return !col || getline('.')[col - 1] =~# '\s'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let g:coc_snippet_next = '<tab>'
|
17
common/modules/neovim/plugins/treesitter.vim
Normal file
17
common/modules/neovim/plugins/treesitter.vim
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
lua << EOF
|
||||||
|
|
||||||
|
require('nvim-treesitter.configs').setup({
|
||||||
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true }
|
||||||
|
})
|
||||||
|
|
||||||
|
require('treesitter-context').setup({
|
||||||
|
enable = true,
|
||||||
|
max_lines = 3,
|
||||||
|
min_window_height = 20,
|
||||||
|
})
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
" Add line under context
|
||||||
|
hi TreesitterContextBottom gui=underline guisp=Grey
|
Loading…
Reference in a new issue