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', 'to', "NvimTreeFocus") vim.keymap.set('n', 'tc', "NvimTreeClose") require('SpecSwitcher').setup({ descend_dirs={ "include", "src", "spec", "impl", "specification", "implementation" }, extensions={ {"ads", "adb"} } }) vim.keymap.set('n', '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", "", vim.lsp.completion.get, {desc = "trigger autocompletion"}) end, settings = { ada = { projectFile = "project.gpr"; } } }) vim.opt.completeopt = { "menuone", "noselect", "popup" }