73 lines
2.2 KiB
Lua
73 lines
2.2 KiB
Lua
-- Minimal settings for bootstrap and Phase 3.2
|
|
|
|
-- Disable unused language providers early; enable later only if a plugin requires them
|
|
vim.g.loaded_ruby_provider = 0
|
|
vim.g.loaded_perl_provider = 0
|
|
vim.g.loaded_node_provider = 0
|
|
|
|
-- Enable project-local configuration files
|
|
vim.opt.exrc = true -- Load .nvim.lua from project root
|
|
vim.opt.secure = true -- Prompt before loading untrusted files
|
|
|
|
-- Phase 3.2: non-plugin settings (legacy values where specified)
|
|
-- Completion UI for nvim-cmp
|
|
vim.opt.completeopt = { "menu", "menuone", "noselect" }
|
|
|
|
-- Spelling
|
|
vim.opt.spelllang = { "en_gb" }
|
|
|
|
-- Keyword characters (add $ for PHP/shell variables, - for CSS/HTML/config files)
|
|
vim.opt.iskeyword:append("$")
|
|
vim.opt.iskeyword:append("-")
|
|
|
|
-- Visuals
|
|
vim.opt.showbreak = " ↳"
|
|
vim.opt.listchars = {
|
|
eol = "¬",
|
|
tab = "│ ",
|
|
trail = "~",
|
|
extends = ">",
|
|
precedes = "<",
|
|
space = "·",
|
|
}
|
|
|
|
-- Enable line numbers and relative line numbers
|
|
vim.opt.number = true
|
|
vim.opt.relativenumber = true
|
|
|
|
-- Scrolloff settings
|
|
vim.opt.scrolloff = 4
|
|
|
|
-- Phase 6.2: UX settings
|
|
vim.opt.signcolumn = "yes" -- Always show sign column (for LSP diagnostics, git signs, etc.)
|
|
vim.opt.cursorline = true -- Highlight current line
|
|
vim.opt.colorcolumn = "80,120" -- Visual guides at 80 and 120 characters
|
|
|
|
-- Phase 9.4: Default indentation (per-filetype overrides in after/ftplugin/)
|
|
vim.opt.tabstop = 4 -- Display tabs as 4 spaces
|
|
vim.opt.shiftwidth = 4 -- Indent by 4
|
|
vim.opt.softtabstop = 4 -- Backspace removes 4 spaces
|
|
vim.opt.expandtab = true -- Use spaces by default (overridden per-filetype)
|
|
|
|
-- LSP diagnostics configuration
|
|
vim.diagnostic.config({
|
|
virtual_text = {
|
|
spacing = 4,
|
|
prefix = "●",
|
|
-- Show severity (ERROR, WARN, INFO, HINT)
|
|
format = function(diagnostic)
|
|
return string.format("%s: %s", diagnostic.source or "", diagnostic.message)
|
|
end,
|
|
},
|
|
signs = false, -- Disable signs (redundant with background highlights and virtual text)
|
|
underline = true, -- Use background highlights on problematic text
|
|
update_in_insert = false, -- Don't update diagnostics while typing
|
|
severity_sort = true, -- Sort by severity (errors first)
|
|
float = {
|
|
border = "rounded",
|
|
source = "always", -- Show diagnostic source
|
|
header = "",
|
|
prefix = "",
|
|
},
|
|
})
|