]>
Commit | Line | Data |
---|---|---|
1 | ------------------------------------------------------------------------------- | |
2 | -- Style | |
3 | ------------------------------------------------------------------------------- | |
4 | -- Editor Style | |
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 | |
9 | ||
10 | -- Color | |
11 | vim.opt.termguicolors = true | |
12 | vim.cmd.color('rbdr') | |
13 | ||
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 | |
19 | ||
20 | ------------------------------------------------------------------------------- | |
21 | -- Behavior | |
22 | ------------------------------------------------------------------------------- | |
23 | -- Search Behavior | |
24 | vim.opt.ignorecase = true -- Ignore case when searching | |
25 | vim.opt.smartcase = true -- Unless we use both cases in search | |
26 | ||
27 | -- Autocomplete Behavior | |
28 | vim.opt.wildmode = 'list:longest,list:full' -- Autocomplete common matching string | |
29 | ||
30 | -- Folding Behavior | |
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 | |
34 | ||
35 | -- Relative Number Behavior | |
36 | vim.api.nvim_create_autocmd({'FocusLost', 'InsertEnter'}, { | |
37 | pattern = '*', | |
38 | callback = function () vim.opt.relativenumber = false end, | |
39 | }) | |
40 | vim.api.nvim_create_autocmd({'InsertLeave', 'CursorMoved'}, { | |
41 | pattern = '*', | |
42 | callback = function () vim.opt.relativenumber = true end, | |
43 | }) | |
44 | ||
45 | vim.keymap.set('n', '<C-n>', function() | |
46 | vim.opt.relativenumber = not vim.opt.relativenumber | |
47 | end) | |
48 | ||
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') | |
56 | ||
57 | ------------------------------------------------------------------------------- | |
58 | -- File Specific Behavior | |
59 | ------------------------------------------------------------------------------- | |
60 | -- Makefiles | |
61 | vim.api.nvim_create_autocmd({'FileType'}, { | |
62 | pattern = 'make', | |
63 | callback = function () vim.opt.expandtab = false end | |
64 | }) | |
65 | ||
66 | -- SNES files | |
67 | vim.api.nvim_create_autocmd({'BufNewFile', 'BufRead'}, { | |
68 | pattern = {'*.asm', '*.s'}, | |
69 | callback = function () vim.opt.filetype = 'snes' end | |
70 | }) | |
71 | ||
72 | ------------------------------------------------------------------------------- | |
73 | -- Local Overrides | |
74 | ------------------------------------------------------------------------------- | |
75 | pcall(require, 'init_local') | |
76 | ||
77 | ------------------------------------------------------------------------------- | |
78 | -- Plugin Specific Behavior | |
79 | ------------------------------------------------------------------------------- | |
80 | -- FZF | |
81 | vim.keymap.set('', '<C-P>', ':FZF <CR>') | |
82 | vim.g.fzf_layout = { down = '40%' } | |
83 | vim.g.fzf_colors = { | |
84 | fg = {'fg', 'Normal'}, | |
85 | bg = {'bg', 'Normal'}, | |
86 | hl = {'fg', 'Comment'}, | |
87 | ['fg+'] = {'fg', 'CursorLine', 'CursorColumn', 'Normal'}, | |
88 | ['bg+'] = {'bg', 'CursorLine', 'CursorColumn'}, | |
89 | ['hl+'] = {'fg', 'Statement'}, | |
90 | info = {'fg', 'PreProc'}, | |
91 | border = {'fg', 'Ignore'}, | |
92 | prompt = {'fg', 'Conditional'}, | |
93 | pointer = {'fg', 'Exception'}, | |
94 | marker = {'fg', 'Keyword'}, | |
95 | spinner = {'fg', 'Label'}, | |
96 | header = {'fg', 'Comment'} | |
97 | } | |
98 | ||
99 | ||
100 | -- Svelte Config | |
101 | vim.g.vim_svelte_plugin_use_typescript = true | |
102 | ||
103 | -- Limelight / Goyo config | |
104 | ||
105 | vim.g.limelight_conceal_ctermfg = 'gray' | |
106 | vim.g.limelight_conceal_guifg = 'DarkGray' | |
107 | ||
108 | vim.api.nvim_create_autocmd({'User'}, { | |
109 | pattern = 'GoyoEnter', | |
110 | command = 'Limelight' | |
111 | }) | |
112 | vim.api.nvim_create_autocmd({'User'}, { | |
113 | pattern = 'GoyoLeave', | |
114 | command = 'Limelight!' | |
115 | }) | |
116 | ||
117 | vim.keymap.set('n', '<leader>i', ':Limelight!!<CR>==') | |
118 | vim.keymap.set('i', '<leader>i', '<Esc>:Limelight!!<CR>==gi') | |
119 | vim.keymap.set('v', '<leader>i', ':<C-u>Limelight!!<CR>gv=gv') | |
120 | vim.keymap.set('n', '<leader>g', ':Goyo<CR>==') | |
121 | vim.keymap.set('i', '<leader>g', '<Esc>:Goyo<CR>==gi') | |
122 | vim.keymap.set('v', '<leader>g', ':<C-u>Goyo<CR>gv=gv') | |
123 | ||
124 | -- CoC | |
125 | vim.keymap.set('i', '<TAB>', 'pumvisible() ? "\\<C-n>" : "\\<TAB>"', {expr = true, silent = true}) | |
126 | vim.keymap.set('i', '<S-TAB>', 'pumvisible() ? "\\<C-p>" : "\\<C-h>"', {expr = true, silent = true}) | |
127 | vim.keymap.set('i', '<S-TAB>', 'pumvisible() ? "\\<C-p>" : "\\<C-h>"', {expr = true, silent = true}) | |
128 | vim.keymap.set('i', '<C-Space>', 'coc#refresh()', {expr = true, silent = true}) | |
129 | vim.keymap.set('n', 'K', ':call CocActionAsync("doHover")<CR>', {silent = true}) | |
130 | ||
131 | vim.keymap.set('n', '[g', '<Plug>(coc-diagnostic-prev)', {silent = true}) | |
132 | vim.keymap.set('n', ']g', '<Plug>(coc-diagnostic-next)', {silent = true}) | |
133 | ||
134 | vim.keymap.set('n', 'gd', '<Plug>(coc-definition)', {silent = true}) | |
135 | vim.keymap.set('n', 'gy', '<Plug>(coc-type-definition)', {silent = true}) | |
136 | vim.keymap.set('n', 'gi', '<Plug>(coc-implementation)', {silent = true}) | |
137 | vim.keymap.set('n', 'gr', '<Plug>(coc-references)', {silent = true}) | |
138 | ||
139 | -- Plugins | |
140 | require('plugins') |