1 -------------------------------------------------------------------------------
3 -------------------------------------------------------------------------------
5 vim.opt.number = true -- Show number column
6 vim.opt.wrap = false -- Don't wrap text
7 vim.opt.list = true -- Display tabs and trailing space
8 vim.opt.colorcolumn='80,150' -- Show color columns
11 vim.opt.termguicolors = true
14 -- Tab Style (Always override with editorconfig)
15 vim.opt.tabstop = 2 -- 2 Spaces per tab
16 vim.opt.shiftwidth = 2 -- Spaces used in Autoindent
17 vim.opt.softtabstop = 2 -- Spaces used when soft tabbing
18 vim.opt.expandtab = true -- Always use spaces
20 -------------------------------------------------------------------------------
22 -------------------------------------------------------------------------------
24 vim.opt.ignorecase = true -- Ignore case when searching
25 vim.opt.smartcase = true -- Unless we use both cases in search
27 -- Autocomplete Behavior
28 vim.opt.wildmode = 'list:longest,list:full' -- Autocomplete common matching string
31 vim.opt.foldmethod = 'syntax' -- Use syntax highlight to define folds
32 vim.opt.foldnestmax = 10 -- Max 10 folds
33 vim.opt.foldlevelstart = 99 -- Start with all folds open
35 -- Relative Number Behavior
36 vim.api.nvim_create_autocmd({'FocusLost', 'InsertEnter'}, {
38 callback = function () vim.opt.relativenumber = false end,
40 vim.api.nvim_create_autocmd({'InsertLeave', 'CursorMoved'}, {
42 callback = function () vim.opt.relativenumber = true end,
45 vim.keymap.set('n', '<C-n>', function()
46 vim.opt.relativenumber = not vim.opt.relativenumber
49 -- Move lines / blocks up and down using Ctrl + Shift
50 vim.keymap.set('n', '<C-S-j>', ':m .+1<CR>==')
51 vim.keymap.set('n', '<C-S-k>', ':m .-2<CR>==')
52 vim.keymap.set('i', '<C-S-j>', '<Esc>:m .+1<CR>==gi')
53 vim.keymap.set('i', '<C-S-k>', '<Esc>:m .-2<CR>==gi')
54 vim.keymap.set('v', '<C-S-j>', ':m \'>+1<CR>gv=gv')
55 vim.keymap.set('v', '<C-S-k>', ':m \'<-2<CR>gv=gv')
57 -------------------------------------------------------------------------------
58 -- File Specific Behavior
59 -------------------------------------------------------------------------------
61 vim.api.nvim_create_autocmd({'FileType'}, {
63 callback = function () vim.opt.expandtab = false end
67 vim.api.nvim_create_autocmd({'BufNewFile', 'BufRead'}, {
68 pattern = {'*.asm', '*.s'},
69 callback = function () vim.opt.filetype = 'snes' end
72 -------------------------------------------------------------------------------
74 -------------------------------------------------------------------------------
75 pcall(require, 'init_local')
77 -------------------------------------------------------------------------------
78 -- Plugin Specific Behavior
79 -------------------------------------------------------------------------------
81 vim.keymap.set("n", "<c-P>",
82 "<cmd>lua require('fzf-lua').files({ fzf_opts = {} })<CR>", { silent = true })
85 vim.g.vim_svelte_plugin_use_typescript = true
88 vim.keymap.set('i', '<TAB>', 'pumvisible() ? "\\<C-n>" : "\\<TAB>"', {expr = true, silent = true})
89 vim.keymap.set('i', '<S-TAB>', 'pumvisible() ? "\\<C-p>" : "\\<C-h>"', {expr = true, silent = true})
90 vim.keymap.set('i', '<S-TAB>', 'pumvisible() ? "\\<C-p>" : "\\<C-h>"', {expr = true, silent = true})
91 vim.keymap.set('i', '<C-Space>', 'coc#refresh()', {expr = true, silent = true})
92 vim.keymap.set('n', 'K', ':call CocActionAsync("doHover")<CR>', {silent = true})
94 vim.keymap.set('n', '[g', '<Plug>(coc-diagnostic-prev)', {silent = true})
95 vim.keymap.set('n', ']g', '<Plug>(coc-diagnostic-next)', {silent = true})
97 vim.keymap.set('n', 'gd', '<Plug>(coc-definition)', {silent = true})
98 vim.keymap.set('n', 'gy', '<Plug>(coc-type-definition)', {silent = true})
99 vim.keymap.set('n', 'gi', '<Plug>(coc-implementation)', {silent = true})
100 vim.keymap.set('n', 'gr', '<Plug>(coc-references)', {silent = true})
102 vim.keymap.set('n', '<leader>d', function()
103 require("dapui").toggle()