Added lazy.nvim and treesitter

This commit is contained in:
2026-08-06 22:58:57 +02:00
parent a5be7d2956
commit e2a4b535cd
4 changed files with 102 additions and 58 deletions
+2 -58
View File
@@ -1,60 +1,4 @@
-- Enable relative line numbers
vim.opt.number = true
vim.opt.relativenumber = true
require("settings")
-- GUI stuff
vim.opt.cursorline = true -- Highlight the current line
vim.opt.colorcolumn = "80,120" -- Show vertical ruler
vim.opt.scrolloff = 8 -- Keep at least 8 lines between the cursor and the borders
vim.opt.wrap = false -- Don't wrap long lines
-- Show whitespace characters (tabs, trailing spaces, etc.)
vim.opt.list = true
vim.opt.listchars = { tab = '» ', trail = '·', multispace = '·', nbsp = '' }
-- Strip trailing whitespace and extra blank lines at end of file on save
local trim_group = vim.api.nvim_create_augroup('TrimOnSave', { clear = true })
vim.api.nvim_create_autocmd('BufWritePre', {
group = trim_group,
pattern = '*',
callback = function()
local save_view = vim.fn.winsaveview()
vim.cmd([[%s/\s\+$//e]]) -- Remove trailing whitespace on every line
vim.cmd([[%s/\n\+\%$//e]]) -- Remove all trailing blank lines
vim.fn.append(vim.fn.line('$'), '') -- Always append exactly one blank line at the end
vim.fn.setpos('.', save_cursor) -- Restore the window to where it was before the edits
end,
})
-- Remove background opacity
vim.api.nvim_set_hl(0, 'Normal', { bg = 'none' })
vim.api.nvim_set_hl(0, 'NormalFloat', { bg = 'none' })
-- Remember old sessions
vim.opt.undofile = true
local restore_cursor_group = vim.api.nvim_create_augroup('RestoreCursor', { clear = true })
vim.api.nvim_create_autocmd('BufReadPost', {
group = restore_cursor_group,
callback = function()
local mark = vim.api.nvim_buf_get_mark(0, '"')
local last_line = vim.api.nvim_buf_line_count(0)
if mark[1] > 0 and mark[1] <= last_line then
vim.schedule(function()
vim.api.nvim_win_set_cursor(0, mark)
vim.cmd.normal({ 'zz', bang = true })
end)
end
end,
})
-- Indentation
vim.opt.tabstop = 4 -- Visual width of a tab character
vim.opt.softtabstop = 4 -- Spaces inserted/deleted per Tab/Backspace in insert mode
vim.opt.shiftwidth = 4 -- Width used by >>, <<, and autoindent
vim.opt.expandtab = true -- Typed tabs become spaces
vim.opt.smartindent = true -- Auto-indent new lines based on syntax (e.g. after '{')
-- Search
vim.opt.ignorecase = true -- Case-insensitive search...
vim.opt.smartcase = true -- ...unless you type an explicit uppercase letter
require("lazy-nvim")
@@ -0,0 +1,30 @@
-- https://lazy.folke.io/installation
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Setup lazy.nvim
require("lazy").setup({
spec = {
-- Import `plugins/` dir
{ import = "plugins" },
},
-- Automatically check for plugin updates
checker = { enabled = true },
})
@@ -0,0 +1,6 @@
return {
'nvim-treesitter/nvim-treesitter',
lazy = false,
build = ':TSUpdate'
}
@@ -0,0 +1,64 @@
-- Leader key
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- Enable relative line numbers
vim.opt.number = true
vim.opt.relativenumber = true
-- GUI stuff
vim.opt.cursorline = true -- Highlight the current line
vim.opt.colorcolumn = "80,120" -- Show vertical ruler
vim.opt.scrolloff = 8 -- Keep at least 8 lines between the cursor and the borders
vim.opt.wrap = false -- Don't wrap long lines
-- Show whitespace characters (tabs, trailing spaces, etc.)
vim.opt.list = true
vim.opt.listchars = { tab = '» ', trail = '·', multispace = '·', nbsp = '' }
-- Strip trailing whitespace and extra blank lines at end of file on save
local trim_group = vim.api.nvim_create_augroup('TrimOnSave', { clear = true })
vim.api.nvim_create_autocmd('BufWritePre', {
group = trim_group,
pattern = '*',
callback = function()
local save_view = vim.fn.winsaveview()
vim.cmd([[%s/\s\+$//e]]) -- Remove trailing whitespace on every line
vim.cmd([[%s/\n\+\%$//e]]) -- Remove all trailing blank lines
vim.fn.append(vim.fn.line('$'), '') -- Always append exactly one blank line at the end
vim.fn.setpos('.', save_cursor) -- Restore the window to where it was before the edits
end,
})
-- Remove background opacity
vim.api.nvim_set_hl(0, 'Normal', { bg = 'none' })
vim.api.nvim_set_hl(0, 'NormalFloat', { bg = 'none' })
-- Remember old sessions
vim.opt.undofile = true
local restore_cursor_group = vim.api.nvim_create_augroup('RestoreCursor', { clear = true })
vim.api.nvim_create_autocmd('BufReadPost', {
group = restore_cursor_group,
callback = function()
local mark = vim.api.nvim_buf_get_mark(0, '"')
local last_line = vim.api.nvim_buf_line_count(0)
if mark[1] > 0 and mark[1] <= last_line then
vim.schedule(function()
vim.api.nvim_win_set_cursor(0, mark)
vim.cmd.normal({ 'zz', bang = true })
end)
end
end,
})
-- Indentation
vim.opt.tabstop = 4 -- Visual width of a tab character
vim.opt.softtabstop = 4 -- Spaces inserted/deleted per Tab/Backspace in insert mode
vim.opt.shiftwidth = 4 -- Width used by >>, <<, and autoindent
vim.opt.expandtab = true -- Typed tabs become spaces
vim.opt.smartindent = true -- Auto-indent new lines based on syntax (e.g. after '{')
-- Search
vim.opt.ignorecase = true -- Case-insensitive search...
vim.opt.smartcase = true -- ...unless you type an explicit uppercase letter