🍯 Glaze

local map = function(mode, lhs, rhs, desc)
  vim.keymap.set(mode, lhs, rhs, { silent = true, noremap = true, desc = desc })
end

vim.g.mapleader = ","

vim.opt.modelines = 0
vim.opt.spell = false
vim.opt.digraph = false
vim.opt.updatetime = 100
vim.opt.backupcopy = "yes"
vim.opt.title = true

if vim.fn.has("wind32") == 1 then
  map("n", "", "", "Disable Ctrl-Z on win32")
end

map("n", "", function() vim.cmd.nohlsearch() end, "Clear search highlight")
map("t", "-", [[]], "Terminal: exit to normal mode")
map("n", "-", function()
  vim.cmd("split")
  -- If there's a file, use its dir; else use current working dir
  local bufname = vim.api.nvim_buf_get_name(0)
  local dir = (bufname ~= "" and vim.fn.fnamemodify(bufname, ":p:h")) or vim.loop.cwd()
  vim.cmd.lcd(vim.fn.fnameescape(dir))
  vim.cmd("terminal")
end, "Open terminal split in file dir")

local function set_title()
  local cwd_tail = vim.fn.fnamemodify(vim.loop.cwd(), ":t")
  local file_tail = vim.fn.expand("%:t")
  if file_tail == "" then file_tail = "[No Name]" end
  vim.opt.titlestring = string.format("%s - %s", cwd_tail, file_tail)
end

local title_grp = vim.api.nvim_create_augroup("title_string", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter", "DirChanged" }, {
  group = title_grp,
  callback = set_title,
})

require('config.lazy')
require('config.general')
require('config.statusline')
require('config.tabline')
require('config.gblamepr')