···
extraLuaConfig = builtins.readFile ./init.lua;
# undo transparent background
# + "colorscheme gruvbox";
60
-
with pkgs.vimPlugins;
63
-
plugin = gruvbox-nvim;
65
-
# TODO is there a better place to put this?
70
-
setlocal shiftwidth=2
72
-
setlocal softtabstop=2
76
-
"ftplugin/nix.vim".text = ml-style;
77
-
"ftplugin/ocaml.vim".text = ml-style;
78
-
"ftplugin/haskell.vim".text = ml-style;
79
-
"ftplugin/ledger.vim".text = ''
80
-
setlocal foldmethod=syntax
81
-
vnoremap <silent> <buffer> <Tab> :LedgerAlign<CR>
82
-
nnoremap <silent> <buffer> <Tab> :LedgerAlign<CR>
59
+
plugins = with pkgs.vimPlugins; [
61
+
plugin = gruvbox-nvim;
63
+
# TODO is there a better place to put this?
68
+
setlocal shiftwidth=2
70
+
setlocal softtabstop=2
74
+
"ftplugin/nix.vim".text = ml-style;
75
+
"ftplugin/ocaml.vim".text = ml-style;
76
+
"ftplugin/haskell.vim".text = ml-style;
77
+
"ftplugin/ledger.vim".text = ''
78
+
setlocal foldmethod=syntax
79
+
vnoremap <silent> <buffer> <Tab> :LedgerAlign<CR>
80
+
nnoremap <silent> <buffer> <Tab> :LedgerAlign<CR>
86
+
plugin = telescope-nvim;
88
+
config = builtins.readFile ./telescope-nvim.lua;
90
+
telescope-fzf-native-nvim
92
+
telescope-file-browser-nvim
88
-
plugin = telescope-nvim;
90
-
config = builtins.readFile ./telescope-nvim.lua;
92
-
telescope-fzf-native-nvim
94
-
telescope-file-browser-nvim
95
+
plugin = gitsigns-nvim;
98
+
require('gitsigns').setup{
99
+
on_attach = function(bufnr)
100
+
local gitsigns = require('gitsigns')
97
-
plugin = gitsigns-nvim;
100
-
require('gitsigns').setup{
101
-
on_attach = function(bufnr)
102
-
local gitsigns = require('gitsigns')
102
+
local function map(mode, l, r, opts)
104
+
opts.buffer = bufnr
105
+
vim.keymap.set(mode, l, r, opts)
104
-
local function map(mode, l, r, opts)
106
-
opts.buffer = bufnr
107
-
vim.keymap.set(mode, l, r, opts)
108
+
map('n', ']c', function()
109
+
if vim.wo.diff then
110
+
vim.cmd.normal({']c', bang = true})
112
+
gitsigns.nav_hunk('next')
114
+
end, { desc = 'Git next hunk' })
110
-
map('n', ']c', function()
111
-
if vim.wo.diff then
112
-
vim.cmd.normal({']c', bang = true})
114
-
gitsigns.nav_hunk('next')
116
-
end, { desc = 'Git next hunk' })
118
-
map('n', '[c', function()
119
-
if vim.wo.diff then
120
-
vim.cmd.normal({'[c', bang = true})
122
-
gitsigns.nav_hunk('prev')
124
-
end, { desc = 'Git prev hunk' })
116
+
map('n', '[c', function()
117
+
if vim.wo.diff then
118
+
vim.cmd.normal({'[c', bang = true})
120
+
gitsigns.nav_hunk('prev')
122
+
end, { desc = 'Git prev hunk' })
126
-
map('n', '<leader>gs', gitsigns.stage_hunk, { desc = 'Git stage hunk' })
127
-
map('n', '<leader>gr', gitsigns.reset_hunk, { desc = 'Git reset hunk' })
128
-
map('v', '<leader>gs', function() gitsigns.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end, { desc = 'Git stage hunk' })
129
-
map('v', '<leader>gr', function() gitsigns.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end, { desc = 'Git reset hunk' })
130
-
map('n', '<leader>gS', gitsigns.stage_buffer, { desc = 'Git stage buffer' })
131
-
map('n', '<leader>gu', gitsigns.undo_stage_hunk, { desc = 'Git unstage hunk' })
132
-
map('n', '<leader>gR', gitsigns.reset_buffer, { desc = 'Git reset buffer' })
133
-
map('n', '<leader>gp', gitsigns.preview_hunk, { desc = 'Git preview hunk' })
134
-
map('n', '<leader>gb', function() gitsigns.blame_line{full=true} end, { desc = 'Git blame' })
135
-
map('n', '<leader>gtb', gitsigns.toggle_current_line_blame, { desc = 'Git toggle line blame' })
136
-
map('n', '<leader>gd', gitsigns.diffthis, { desc = 'Git diff index' })
137
-
map('n', '<leader>gD', function() gitsigns.diffthis('~') end, { desc = 'Git diff last' })
138
-
map('n', '<leader>gtd', gitsigns.toggle_deleted, { desc = 'Git toggle deleted' })
124
+
map('n', '<leader>gs', gitsigns.stage_hunk, { desc = 'Git stage hunk' })
125
+
map('n', '<leader>gr', gitsigns.reset_hunk, { desc = 'Git reset hunk' })
126
+
map('v', '<leader>gs', function() gitsigns.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end, { desc = 'Git stage hunk' })
127
+
map('v', '<leader>gr', function() gitsigns.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end, { desc = 'Git reset hunk' })
128
+
map('n', '<leader>gS', gitsigns.stage_buffer, { desc = 'Git stage buffer' })
129
+
map('n', '<leader>gu', gitsigns.undo_stage_hunk, { desc = 'Git unstage hunk' })
130
+
map('n', '<leader>gR', gitsigns.reset_buffer, { desc = 'Git reset buffer' })
131
+
map('n', '<leader>gp', gitsigns.preview_hunk, { desc = 'Git preview hunk' })
132
+
map('n', '<leader>gb', function() gitsigns.blame_line{full=true} end, { desc = 'Git blame' })
133
+
map('n', '<leader>gtb', gitsigns.toggle_current_line_blame, { desc = 'Git toggle line blame' })
134
+
map('n', '<leader>gd', gitsigns.diffthis, { desc = 'Git diff index' })
135
+
map('n', '<leader>gD', function() gitsigns.diffthis('~') end, { desc = 'Git diff last' })
136
+
map('n', '<leader>gtd', gitsigns.toggle_deleted, { desc = 'Git toggle deleted' })
141
-
map({'o', 'x'}, 'ih', ':<C-U>Git select_hunk<CR>', { desc = 'Gitsigns select hunk' })
147
-
plugin = pkgs.overlay-unstable.vimPlugins.neogit;
150
-
local neogit = require('neogit')
139
+
map({'o', 'x'}, 'ih', ':<C-U>Git select_hunk<CR>', { desc = 'Gitsigns select hunk' })
145
+
plugin = pkgs.overlay-unstable.vimPlugins.neogit;
148
+
local neogit = require('neogit')
161
-
config = builtins.readFile ./nvim-cmp.lua;
167
-
plugin = cmp-dictionary;
170
-
require("cmp_dictionary").setup({
171
-
paths = { "${pkgs.scowl}/share/dict/words.txt" },
173
-
first_case_insensitive = true,
159
+
config = builtins.readFile ./nvim-cmp.lua;
165
+
plugin = cmp-dictionary;
168
+
require("cmp_dictionary").setup({
169
+
paths = { "${pkgs.scowl}/share/dict/words.txt" },
171
+
first_case_insensitive = true,
181
-
config = builtins.readFile ./luasnip.lua;
184
-
pkgs.overlay-unstable.vimPlugins.friendly-snippets
179
+
config = builtins.readFile ./luasnip.lua;
182
+
pkgs.overlay-unstable.vimPlugins.friendly-snippets
187
-
plugin = nvim-treesitter.withAllGrammars;
190
-
require'nvim-treesitter.configs'.setup {
185
+
plugin = nvim-treesitter.withAllGrammars;
188
+
require'nvim-treesitter.configs'.setup {
191
+
-- :h vimtex-faq-treesitter
192
+
disable = { "latex" },
195
+
vim.opt.foldmethod = "expr"
196
+
vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
197
+
vim.opt.foldenable = false
201
+
plugin = nvim-treesitter-textobjects;
204
+
require'nvim-treesitter.configs'.setup {
193
-
-- :h vimtex-faq-treesitter
194
-
disable = { "latex" },
210
+
["af"] = "@function.outer",
211
+
["if"] = "@function.inner",
212
+
["ac"] = "@conditional.outer",
213
+
["ic"] = "@conditional.inner",
214
+
["al"] = "@loop.outer",
215
+
["il"] = "@loop.inner",
217
+
include_surrounding_whitespace = true,
197
-
vim.opt.foldmethod = "expr"
198
-
vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
199
-
vim.opt.foldenable = false
203
-
plugin = nvim-treesitter-textobjects;
206
-
require'nvim-treesitter.configs'.setup {
212
-
["af"] = "@function.outer",
213
-
["if"] = "@function.inner",
214
-
["ac"] = "@conditional.outer",
215
-
["ic"] = "@conditional.inner",
216
-
["al"] = "@loop.outer",
217
-
["il"] = "@loop.inner",
219
-
include_surrounding_whitespace = true,
222
+
["<leader>a"] = "@parameter.inner",
224
-
["<leader>a"] = "@parameter.inner",
227
-
["<leader>A"] = "@parameter.inner",
225
+
["<leader>A"] = "@parameter.inner",
233
-
goto_next_start = {
234
-
["]m"] = "@function.outer",
237
-
["]M"] = "@function.outer",
239
-
goto_previous_start = {
240
-
["[m"] = "@function.outer",
242
-
goto_previous_end = {
243
-
["[M"] = "@function.outer",
231
+
goto_next_start = {
232
+
["]m"] = "@function.outer",
235
+
["]M"] = "@function.outer",
237
+
goto_previous_start = {
238
+
["[m"] = "@function.outer",
240
+
goto_previous_end = {
241
+
["[M"] = "@function.outer",
248
-
-- could use some tweaking
249
-
vim.treesitter.query.set("ocaml", "textobjects", [[
250
-
((value_definition (let_binding)) @function.outer)
251
-
((let_binding body: (_) @function.inner))
246
+
-- could use some tweaking
247
+
vim.treesitter.query.set("ocaml", "textobjects", [[
248
+
((value_definition (let_binding)) @function.outer)
249
+
((let_binding body: (_) @function.inner))
260
-
vim.cmd("filetype plugin indent on")
261
-
vim.cmd("syntax enable")
262
-
vim.g.vimtex_quickfix_mode = 0
263
-
vim.g.vimtex_view_general_viewer = 'evince'
258
+
vim.cmd("filetype plugin indent on")
259
+
vim.cmd("syntax enable")
260
+
vim.g.vimtex_quickfix_mode = 0
261
+
vim.g.vimtex_view_general_viewer = 'evince'
268
+
"ftplugin/tex.lua".text = ''
269
+
vim.keymap.set('n', '<localleader>v', ':call SVED_Sync()<CR>')
270
-
"ftplugin/tex.lua".text = ''
271
-
vim.keymap.set('n', '<localleader>v', ':call SVED_Sync()<CR>')
278
-
plugin = nvim-surround;
281
-
require('nvim-surround').setup({})
285
-
plugin = comment-nvim;
288
-
require('Comment').setup()
295
-
vim.keymap.set('n', '<leader>su', vim.cmd.UndotreeToggle, { desc = 'Undo history' })
299
-
plugin = leap-nvim;
302
-
vim.keymap.set({'n', 'x', 'o'}, 's', '<Plug>(leap-forward)', { desc = "Leap forward"} )
303
-
vim.keymap.set({'n', 'x', 'o'}, 'S', '<Plug>(leap-backward)', { desc = "Leap backward"} )
304
-
vim.keymap.set({'n', 'x', 'o'}, 'gs', '<Plug>(leap-from-window)', { desc = "Leap from window"} )
308
-
plugin = pkgs.overlay-unstable.vimPlugins.which-key-nvim;
311
-
local wk = require('which-key')
318
-
icons = { mappings = false },
320
-
{ "<leader>", mode = { "n", "v" } },
321
-
{ "<auto>", mode = "nixsotc" },
276
+
plugin = nvim-surround;
279
+
require('nvim-surround').setup({})
283
+
plugin = comment-nvim;
286
+
require('Comment').setup()
293
+
vim.keymap.set('n', '<leader>su', vim.cmd.UndotreeToggle, { desc = 'Undo history' })
297
+
plugin = leap-nvim;
300
+
vim.keymap.set({'n', 'x', 'o'}, 's', '<Plug>(leap-forward)', { desc = "Leap forward"} )
301
+
vim.keymap.set({'n', 'x', 'o'}, 'S', '<Plug>(leap-backward)', { desc = "Leap backward"} )
302
+
vim.keymap.set({'n', 'x', 'o'}, 'gs', '<Plug>(leap-from-window)', { desc = "Leap from window"} )
306
+
plugin = pkgs.overlay-unstable.vimPlugins.which-key-nvim;
309
+
local wk = require('which-key')
326
-
{ "<leader>f", group = 'Find' },
327
-
{ "<leader>c", group = 'Code' },
328
-
{ "<leader>;", group = 'DAP' },
329
-
{ "<leader>s", group = 'Search' },
330
-
{ "<leader>t", group = 'Tab' },
331
-
{ "<leader>h", group = 'Hunk' },
332
-
{ "<leader>x", group = 'Trouble' },
333
-
{ "<leader>g", group = 'Git' },
334
-
{ "<leader>i", group = 'Insert' },
316
+
icons = { mappings = false },
318
+
{ "<leader>", mode = { "n", "v" } },
319
+
{ "<auto>", mode = "nixsotc" },
324
+
{ "<leader>f", group = 'Find' },
325
+
{ "<leader>c", group = 'Code' },
326
+
{ "<leader>;", group = 'DAP' },
327
+
{ "<leader>s", group = 'Search' },
328
+
{ "<leader>t", group = 'Tab' },
329
+
{ "<leader>h", group = 'Hunk' },
330
+
{ "<leader>x", group = 'Trouble' },
331
+
{ "<leader>g", group = 'Git' },
332
+
{ "<leader>i", group = 'Insert' },
340
-
plugin = vim-ledger-2024-07-15;
343
-
vim.g.ledger_fuzzy_account_completion = true
344
-
vim.g.ledger_extra_options = '--pedantic'
345
-
vim.g.ledger_align_at = 50
346
-
vim.g.ledger_accounts_cmd = 'ledger accounts --add-budget'
338
+
plugin = vim-ledger-2024-07-15;
341
+
vim.g.ledger_fuzzy_account_completion = true
342
+
vim.g.ledger_extra_options = '--pedantic'
343
+
vim.g.ledger_align_at = 50
344
+
vim.g.ledger_accounts_cmd = 'ledger accounts --add-budget'
348
-
vim.g.ledger_date_format = '%Y-%m-%d'
346
+
vim.g.ledger_date_format = '%Y-%m-%d'
351
-
autocmd FileType ledger nnoremap <buffer> <leader>e :call ledger#entry()<CR>
359
-
-- In any orgmode buffer press g? for help
360
-
require('orgmode').setup({
361
-
org_agenda_files = { '~/vault/*.org' },
362
-
org_default_notes_file = '~/vault/todo.org',
363
-
org_capture_templates = {
365
-
description = 'Task',
366
-
template = '* TODO %?\n %u',
349
+
autocmd FileType ledger nnoremap <buffer> <leader>e :call ledger#entry()<CR>
357
+
-- In any orgmode buffer press g? for help
358
+
require('orgmode').setup({
359
+
org_agenda_files = { '~/vault/*.org' },
360
+
org_default_notes_file = '~/vault/todo.org',
361
+
org_capture_templates = {
363
+
description = 'Task',
364
+
template = '* TODO %?\n %u',
374
-
plugin = nvim-lspconfig;
376
-
config = builtins.readFile ./lsp.lua;
378
-
"ftplugin/java.lua".text = ''
379
-
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')
380
-
local workspace_dir = '~/.cache/jdt/' .. project_name
381
-
require('jdtls').start_or_attach {
382
-
on_attach = On_attach,
383
-
capabilities = Capabilities,
384
-
cmd = { 'jdt-language-server', '-data', workspace_dir, },
385
-
root_dir = vim.fs.dirname(vim.fs.find({'gradlew', '.git', 'mvnw'}, { upward = true })[1]),
393
-
config = builtins.readFile ./dap.lua;
396
-
cmp-nvim-lsp-signature-help
372
+
plugin = nvim-lspconfig;
374
+
config = builtins.readFile ./lsp.lua;
376
+
"ftplugin/java.lua".text = ''
377
+
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')
378
+
local workspace_dir = '~/.cache/jdt/' .. project_name
379
+
require('jdtls').start_or_attach {
380
+
on_attach = On_attach,
381
+
capabilities = Capabilities,
382
+
cmd = { 'jdt-language-server', '-data', workspace_dir, },
383
+
root_dir = vim.fs.dirname(vim.fs.find({'gradlew', '.git', 'mvnw'}, { upward = true })[1]),
391
+
config = builtins.readFile ./dap.lua;
394
+
cmp-nvim-lsp-signature-help