local cmd = vim.cmd local fn = vim.fn local opt = vim.o local g = vim.g -- <leader> key. Defaults to `\`. Some people prefer space. g.mapleader = ' ' -- g.maplocalleader = ' ' vim.opt.wrap = false opt.compatible = false -- Enable true colour support if fn.has('termguicolors') then opt.termguicolors = true end vim.cmd.colorscheme "catppuccin-mocha" -- See :h <option> to see what the options do -- Search down into subfolders opt.path = vim.o.path .. '**' opt.number = true opt.relativenumber = true opt.cursorline = true opt.lazyredraw = true opt.showmatch = true -- Highlight matching parentheses, etc vim.api.nvim_create_autocmd('TextYankPost', { -- Highlight yank group = vim.api.nvim_create_augroup('highlight_yank', {}), desc = 'Hightlight selection on yank', pattern = '*', callback = function() vim.highlight.on_yank { higroup = 'IncSearch', timeout = 200 } end, }) opt.incsearch = true opt.hlsearch = true opt.ignorecase = true -- Make search case insensitive opt.smartcase = true -- Overrides ignorecase if your pattern contains mixed case opt.spell = true opt.spelllang = 'en' opt.expandtab = true opt.tabstop = 2 opt.softtabstop = 2 opt.shiftwidth = 2 opt.foldenable = true opt.history = 2000 opt.nrformats = 'bin,hex' -- 'octal' opt.undofile = true opt.splitright = true opt.splitbelow = true opt.cmdheight = 0 opt.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] -- Configure Neovim diagnostic messages local function prefix_diagnostic(prefix, diagnostic) return string.format(prefix .. ' %s', diagnostic.message) end local sign = function(opts) fn.sign_define(opts.name, { texthl = opts.name, text = opts.text, numhl = '', }) end -- Requires Nerd fonts sign { name = 'DiagnosticSignError', text = '' } sign { name = 'DiagnosticSignWarn', text = '⚠' } sign { name = 'DiagnosticSignInfo', text = 'ⓘ' } sign { name = 'DiagnosticSignHint', text = '' } vim.diagnostic.config { virtual_text = { prefix = '', format = function(diagnostic) local severity = diagnostic.severity if severity == vim.diagnostic.severity.ERROR then return prefix_diagnostic('', diagnostic) end if severity == vim.diagnostic.severity.WARN then return prefix_diagnostic('⚠', diagnostic) end if severity == vim.diagnostic.severity.INFO then return prefix_diagnostic('ⓘ', diagnostic) end if severity == vim.diagnostic.severity.HINT then return prefix_diagnostic('', diagnostic) end return prefix_diagnostic('■', diagnostic) end, }, signs = true, update_in_insert = false, underline = true, severity_sort = true, float = { focusable = false, style = 'minimal', border = 'rounded', source = 'always', header = '', prefix = '', }, } g.editorconfig = true -- cmd[[colorscheme tokyonight]] vim.opt.colorcolumn = '80,100' -- Native plugins cmd.filetype('plugin', 'indent', 'on') cmd.packadd('cfilter') -- Allows filtering the quickfix list with :cfdo -- let sqlite.lua (which some plugins depend on) know where to find sqlite vim.g.sqlite_clib_path = require('luv').os_getenv('LIBSQLITE') -- this should be at the end, because -- it causes neovim to source ftplugins -- on the packpath when passing a file to the nvim command cmd.syntax('on') cmd.syntax('enable')