177 lines
3.9 KiB
Lua
177 lines
3.9 KiB
Lua
vim.cmd[[packadd packer.nvim]]
|
|
|
|
vim.opt.nu = true
|
|
vim.opt.relativenumber = true
|
|
|
|
vim.opt.tabstop = 4
|
|
vim.opt.softtabstop = 4
|
|
vim.opt.shiftwidth = 4
|
|
vim.opt.expandtab = true
|
|
|
|
vim.opt.smartindent = true
|
|
|
|
vim.opt.wrap = false
|
|
|
|
vim.opt.swapfile = false
|
|
vim.opt.backup = false
|
|
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
|
vim.opt.undofile = true
|
|
|
|
vim.opt.hlsearch = false
|
|
vim.opt.incsearch = true
|
|
|
|
vim.opt.termguicolors = true
|
|
|
|
vim.opt.scrolloff = 8
|
|
vim.opt.signcolumn = "yes"
|
|
vim.opt.isfname:append("@-@")
|
|
|
|
vim.opt.updatetime = 50
|
|
|
|
vim.opt.colorcolumn = "80"
|
|
|
|
vim.g.loaded_netrw = 1
|
|
vim.g.loaded_netrwPlugin = 1
|
|
|
|
vim.g.rainbow_active = 1
|
|
vim.g.indent_guides_start_level=1
|
|
|
|
vim.cmd('filetype plugin on')
|
|
vim.cmd('syntax on')
|
|
|
|
require('packer').startup(function(use)
|
|
|
|
use('tpope/vim-surround')
|
|
use('neovim/nvim-lspconfig')
|
|
use('folke/tokyonight.nvim')
|
|
use('euclidianAce/BetterLua.vim')
|
|
use{
|
|
'https://git.folkert-kevelam.nl/folkert/Neovim-SpecSwitcher.git',
|
|
as = 'SpecSwitcher'
|
|
}
|
|
use{
|
|
'nvim-lualine/lualine.nvim',
|
|
dependencies = { 'nvim-tree/nvim-web-devicons' }
|
|
}
|
|
use('airblade/vim-gitgutter')
|
|
|
|
use('janet-lang/janet.vim')
|
|
use{
|
|
'nvim-treesitter/nvim-treesitter',
|
|
run = ':TSUpdate'
|
|
}
|
|
|
|
use('nvim-tree/nvim-tree.lua')
|
|
end)
|
|
|
|
require("nvim-tree").setup()
|
|
|
|
vim.keymap.set('n', '<leader>to', "<cmd>NvimTreeFocus<CR>")
|
|
vim.keymap.set('n', '<leader>tc', "<cmd>NvimTreeClose<CR>")
|
|
|
|
require('SpecSwitcher').setup({
|
|
descend_dirs={
|
|
"include",
|
|
"src",
|
|
"spec",
|
|
"impl",
|
|
"specification",
|
|
"implementation"
|
|
},
|
|
extensions={
|
|
{"ads", "adb"}
|
|
}
|
|
})
|
|
|
|
vim.keymap.set('n', '<leader>n', require('SpecSwitcher').Switch_Open(false))
|
|
|
|
require('tokyonight').setup({
|
|
style = "storm",
|
|
light_style = "day",
|
|
transparent = false,
|
|
terminal_colors = true,
|
|
})
|
|
|
|
vim.cmd[[colorscheme tokyonight]]
|
|
|
|
require('lualine').setup({
|
|
tabline = {
|
|
lualine_a = {'buffers'},
|
|
lualine_b = {'branch'},
|
|
lualine_c = {'filename'},
|
|
lualine_x = {},
|
|
lualine_y = {'windows'},
|
|
lualine_z = {'tabs'}
|
|
}
|
|
})
|
|
|
|
vim.wo.foldmethod = 'expr'
|
|
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
|
|
|
|
require'nvim-treesitter.configs'.setup {
|
|
ensure_installed = {"ada"},
|
|
sync_install = false,
|
|
auto_install = true,
|
|
highlight = {
|
|
enable = true,
|
|
additional_vim_regex_highlighting = true
|
|
}
|
|
}
|
|
|
|
vim.lsp.enable('lua_ls')
|
|
vim.lsp.config('lua_ls', {
|
|
on_init = function(client)
|
|
if client.workspace_folders then
|
|
local path = client.workspace_folders[1].name
|
|
if
|
|
path ~= vim.fn.srtdpath('config')
|
|
and (vim.uv.fs_state(path .. '/.luarc.json') or vim.uv.fs_state(path .. '/.luarc.jsonc'))
|
|
then
|
|
return
|
|
end
|
|
end
|
|
|
|
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
|
|
runtime = {
|
|
version = 'LuaJIT',
|
|
|
|
path = {
|
|
'lua/?.lua',
|
|
'lua/?/init.lua',
|
|
},
|
|
},
|
|
|
|
workspace = {
|
|
checkThirdParty = false,
|
|
library = {
|
|
vim.env.VIMRUNTIME
|
|
}
|
|
}
|
|
})
|
|
end,
|
|
settings = {
|
|
Lua = {}
|
|
}
|
|
})
|
|
|
|
vim.lsp.enable('ada_ls')
|
|
|
|
vim.lsp.config('ada_ls', {
|
|
on_attach = function(client, bufnr)
|
|
vim.lsp.completion.enable(true, client.id, bufnr, {
|
|
autotrigger = true,
|
|
convert = function(item)
|
|
return { abbr = item.label:gsub("%b()", "") }
|
|
end,
|
|
})
|
|
vim.keymap.set("i", "<C-space>", vim.lsp.completion.get, {desc = "trigger autocompletion"})
|
|
end,
|
|
settings = {
|
|
ada = {
|
|
projectFile = "project.gpr";
|
|
}
|
|
}
|
|
})
|
|
|
|
vim.opt.completeopt = { "menuone", "noselect", "popup" }
|