vim.o.laststatus     = 2
vim.o.updatetime     = 100
vim.o.scrolloff      = 3
vim.o.sidescrolloff  = 5
vim.o.textwidth      = 78
vim.o.linespace      = 0
vim.o.showcmd        = true
vim.o.showmatch      = true
vim.o.ruler          = true
vim.o.autoindent     = true
vim.o.errorbells     = false
vim.o.modeline       = true
vim.o.joinspaces     = false
vim.o.showmode       = false
vim.o.splitbelow     = true
vim.o.splitright     = true
vim.o.foldenable     = false
vim.o.undofile       = true
vim.o.hidden         = true
vim.o.autochdir      = false
vim.o.hlsearch       = true
vim.o.startofline    = false
vim.o.ignorecase     = true
vim.o.smartcase      = true
vim.o.magic          = true
vim.o.autoread       = true
vim.o.termguicolors  = true
vim.o.fileformat     = 'unix'
vim.o.inccommand     = 'split'
vim.o.switchbuf      = 'useopen'
vim.o.encoding       = 'utf-8'
vim.o.mouse          = ''
vim.o.completeopt    = 'menuone,noselect'
vim.o.backspace      = 'indent,eol,start'
vim.o.wildmenu       = true
vim.o.wildmode       = 'longest:full,full'
vim.o.wildoptions    = 'pum'
vim.o.pumblend       = 30
vim.o.backup         = false
vim.o.writebackup    = false
vim.o.swapfile       = false
vim.o.sessionoptions = 'buffers,curdir,tabpages,winsize'
vim.o.shada          = ''
vim.o.diffopt        = 'filler,internal,algorithm:histogram,indent-heuristic'
vim.o.scrolloff      = 999
vim.o.formatoptions  = "crqn1j"
vim.o.relativenumber = true

vim.g.python3_host_prog       = '/usr/bin/python3'
-- Disable providers we do not give a shit about
vim.g.loaded_python_provider  = 0
vim.g.loaded_ruby_provider    = 0
vim.g.loaded_perl_provider    = 0
vim.g.loaded_node_provider    = 0

-- Disable some in built plugins completely
vim.g.loaded_netrw            = 1
vim.g.loaded_netrwPlugin      = 1
vim.g.loaded_matchparen       = 1
vim.g.loaded_matchit          = 1
vim.g.loaded_2html_plugin     = 1
vim.g.loaded_getscriptPlugin  = 1
vim.g.loaded_gzip             = 1
vim.g.loaded_logipat          = 1
vim.g.loaded_rrhelper         = 1
vim.g.loaded_spellfile_plugin = 1
vim.g.loaded_tarPlugin        = 1
vim.g.loaded_vimballPlugin    = 1
vim.g.loaded_zipPlugin        = 1

-- Map leader
vim.g.mapleader      = " "
vim.g.maplocalleader = ","

-- Needs to set before loading ferret
vim.g.FerretMap                   = 0
vim.g.FerretHlsearch              = 0
vim.g.FerretAutojump              = 0
-- Needs to be set before loading quickr-cscope
vim.g.quickr_cscope_keymaps       = 0
-- Needs to be set before vimtex gets loaded, else it complains
vim.g.tex_flavor                  = 'latex'
vim.g.vimtex_view_general_viewer  = 'zathura'
vim.g.vimtex_view_general_options = '--unique \\@pdf\\#src:@tex:@line:@col'
-- Needs to be before togglelist gets loadded
vim.g.toggle_list_no_mappings     = 1
-- Needs to be set before nvim-peekup
vim.g.peekup_paste_before         = '<Leader>P'
vim.g.peekup_paste_after          = '<Leader>p'
-- Needs to be set before vim-sneak is loaded
vim.g['sneak#label']              = 1
vim.g['sneak#s_next']             = 1
vim.g['sneak#use_ic_scs']         = 0

-- We do this to prevent the loading of the system fzf.vim plugin. This is
-- present at least on Arch/Manjaro
vim.api.nvim_command('set rtp-=/usr/share/vim/vimfiles')

require 'plugins'
require 'autocmd'
require 'keymappings'
require 'yolokai'
require 'lsp'

-- Load our custom color scheme
vim.api.nvim_command('colorscheme yolokai')
