My own configuration files
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

122 lines
3.4 KiB

-- general configuration
vim.opt.background = 'dark' -- the theme background is dark
vim.opt.termguicolors = true
vim.opt.cursorline = true -- highlight the line with the cursor
vim.opt.wrap = false -- do not wrap long lines
vim.opt.foldmethod = 'marker' -- when folding, use the marker
vim.opt.laststatus = 2 -- always show the status line
vim.opt.showtabline = 2 -- always show the tab bar
vim.opt.scrolloff = 2 -- number of lines to always have around cursor
vim.opt.splitright = true -- vertical splits open on the right
vim.opt.splitbelow = true -- horizontal splits open on the bottom
vim.g.mapleader = ' ' -- space is the leader character
-- commands that don't exist in lua yet
vim.cmd [[
color molokai
]]
-- Keybind: use '-' to open the file explorer
vim.api.nvim_set_keymap('n', '-', ':Ex<CR>', { noremap=true, silent=true })
-- lsp configuration
local nvim_lsp = require('lspconfig')
local function buf_set_keymap(...)
vim.api.nvim_buf_set_keymap(bufnr, ...)
end
local opts = { noremap=true, silent=true }
local on_attach = function(client, bufnr)
-- let's use the lsp filetype attach to set buffer (and window) options
vim.bo.expandtab = true
vim.bo.tabstop = 4
vim.bo.shiftwidth = 4
vim.bo.softtabstop = 4
vim.bo.textwidth = 79
vim.wo.number = true
vim.wo.colorcolumn = '80'
vim.diagnostic.config({signs = false})
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
buf_set_keymap('n', 'gF', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
buf_set_keymap('n', 'gR', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
buf_set_keymap('n', 'g?', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
buf_set_keymap('n', 'gp', '<cmd>lua vim.lsp.buf.completion()<CR>', opts)
buf_set_keymap('n', 'ge', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
if client.resolved_capabilities.document_formatting then
vim.api.nvim_command [[augroup Format]]
vim.api.nvim_command [[autocmd! * <buffer>]]
vim.api.nvim_command [[autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_seq_sync()]]
vim.api.nvim_command [[augroup END]]
end
end
-- attach the keymaps
-- lsp servers/languages configuration
nvim_lsp.rust_analyzer.setup {
on_attach = on_attach
}
nvim_lsp.pyright.setup {
on_attach = on_attach
}
-- treesitter
require 'nvim-treesitter.configs'.setup {
ensure_installed = 'maintained',
sync_install = false,
highlight = {
enable = true,
},
}
-- lualine (better statusline)
require 'lualine'.setup {
options = {
icons_enabled = true,
-- theme = 'ayu_dark',
theme = 'ayu_mirage',
component_separators = { left = ' ', right = ' '},
section_separators = { left = ' ', right = ' '},
disabled_filetypes = {},
always_divide_middle = true,
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch'},
lualine_c = {
{
'diagnostics',
symbols = {error = 'E', warn = 'W', info = 'I', hint = 'H'},
}
},
lualine_d = {'filename'},
lualine_w = {'encoding'},
lualine_x = {'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {'filename'},
lualine_x = {'location'},
lualine_y = {},
lualine_z = {}
},
tabline = {
lualine_a = {},
lualine_b = {'filename'},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = {'tabs'}
},
extensions = {}
}