nixos/init.lua

118 lines
3.7 KiB
Lua

vim.o.showtabline = 2
require('tabby.tabline').use_preset('active_wins_at_tail', { nerdfont = false })
require('trouble').setup()
require('fidget').setup()
require('hop').setup()
-- gitsigns config
require('gitsigns').setup{
signcolumn = true,
numhl = true,
linehl = true,
current_line_blame = true,
on_attach = function(bufnr)
-- Setup keymaps
vim.api.nvim_buf_set_keymap(bufnr, 'n', '[g', '<cmd>Gitsigns prev_hunk<CR>', {})
vim.api.nvim_buf_set_keymap(bufnr, 'n', ']g', '<cmd>Gitsigns next_hunk<CR>', {})
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>hp', '<cmd>Gitsigns preview_hunk<CR>', {})
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>hs', '<cmd>Gitsigns select_hunk<CR>', {})
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>bl', '<cmd>Gitsigns blame_line<CR>', {})
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>bt', '<cmd>Gitsigns toggle_current_line_blame<CR>', {})
end,
}
-- lualine config
require('lualine').setup{
options = {
icons_enabled = true,
theme = 'auto',
},
sections = {
-- lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_x = {'aerial', 'filetype'}
},
extensions = {'aerial', 'fugitive', 'fzf', 'nvim-tree', 'toggleterm'}
}
-- nightfox setup
require('nightfox').setup{
modules = {
aerial = true,
cmp = true,
diagnostic = true,
fidget = true,
gitgutter = true,
hop = true,
lsp_trouble = true,
nvimtree = true,
telescope = true,
treesitter = true,
},
}
-- nvim-tree config
require('nvim-tree').setup{
filters = { custom = { "^.git$" } }
}
-- toggleterm config
require('toggleterm').setup{
open_mapping = [[\t]],
size = 20,
hide_numbers = true, -- hide the number column in toggleterm buffers
persist_size = false,
}
function _G.set_terminal_keymaps()
local opts = {buffer = 0}
vim.keymap.set('t', '<C-h>', [[<Cmd>wincmd h<CR>]], opts)
vim.keymap.set('t', '<C-j>', [[<Cmd>wincmd j<CR>]], opts)
vim.keymap.set('t', '<C-k>', [[<Cmd>wincmd k<CR>]], opts)
vim.keymap.set('t', '<C-l>', [[<Cmd>wincmd l<CR>]], opts)
end
vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
local Terminal = require('toggleterm.terminal').Terminal
local lazygit = Terminal:new({ cmd = "lazygit", count = 99, direction = 'float' })
local ranger = Terminal:new({ cmd = "ranger", count = 100, direction = 'float' })
function _lazygit_toggle()
lazygit:toggle()
end
function _ranger_toggle()
ranger:toggle()
end
vim.api.nvim_set_keymap("n", "<leader>g", "<cmd>lua _lazygit_toggle()<CR>", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "<leader>r", "<cmd>lua _ranger_toggle()<CR>", {noremap = true, silent = true})
-- load telescope integrations
require('telescope').load_extension('aerial')
require('telescope').load_extension('notify')
local actions = require('telescope.actions')
local trouble = require('trouble.providers.telescope')
require('telescope').setup{
defaults = {
mappings = {
i = { ["<c-t>"] = trouble.open_with_trouble },
n = { ["<c-t>"] = trouble.open_with_trouble },
},
},
}
-- Set nvim-notify as default for notifications
vim.notify = require("notify")
-- SnipRun config
require('sniprun').setup{
selected_interpreters = { 'Python3_fifo' },
repl_enable = {'Python3_fifo'},
display = {
"NvimNotify"
},
}