2021-07-27 00:28:47 +02:00
local M = { }
2022-01-04 09:47:59 +01:00
local join_paths = require ( " lvim.utils " ) . join_paths
M.load_default_options = function ( )
2021-07-27 00:28:47 +02:00
local default_options = {
backup = false , -- creates a backup file
clipboard = " unnamedplus " , -- allows neovim to access the system clipboard
cmdheight = 2 , -- more space in the neovim command line for displaying messages
colorcolumn = " 99999 " , -- fixes indentline for now
completeopt = { " menuone " , " noselect " } ,
conceallevel = 0 , -- so that `` is visible in markdown files
fileencoding = " utf-8 " , -- the encoding written to a file
foldmethod = " manual " , -- folding, set to "expr" for treesitter based folding
foldexpr = " " , -- set to "nvim_treesitter#foldexpr()" for treesitter based folding
guifont = " monospace:h17 " , -- the font used in graphical neovim applications
hidden = true , -- required to keep multiple buffers and open multiple buffers
hlsearch = true , -- highlight all matches on previous search pattern
ignorecase = true , -- ignore case in search patterns
mouse = " a " , -- allow the mouse to be used in neovim
pumheight = 10 , -- pop up menu height
showmode = false , -- we don't need to see things like -- INSERT -- anymore
showtabline = 2 , -- always show tabs
smartcase = true , -- smart case
smartindent = true , -- make indenting smarter again
splitbelow = true , -- force all horizontal splits to go below current window
splitright = true , -- force all vertical splits to go to the right of current window
swapfile = false , -- creates a swapfile
termguicolors = true , -- set term gui colors (most terminals support this)
2022-02-16 10:31:06 +01:00
timeoutlen = 250 , -- time to wait for a mapped sequence to complete (in milliseconds)
2021-07-27 00:28:47 +02:00
title = true , -- set the title of window to the value of the titlestring
-- opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to
2022-01-04 09:47:59 +01:00
undodir = join_paths ( get_cache_dir ( ) , " undo " ) , -- set an undo directory
2021-07-27 00:28:47 +02:00
undofile = true , -- enable persistent undo
updatetime = 300 , -- faster completion
writebackup = false , -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
expandtab = true , -- convert tabs to spaces
shiftwidth = 2 , -- the number of spaces inserted for each indentation
tabstop = 2 , -- insert 2 spaces for a tab
cursorline = true , -- highlight the current line
number = true , -- set numbered lines
relativenumber = false , -- set relative numbered lines
numberwidth = 4 , -- set number column width to 2 {default 4}
signcolumn = " yes " , -- always show the sign column, otherwise it would shift the text each time
wrap = false , -- display lines as one long line
spell = false ,
spelllang = " en " ,
2022-01-04 09:47:59 +01:00
spellfile = join_paths ( get_config_dir ( ) , " spell " , " en.utf-8.add " ) ,
shadafile = join_paths ( get_cache_dir ( ) , " lvim.shada " ) ,
scrolloff = 8 , -- minimal number of screen lines to keep above and below the cursor.
sidescrolloff = 8 , -- minimal number of screen lines to keep left and right of the cursor.
2021-09-13 11:10:22 +02:00
}
2021-07-03 17:33:54 +02:00
2021-07-27 00:28:47 +02:00
--- SETTINGS ---
2021-08-25 07:47:48 +02:00
vim.opt . shortmess : append " c "
2022-01-04 09:47:59 +01:00
vim.opt . whichwrap : append " <,>,[,],h,l "
2021-11-15 09:20:45 +01:00
2021-07-27 00:28:47 +02:00
for k , v in pairs ( default_options ) do
vim.opt [ k ] = v
end
end
2021-07-03 17:33:54 +02:00
2022-01-04 09:47:59 +01:00
M.load_headless_options = function ( )
vim.opt . shortmess = " " -- try to prevent echom from cutting messages off or prompting
vim.opt . more = false -- don't pause listing when screen is filled
vim.opt . cmdheight = 9999 -- helps avoiding |hit-enter| prompts.
vim.opt . columns = 9999 -- set the widest screen possible
vim.opt . swapfile = false -- don't use a swap file
end
2021-07-10 08:38:25 +02:00
2022-01-04 09:47:59 +01:00
M.load_options = function ( )
if # vim.api . nvim_list_uis ( ) == 0 then
M.load_headless_options ( )
return
2021-07-27 00:28:47 +02:00
end
2022-01-04 09:47:59 +01:00
M.load_default_options ( )
2021-07-10 09:19:32 +02:00
end
2021-07-27 00:28:47 +02:00
return M