170 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Lua
		
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Lua
		
	
	
	
| -- Set <space> as the leader key
 | |
| -- See `:help mapleader`
 | |
| --  NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
 | |
| vim.g.mapleader = ' '
 | |
| vim.g.maplocalleader = ' '
 | |
| 
 | |
| vim.g.have_nerd_font = true
 | |
| 
 | |
| -- [[ Setting options ]]
 | |
| -- See `:help vim.opt`
 | |
| -- NOTE: You can change these options as you wish!
 | |
| --  For more options, you can see `:help option-list`
 | |
| 
 | |
| vim.opt.relativenumber = true
 | |
| 
 | |
| -- Tab settings
 | |
| vim.opt.expandtab = true
 | |
| vim.opt.tabstop = 4
 | |
| vim.opt.softtabstop = 4
 | |
| vim.opt.shiftwidth = 4
 | |
| 
 | |
| -- Enable mouse mode, can be useful for resizing splits for example!
 | |
| vim.opt.mouse = 'a'
 | |
| 
 | |
| -- Don't show the mode, since it's already in the status line
 | |
| vim.opt.showmode = false
 | |
| 
 | |
| -- Sync clipboard between OS and Neovim.
 | |
| --  Remove this option if you want your OS clipboard to remain independent.
 | |
| --  See `:help 'clipboard'`
 | |
| vim.opt.clipboard = 'unnamedplus'
 | |
| 
 | |
| -- Enable break indent
 | |
| vim.opt.breakindent = true
 | |
| 
 | |
| -- Save undo history
 | |
| vim.opt.undofile = true
 | |
| 
 | |
| -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
 | |
| vim.opt.ignorecase = true
 | |
| vim.opt.smartcase = true
 | |
| 
 | |
| -- Keep signcolumn on by default
 | |
| vim.opt.signcolumn = 'number'
 | |
| 
 | |
| -- Decrease update time
 | |
| vim.opt.updatetime = 250
 | |
| 
 | |
| -- Decrease mapped sequence wait time
 | |
| -- Displays which-key popup sooner
 | |
| vim.opt.timeoutlen = 300
 | |
| 
 | |
| -- Configure how new splits should be opened
 | |
| vim.opt.splitright = true
 | |
| vim.opt.splitbelow = true
 | |
| 
 | |
| -- Sets how neovim will display certain whitespace characters in the editor.
 | |
| --  See `:help 'list'`
 | |
| --  and `:help 'listchars'`
 | |
| vim.opt.list = true
 | |
| vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
 | |
| 
 | |
| -- Preview substitutions live, as you type!
 | |
| vim.opt.inccommand = 'split'
 | |
| 
 | |
| -- Show which line your cursor is on
 | |
| vim.opt.cursorline = true
 | |
| 
 | |
| -- Minimal number of screen lines to keep above and below the cursor.
 | |
| vim.opt.scrolloff = 10
 | |
| 
 | |
| -- [[ Basic Keymaps ]]
 | |
| --  See `:help vim.keymap.set()`
 | |
| 
 | |
| -- Set highlight on search, but clear on pressing <Esc> in normal mode
 | |
| vim.opt.hlsearch = true
 | |
| vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
 | |
| 
 | |
| -- Diagnostic keymaps
 | |
| vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous [D]iagnostic message' })
 | |
| vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next [D]iagnostic message' })
 | |
| vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Show diagnostic [E]rror messages' })
 | |
| vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
 | |
| 
 | |
| -- Keybinds to make split navigation easier.
 | |
| --  Use CTRL+<hjkl> to switch between windows
 | |
| --  See `:help wincmd` for a list of all window commands
 | |
| vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
 | |
| vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
 | |
| vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
 | |
| vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
 | |
| 
 | |
| -- [[ Basic Autocommands ]]
 | |
| --  See `:help lua-guide-autocommands`
 | |
| 
 | |
| -- Restore cursor position
 | |
| vim.api.nvim_create_autocmd({ 'BufReadPost' }, {
 | |
|   pattern = { '*' },
 | |
|   callback = function()
 | |
|     vim.api.nvim_exec2('silent! normal! g`"zv', { output = false })
 | |
|   end,
 | |
| })
 | |
| 
 | |
| -- Highlight when yanking (copying) text
 | |
| --  Try it with `yap` in normal mode
 | |
| --  See `:help vim.highlight.on_yank()`
 | |
| vim.api.nvim_create_autocmd('TextYankPost', {
 | |
|   desc = 'Highlight when yanking (copying) text',
 | |
|   group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
 | |
|   callback = function()
 | |
|     vim.highlight.on_yank()
 | |
|   end,
 | |
| })
 | |
| 
 | |
| -- [[ Install `lazy.nvim` plugin manager ]]
 | |
| --    See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
 | |
| local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
 | |
| if not vim.loop.fs_stat(lazypath) then
 | |
|   local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
 | |
|   vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
 | |
| end ---@diagnostic disable-next-line: undefined-field
 | |
| vim.opt.rtp:prepend(lazypath)
 | |
| 
 | |
| -- !!!!!!!!!!!!!!!!!!!!! --
 | |
| vim.filetype.add {
 | |
|   pattern = {
 | |
|     ['.*idcl'] = 'idcl',
 | |
|   },
 | |
| }
 | |
| 
 | |
| -- [[ Configure and install plugins ]]
 | |
| --  To check the current status of your plugins, run
 | |
| --    :Lazy
 | |
| 
 | |
| --  To update plugins you can run
 | |
| --    :Lazy update
 | |
| 
 | |
| require('lazy').setup({
 | |
|   { import = 'plugins' },
 | |
| }, {
 | |
|   ui = {
 | |
|     -- If you are using a Nerd Font: set icons to an empty table which will use the
 | |
|     -- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table
 | |
|     icons = vim.g.have_nerd_font and {} or {
 | |
|       cmd = '⌘',
 | |
|       config = '🛠',
 | |
|       event = '📅',
 | |
|       ft = '📂',
 | |
|       init = '⚙',
 | |
|       keys = '🗝',
 | |
|       plugin = '🔌',
 | |
|       runtime = '💻',
 | |
|       require = '🌙',
 | |
|       source = '📄',
 | |
|       start = '🚀',
 | |
|       task = '📌',
 | |
|       lazy = '💤 ',
 | |
|     },
 | |
|   },
 | |
| })
 | |
| 
 | |
| -- local lspconfig = require 'lspconfig'
 | |
| --
 | |
| -- -- Disable diagnostics and warnings for clangd
 | |
| -- lspconfig.clangd.setup {
 | |
| --   handlers = {
 | |
| --     ['textDocument/publishDiagnostics'] = function() end,
 | |
| --   },
 | |
| -- }
 |