131 lines
2.8 KiB
Lua
131 lines
2.8 KiB
Lua
-- vim: ft=lua:foldmethod=marker:foldmarker=[[[,]]]
|
|
|
|
local Path = require('plenary.path')
|
|
|
|
local g = vim.g
|
|
local o = vim.o
|
|
local wo = vim.wo
|
|
local bo = vim.bo
|
|
local cmd = vim.cmd
|
|
local api = vim.api
|
|
|
|
-- Line numbers [[[
|
|
wo.number = true
|
|
wo.relativenumber = true
|
|
-- ]]]
|
|
|
|
-- Indenting [[[
|
|
bo.autoindent = true
|
|
bo.smartindent = true
|
|
o.smarttab = true
|
|
bo.expandtab = true
|
|
bo.tabstop = 2
|
|
bo.shiftwidth = 2
|
|
-- ]]]
|
|
|
|
-- Backup and swap files [[[
|
|
local cache_dir = Path:new(vim.env.HOME .. '/.cache/nvim/tmp')
|
|
if not cache_dir:exists() then
|
|
cache_dir:mkdir({mode = 493})
|
|
end
|
|
|
|
o.backupcopy = 'yes'
|
|
g.backupdir = cache_dir:expand()
|
|
o.updatetime = 300
|
|
bo.swapfile = false
|
|
-- ]]]
|
|
|
|
-- Theme [[[
|
|
-- cmd 'colorscheme monokai'
|
|
-- o.termguicolors = true
|
|
-- o.background = 'dark'
|
|
cmd 'colorscheme catppuccin'
|
|
-- ]]]
|
|
|
|
-- Airline [[[
|
|
-- g.airline_theme = 'molokai'
|
|
g.airline_theme = 'catppuccin'
|
|
g.airline_powerline_fonts = 1
|
|
-- ]]]
|
|
|
|
-- Undo stuff [[[
|
|
if vim.fn.exists('+undofile') then
|
|
local undo_dir = Path:new(vim.env.HOME .. '/.cache/nvim/undo')
|
|
if not undo_dir:exists() then
|
|
undo_dir:mkdir({mode = 493})
|
|
end
|
|
|
|
o.undofile = true
|
|
o.undodir = undo_dir:expand()
|
|
o.undolevels = 500
|
|
end
|
|
-- ]]]
|
|
|
|
-- Misc [[[
|
|
wo.signcolumn = 'auto'
|
|
wo.colorcolumn = '+1'
|
|
-- bo.textwidth = 120
|
|
o.wildmenu = true
|
|
o.hlsearch = true
|
|
wo.foldmethod = 'marker'
|
|
o.exrc = true
|
|
o.secure = true
|
|
wo.wrap = false
|
|
-- ]]]
|
|
|
|
-- netrw [[[
|
|
g.netrw_banner = 1
|
|
g.netrw_liststyle = 3
|
|
g.netrw_altv = 1
|
|
g.netrw_winsize = 20
|
|
g.netrw_preview = 1
|
|
-- ]]]
|
|
|
|
-- Autocommands [[[
|
|
function create_augroup(autocmds, name)
|
|
cmd('augroup ' .. name)
|
|
cmd('autocmd!')
|
|
for _, autocmd in ipairs(autocmds) do
|
|
cmd('autocmd ' .. table.concat(autocmd, ' '))
|
|
end
|
|
cmd('augroup END')
|
|
end
|
|
|
|
if not vim.fn.has('gui_running') then
|
|
o.timeoutlen = 1000
|
|
|
|
create_augroup({
|
|
{ 'InsertEnter', '*', 'set timeoutlen=0' },
|
|
{ 'InsertLeave', '*', 'set timeoutlen=1000' }
|
|
}, 'fast_escape')
|
|
end
|
|
|
|
if vim.fn.has('autocmd') then
|
|
create_augroup({
|
|
{ 'FileType', 'text', 'setlocal', 'textwidth=78' },
|
|
{ 'FileType', 'gitcommit', 'setlocal', 'spell' },
|
|
{ 'FileType', 'markdown', 'setlocal', 'spell' },
|
|
{ 'FileType', 'markdown', 'setlocal', 'wrap' },
|
|
{ 'BufNewFile,BufRead', '*.ex,*.eex', 'setf', 'elixir' },
|
|
{ 'BufNewFile,BufRead', '*.eex,*.leex,*.heex,*.sface', 'setf', 'eelixir' },
|
|
{ 'BufNewFile,BufRead', 'mix.lock', 'set', 'filetype=elixir' },
|
|
}, 'filetypes')
|
|
end
|
|
-- ]]]
|
|
|
|
-- Ignores [[[
|
|
vim.opt.wildignore = {
|
|
'*/.git/*',
|
|
'*/tmp/*',
|
|
'*.swp',
|
|
'*/.DS_Store',
|
|
'*/vendor',
|
|
'*/env/*',
|
|
'*/deps/*',
|
|
'*/_build/*',
|
|
'*/elixir_ls/*',
|
|
'*/node_modules/*',
|
|
'*/*.ghc',
|
|
'*/*.o'
|
|
}
|
|
-- ]]]
|