diff --git a/nvim/init.lua b/nvim/init.lua index e2bc4c1a..58bef99b 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -1,5 +1,6 @@ -- small helper function for loading external plugin config files local g = vim.g +local cmd = vim.cmd local set = vim.opt local setlocal = vim.opt_local local createCmd = vim.api.nvim_create_autocmd @@ -9,6 +10,7 @@ local function get_config (key) return function() require('plugins/' .. key) end end +-- ensure that lazy.nvim package manager is installed if not vim.loop.fs_stat(lazypath) then vim.fn.system({ 'git', 'clone', '--filter=blob:none', 'https://github.com/folke/lazy.nvim.git', '--branch=stable', lazypath }) end @@ -82,10 +84,6 @@ require('lazy').setup({ }, }) --- deactivate python and perl -g.loaded_python_provider = 0 -g.loaded_perl_provider = 0 - -- general sane vim options set.breakindent = true set.clipboard = 'unnamedplus' @@ -94,7 +92,6 @@ set.completeopt = { 'menu', 'menuone', 'noselect' } set.conceallevel = 2 set.cpoptions:append('$') set.cursorline = true -set.foldexpr = 'nvim_treesitter#foldexpr()' set.foldmethod = 'expr' set.gdefault = true set.grepprg = 'rg' @@ -128,27 +125,20 @@ set.updatetime = 300 set.virtualedit = 'all' set.visualbell = true set.wildmode = { 'list:longest', 'list:full' } +g.loaded_python_provider = 0 +g.loaded_perl_provider = 0 --- colorscheme +-- colorscheme and default language set.background = 'dark' set.termguicolors = true g.gruvbox_baby_telescope_theme = 1 -vim.cmd 'colorscheme gruvbox-baby' - --- default language -vim.cmd 'language en_US.UTF-8' +cmd 'colorscheme gruvbox-baby' +cmd 'language en_US.UTF-8' --- set some autocommand -- TODO refactor those in createCmd if possible -vim.cmd([[ - " Remember last location/cursor in file - autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"" | endif - " Autoresize windows/splits when vim resizes - autocmd VimResized * wincmd = - " floaterm integration - autocmd VimEnter * highlight FloatermBorder guibg='#282828' guifg='#fbf1c7' -]]) +-- autoresize windows/splits everytime we change to a buffer +createCmd({ 'BufEnter', 'BufWinEnter' }, { pattern = { '*' }, command = 'wincmd =' }) --- make dash-spearated-key"ords on "word" in vim +-- make dash-spearated-keywords in css and json a keyword createCmd({ 'BufEnter', 'BufWinEnter' }, { pattern = { '*.css', '*.scss', '*.json' }, callback = function() setlocal.iskeyword:append('-') end, diff --git a/nvim/lua/plugins/floaterm.lua b/nvim/lua/plugins/floaterm.lua index 4dc5b43b..ef8f72c4 100644 --- a/nvim/lua/plugins/floaterm.lua +++ b/nvim/lua/plugins/floaterm.lua @@ -1,6 +1,14 @@ -vim.g.floaterm_width = 0.9 -vim.g.floaterm_height = 0.9 -vim.g.floaterm_autoclose = 1 -vim.g.floaterm_opener = 'edit' -vim.g.floaterm_borderchars = '─│─│╭╮╯╰' -vim.g.floaterm_title = '' +local g = vim.g +local createCmd = vim.api.nvim_create_autocmd + +g.floaterm_width = 0.9 +g.floaterm_height = 0.9 +g.floaterm_autoclose = 1 +g.floaterm_opener = 'edit' +g.floaterm_borderchars = '─│─│╭╮╯╰' +g.floaterm_title = '' + +createCmd({ 'VimEnter' }, { + pattern = { '*' }, + command = "highlight FloatermBorder guibg='#282828' guifg='#fbf1c7'", +}) diff --git a/nvim/lua/plugins/lint.lua b/nvim/lua/plugins/lint.lua index f6c42bf6..7173a58c 100644 --- a/nvim/lua/plugins/lint.lua +++ b/nvim/lua/plugins/lint.lua @@ -11,11 +11,24 @@ require('lint').linters_by_ft = { typescriptreact = { 'tsc', 'eslint_d' }, } --- TODO stylelint for local files :/ override args/cwd +-- stylelint always relative to current git-dir local stylelint = require('lint').linters.stylelint +stylelint['stdin'] = false +stylelint['args'] = { + '-f', + 'json', + '--config-basedir', + function() + return vim.fn.system({ 'git', 'rev-parse', '--show-toplevel' }) + end, + '--stdin-filename', + function() + return vim.fn.expand('%:p') + end, +} require('lint').linters.stylelint = stylelint -vim.api.nvim_create_autocmd({ 'BufWritePost' }, { +vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWinEnter', 'BufWritePost' }, { pattern = { '*.js', '*.ts', '*.jsx', '*.tsx', '*.yml', '*.yaml', diff --git a/nvim/lua/plugins/lspconfig.lua b/nvim/lua/plugins/lspconfig.lua index 3b731eda..23f69f29 100644 --- a/nvim/lua/plugins/lspconfig.lua +++ b/nvim/lua/plugins/lspconfig.lua @@ -1,16 +1,17 @@ local lspconfig = require('lspconfig') lspconfig.cssls.setup({ - filetypes = { 'css', 'sass', 'scss' }, + filetypes = { 'css', 'scss' }, settings = { + -- let stylelint do the validation see lint.lua css = { validate = false }, scss = { validate = false }, - sass = { validate = false }, }, }) lspconfig.yamlls.setup({ settings = { + -- let stylelint do the validation see lint.lua yaml = { validate = false }, }, }) diff --git a/nvim/lua/plugins/treesitter.lua b/nvim/lua/plugins/treesitter.lua index 6956ec0c..74d452f5 100644 --- a/nvim/lua/plugins/treesitter.lua +++ b/nvim/lua/plugins/treesitter.lua @@ -36,3 +36,5 @@ require('nvim-treesitter.configs').setup({ }, } }) + +vim.opt.foldexpr = 'nvim_treesitter#foldexpr()' diff --git a/nvim/lua/plugins/vsnip.lua b/nvim/lua/plugins/vsnip.lua index b246cd5b..353a59e2 100644 --- a/nvim/lua/plugins/vsnip.lua +++ b/nvim/lua/plugins/vsnip.lua @@ -1,13 +1,12 @@ local g = vim.g --- vsnip config g.vsnip_snippet_dirs = { os.getenv('HOME') .. '/.local/share/nvim/lazy/friendly-snippets/snippets/', os.getenv('HOME') .. '/Dotfiles/snippets/', } + g.vsnip_filetypes = { - sass = { 'css' }, - scss = { 'css' }, + scss = { 'scss', 'css' }, javascriptreact = { 'javascript' }, typescriptreact = { 'typescript', 'javascript' }, }