summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/vim.nix48
-rw-r--r--dotfiles/vim/ftplugin/nix.lua6
-rw-r--r--dotfiles/vim/ftplugin/rust.lua18
-rw-r--r--dotfiles/vim/lua/myConfig.lua (renamed from dotfiles/vim.lua)17
-rw-r--r--dotfiles/vim/lua/vim-dev.lua (renamed from dotfiles/vim-dev.lua)2
-rw-r--r--usecases/desktop/development.nix3
6 files changed, 63 insertions, 31 deletions
diff --git a/common/vim.nix b/common/vim.nix
index 2f36958..bebfb0e 100644
--- a/common/vim.nix
+++ b/common/vim.nix
@@ -12,8 +12,8 @@ inputs: {
12 12
13 cfg = config.vim; 13 cfg = config.vim;
14 14
15 myConfigPackage = with lib; let 15 variables = with lib;
16 config = '' 16 pkgs.writeTextDir "lua/myVariables.lua" ''
17 -- Autogenerated variables from the NixOS configuration 17 -- Autogenerated variables from the NixOS configuration
18 18
19 ${(concatStringsSep 19 ${(concatStringsSep
@@ -21,35 +21,32 @@ inputs: {
21 (mapAttrsToList 21 (mapAttrsToList
22 (variable: value: "vim.g.${variable} = ${luaFormat.generate value}") 22 (variable: value: "vim.g.${variable} = ${luaFormat.generate value}")
23 cfg.variables))} 23 cfg.variables))}
24 '';
24 25
25 -- vim.lua from the NixOS configuration 26 extraConfig = pkgs.writeTextDir "lua/myExtraConfig.lua" ''
27 -- luaConfig from the NixOS configuration
26 28
27 ${builtins.readFile ../dotfiles/vim.lua} 29 ${cfg.luaConfig}
30 '';
28 31
29 -- luaConfig from the NixOS configuration 32 myGeneratedConfigPackage = pkgs.symlinkJoin {
33 name = "myGeneratedConfig-nvim";
34 paths = [variables extraConfig];
35 };
30 36
31 ${cfg.luaConfig} 37 myConfigPackage = pkgs.unstable.vimUtils.buildVimPluginFrom2Nix {
32 ''; 38 name = "myConfig-nvim";
33 in 39 src = ../dotfiles/vim;
34 pkgs.runCommand 40 };
35 "myConfig"
36 {
37 pname = "myConfig";
38 inherit config;
39 passAsFile = ["config"];
40 runLocal = true;
41 }
42 ''
43 mkdir -p "$out/lua"
44 mv "$configPath" "$out/lua/myConfig.lua"
45 '';
46 41
47 myNeovim = wrapNeovim neovim-unwrapped { 42 myNeovim = wrapNeovim neovim-unwrapped {
48 configure = { 43 configure = {
49 inherit (config.vim) beforePlugins; 44 inherit (config.vim) beforePlugins;
50 45
51 customRC = '' 46 customRC = ''
47 lua require("myVariables")
52 lua require("myConfig") 48 lua require("myConfig")
49 lua require("myExtraConfig")
53 50
54 ${cfg.extraConfig} 51 ${cfg.extraConfig}
55 ''; 52 '';
@@ -57,6 +54,7 @@ inputs: {
57 packages.myVimPackage = with vimPlugins; { 54 packages.myVimPackage = with vimPlugins; {
58 start = 55 start =
59 [ 56 [
57 myGeneratedConfigPackage
60 myConfigPackage 58 myConfigPackage
61 59
62 # Dependencies 60 # Dependencies
@@ -72,6 +70,15 @@ inputs: {
72 diffview-nvim 70 diffview-nvim
73 nvim-notify 71 nvim-notify
74 indent-blankline-nvim 72 indent-blankline-nvim
73 (pkgs.unstable.vimUtils.buildVimPluginFrom2Nix {
74 name = "oil.nvim";
75 src = pkgs.fetchFromGitHub {
76 owner = "stevearc";
77 repo = "oil.nvim";
78 rev = "abfc455f62dac385b0fc816f37c64dffead0bcf3";
79 hash = "sha256-oA220nzaBlFnJ0s23oabIW3XV1tWml5kBuBkTImOPjM=";
80 };
81 })
75 82
76 # Completion 83 # Completion
77 nvim-cmp 84 nvim-cmp
@@ -92,7 +99,6 @@ inputs: {
92 99
93 # Telescope 100 # Telescope
94 telescope-nvim 101 telescope-nvim
95 telescope-file-browser-nvim
96 telescope-ui-select-nvim 102 telescope-ui-select-nvim
97 103
98 # Treesitter 104 # Treesitter
diff --git a/dotfiles/vim/ftplugin/nix.lua b/dotfiles/vim/ftplugin/nix.lua
new file mode 100644
index 0000000..7401054
--- /dev/null
+++ b/dotfiles/vim/ftplugin/nix.lua
@@ -0,0 +1,6 @@
1vim.bo.expandtab = true
2vim.bo.shiftwidth = 2
3vim.bo.softtabstop = 2
4
5vim.opt_local.comments = { ":#", "s1:/*", "ex:*/", }
6vim.bo.commentstring = "# %s"
diff --git a/dotfiles/vim/ftplugin/rust.lua b/dotfiles/vim/ftplugin/rust.lua
new file mode 100644
index 0000000..23a46f1
--- /dev/null
+++ b/dotfiles/vim/ftplugin/rust.lua
@@ -0,0 +1,18 @@
1-- TODO: suffixes, includes
2
3vim.bo.expandtab = true
4vim.bo.shiftwidth = 4
5vim.bo.softtabstop = 4
6vim.bo.textwidth = 99
7
8vim.opt_local.comments = {
9 "s0:/*!",
10 "ex:*/",
11 "s1:/*",
12 "mb:*",
13 "ex:*/",
14 ":///",
15 "://!",
16 "://",
17}
18vim.bo.commentstring = "// %s"
diff --git a/dotfiles/vim.lua b/dotfiles/vim/lua/myConfig.lua
index defee0c..58c6f6d 100644
--- a/dotfiles/vim.lua
+++ b/dotfiles/vim/lua/myConfig.lua
@@ -13,6 +13,8 @@ vim.o.ignorecase = true
13vim.o.smartcase = true 13vim.o.smartcase = true
14 14
15vim.o.smartindent = true 15vim.o.smartindent = true
16-- TODO: check that
17vim.o.cindent = true
16 18
17-- tabstop and shiftwidth are also set locally by individual filetypes 19-- tabstop and shiftwidth are also set locally by individual filetypes
18 20
@@ -347,21 +349,15 @@ cmp.setup {
347 349
348require("telescope").setup { 350require("telescope").setup {
349 extensions = { 351 extensions = {
350 file_browser = {
351 path = "%:p:h",
352 dir_icon = "D",
353 },
354 ["ui-select"] = { 352 ["ui-select"] = {
355 require("telescope.themes").get_dropdown(), 353 require("telescope.themes").get_dropdown(),
356 }, 354 },
357 }, 355 },
358} 356}
359 357
360require("telescope").load_extension "file_browser"
361require("telescope").load_extension "ui-select" 358require("telescope").load_extension "ui-select"
362 359
363local telescope_builtin = require "telescope.builtin" 360local telescope_builtin = require("telescope.builtin")
364local telescope_extensions = require("telescope").extensions
365 361
366vim.keymap.set("n", "<leader>fb", telescope_builtin.buffers, mapopts) 362vim.keymap.set("n", "<leader>fb", telescope_builtin.buffers, mapopts)
367vim.keymap.set("n", "<leader>ff", telescope_builtin.find_files, mapopts) 363vim.keymap.set("n", "<leader>ff", telescope_builtin.find_files, mapopts)
@@ -370,7 +366,12 @@ vim.keymap.set("n", "<leader>fh", telescope_builtin.help_tags, mapopts)
370vim.keymap.set("n", "<leader>fo", telescope_builtin.oldfiles, mapopts) 366vim.keymap.set("n", "<leader>fo", telescope_builtin.oldfiles, mapopts)
371vim.keymap.set("n", "<leader>fs", telescope_builtin.spell_suggest, mapopts) 367vim.keymap.set("n", "<leader>fs", telescope_builtin.spell_suggest, mapopts)
372vim.keymap.set("n", "<leader>ft", telescope_builtin.treesitter, mapopts) 368vim.keymap.set("n", "<leader>ft", telescope_builtin.treesitter, mapopts)
373vim.keymap.set("n", "-", telescope_extensions.file_browser.file_browser, mapopts) 369
370-- Oil.nvim
371
372require("oil").setup()
373
374vim.keymap.set("n", "-", require("oil").open, { desc = "Open parent directory" })
374 375
375-- Lualine 376-- Lualine
376 377
diff --git a/dotfiles/vim-dev.lua b/dotfiles/vim/lua/vim-dev.lua
index 33b46fd..a852447 100644
--- a/dotfiles/vim-dev.lua
+++ b/dotfiles/vim/lua/vim-dev.lua
@@ -42,7 +42,7 @@ local function on_attach(client, bufnr)
42 } 42 }
43end 43end
44 44
45capabilities = require("cmp_nvim_lsp").default_capabilities() 45local capabilities = require("cmp_nvim_lsp").default_capabilities()
46 46
47require("rust-tools").setup { 47require("rust-tools").setup {
48 server = { 48 server = {
diff --git a/usecases/desktop/development.nix b/usecases/desktop/development.nix
index 8fc2c85..c07a1a9 100644
--- a/usecases/desktop/development.nix
+++ b/usecases/desktop/development.nix
@@ -100,7 +100,8 @@ in
100 (mapAttrsToList lspconfigFor config.vim.lsp); 100 (mapAttrsToList lspconfigFor config.vim.lsp);
101 in 101 in
102 mkMerge [ 102 mkMerge [
103 (readFile ../../dotfiles/vim-dev.lua) 103 "require('vim-dev')"
104 "local lspconfig = require('lspconfig')"
104 lspconfig 105 lspconfig
105 ]; 106 ];
106 }; 107 };