+4
-3
nix/darwin.nix
+4
-3
nix/darwin.nix
···
1
-
{ user }: { pkgs, ... }: {
1
+
{ user }:
2
+
{ pkgs, ... }:
3
+
{
2
4
nix = {
3
5
# We install Nix using a separate installer so we don't want nix-darwin
4
6
# to manage it for us. This tells nix-darwin to just use whatever is running.
···
31
33
32
34
programs.zsh = {
33
35
enable = true;
34
-
shellInit = ''
35
-
'';
36
+
shellInit = '''';
36
37
};
37
38
38
39
environment.systemPackages = with pkgs; [
+5
-45
nix/home-manager/nvim/config/lsp.lua
+5
-45
nix/home-manager/nvim/config/lsp.lua
···
6
6
},
7
7
})
8
8
9
+
-- don't show 'E', 'H' etcs in the signcolumn; it's redunant with lualine's
9
10
-- diagnostics summary anyway
10
11
vim.opt.signcolumn = "no"
11
12
···
66
67
-- buf_set_keymap('n', '<C-k>', vim.lsp.buf.signature_help)
67
68
buf_set_keymap('n', '<C-s>', vim.lsp.buf.signature_help)
68
69
70
+
-- grr by default
69
71
buf_set_keymap('n', '<leader>r', vim.lsp.buf.references)
72
+
70
73
buf_set_keymap('n', '<leader>wa', vim.lsp.buf.add_workspace_folder)
71
74
buf_set_keymap('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder)
72
75
buf_set_keymap('n', '<leader>wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end)
73
76
buf_set_keymap('n', '<leader>D', vim.lsp.buf.type_definition)
74
77
buf_set_keymap('n', '<leader>ca', vim.lsp.buf.code_action)
75
-
buf_set_keymap('n', 'gr', vim.lsp.buf.references)
76
78
buf_set_keymap('n', '<leader>e', vim.diagnostic.open_float)
77
79
buf_set_keymap('n', '<leader>q', vim.diagnostic.setloclist)
78
80
-- buf_set_keymap('n', '<leader>ff', vim.lsp.buf.formatting)
81
+
buf_set_keymap('n', '<leader>f', function() vim.lsp.buf.format({ async = true }) end)
79
82
buf_set_keymap('n', '<leader>ff', function() vim.lsp.buf.format({ async = true }) end)
80
83
81
84
buf_set_keymap("n", "<leader>rs", function() vim.lsp.stop_client(vim.lsp.get_clients()) end)
82
85
end
83
86
84
-
-- https://github.com/golang/tools/blob/master/gopls/doc/vim.md#imports
87
+
-- https://github.com/golang/tools/blob/master/gopls/doc/editor/vim.md#neovim-imports
85
88
-- https://github.com/golang/tools/blob/master/gopls/doc/features/transformation.md#source.organizeImports
86
89
local goimports = function(client, wait_ms)
87
90
local params = vim.lsp.util.make_range_params(0, client.offset_encoding)
···
116
119
gopls = {
117
120
linksInHover = true,
118
121
completeFunctionCalls = true,
119
-
usePlaceholders = true,
120
122
experimentalPostfixCompletions = true,
121
123
staticcheck = true,
122
124
},
123
125
},
124
-
-- FIXME: yoinked from
125
-
-- https://github.com/hrsh7th/nvim-cmp/wiki/Language-Server-Specific-Samples#golang-gopls
126
-
-- i'm not sure if it's redundant with the usePlaceholders setting above?
127
-
init_options = {
128
-
usePlaceholders = true,
129
-
},
130
126
on_attach = (function(client, bufnr)
131
127
vim.api.nvim_create_autocmd("BufWritePre", {
132
128
pattern = "*.go",
···
147
143
})
148
144
vim.lsp.enable('gopls')
149
145
150
-
-- vim.lsp.config('yamlls', {
151
-
-- on_attach = on_attach,
152
-
-- settings = {
153
-
-- -- trace = {
154
-
-- -- server = verbose,
155
-
-- -- },
156
-
-- redhat = {
157
-
-- telemetry = {
158
-
-- enabled = false,
159
-
-- },
160
-
-- },
161
-
-- yaml = {
162
-
-- hover = true,
163
-
-- completion = true,
164
-
-- format = {
165
-
-- enable = true,
166
-
-- },
167
-
-- },
168
-
-- },
169
-
-- })
170
-
-- vim.lsp.enable('yamlls')
171
-
172
146
vim.lsp.config('lua_ls', {
173
147
on_attach = on_attach,
174
148
capablities = capablities,
···
196
170
})
197
171
vim.lsp.enable('lua_ls')
198
172
199
-
-- https://github.com/oxalica/nil/blob/2f3ed6348bbf1440fcd1ab0411271497a0fbbfa4/dev/nvim-lsp.nix#L83
200
-
nvim_lsp.nil_ls.setup {
201
-
on_attach = on_attach,
202
-
capablities = capablities,
203
-
settings = {
204
-
['nil'] = {
205
-
formatting = {
206
-
command = { "nixpkgs-fmt" },
207
-
},
208
-
},
209
-
},
210
-
}
211
-
212
-
-- local servers = { "rnix", "rust_analyzer", "tsserver", "golangcilsp" }
213
173
local servers = {
214
174
"bashls",
215
175
"eslint", "ts_ls",
+1
-1
nix/home-manager/nvim/config/plugins/fzf.lua
+1
-1
nix/home-manager/nvim/config/plugins/fzf.lua
···
19
19
20
20
-- pass search="" to avoid the prompt we'd normally get
21
21
vim.keymap.set('n', '<leader>g', function() fzf_lua.grep({ search = "" }) end, { silent = true })
22
-
vim.keymap.set('n', '<leader>f', fzf_lua.grep_cword, { silent = true })
22
+
vim.keymap.set('n', '<leader>h', fzf_lua.grep_cword, { silent = true })
23
23
vim.keymap.set('n', '<leader>G', fzf_lua.live_grep, { silent = true })
24
24
vim.keymap.set('n', ';', fzf_lua.files, { silent = true })
25
25
vim.keymap.set('n', '<leader>t', fzf_lua.treesitter, { silent = true })
+1
-10
nix/home-manager/nvim/default.nix
+1
-10
nix/home-manager/nvim/default.nix
···
91
91
}
92
92
93
93
{
94
-
plugin = pkgs.vimUtils.buildVimPlugin {
95
-
pname = "lualine-nvim";
96
-
version = "fix-colors";
97
-
src = pkgs.fetchFromGitHub {
98
-
owner = "nvim-lualine";
99
-
repo = "lualine.nvim";
100
-
rev = "1517caa8fff05e4b4999857319d3b0609a7f57fa";
101
-
sha256 = "sha256-DAYRf8JIty6W78JXBSyfnyCryUUYX+QrsHSAlcOk7Fc=";
102
-
};
103
-
};
94
+
plugin = lualine-nvim;
104
95
type = "lua";
105
96
config = builtins.readFile ./config/plugins/lualine.lua;
106
97
}
+9
-13
nix/mkSystem.nix
+9
-13
nix/mkSystem.nix
···
2
2
{ self, nixpkgs }:
3
3
4
4
name:
5
-
{ system
6
-
, user
7
-
, wsl ? false
5
+
{
6
+
system,
7
+
user,
8
8
# optional hardware module
9
-
, hardware ? { }
9
+
hardware ? { },
10
10
}:
11
11
12
12
let
···
16
16
17
17
darwin = pkgs.lib.strings.hasSuffix "darwin" system;
18
18
19
-
systemFunc =
20
-
if darwin
21
-
then self.inputs.darwin.lib.darwinSystem
22
-
else nixpkgs.lib.nixosSystem;
19
+
systemFunc = if darwin then self.inputs.darwin.lib.darwinSystem else nixpkgs.lib.nixosSystem;
23
20
home-manager =
24
-
if darwin
25
-
then self.inputs.home-manager.darwinModules
26
-
else self.inputs.home-manager.nixosModules;
21
+
if darwin then self.inputs.home-manager.darwinModules else self.inputs.home-manager.nixosModules;
27
22
28
23
overlays = [
29
24
(self: super: {
···
46
41
home-manager.verbose = true;
47
42
home-manager.backupFileExtension = "bak";
48
43
home-manager.users.${user} = import ./home-manager/home.nix {
49
-
inherit darwin wsl;
44
+
inherit darwin;
50
45
};
51
46
};
52
47
53
-
baseConfig = { pkgs, ... }:
48
+
baseConfig =
49
+
{ pkgs, ... }:
54
50
{
55
51
# Auto upgrade nix package and the daemon service.
56
52
# services.nix-daemon.enable = true;
+1
-2
nix/work.nix
+1
-2
nix/work.nix
···
88
88
programs.git.settings = {
89
89
user.email = "ehden@contrastsecurity.com";
90
90
91
-
url."git@github.com:Contrast-Security-Inc/".insteadOf =
92
-
"https://github.com/Contrast-Security-Inc/";
91
+
url."git@github.com:Contrast-Security-Inc/".insteadOf = "https://github.com/Contrast-Security-Inc/";
93
92
url."git@bitbucket.org:".insteadOf = "https://bitbucket.org/";
94
93
};
95
94