1
0
Fork 0
This commit is contained in:
Daniel Kempkens 2022-11-27 17:12:49 +01:00
parent b352442ce2
commit 6de79b3c5c
Signed by: daniel
SSH key fingerprint: SHA256:Ks/MyhQYcPRQiwMKLAKquWCdCPe3JXlb1WttgnAoSeM
12 changed files with 291 additions and 219 deletions

View file

@ -91,99 +91,99 @@ in
# Matrix # Matrix
synapse = { # synapse = {
service = { # service = {
image = "matrixdotorg/synapse:latest"; # image = "matrixdotorg/synapse:latest";
container_name = "synapse"; # container_name = "synapse";
restart = "unless-stopped"; # restart = "unless-stopped";
depends_on = [ "ipv6nat" ]; # depends_on = [ "ipv6nat" ];
networks = [ "webserver" ]; # networks = [ "webserver" ];
volumes = [ # volumes = [
"/etc/container-matrix/synapse:/data" # "/etc/container-matrix/synapse:/data"
"/etc/container-matrix/telegram:/bridge-data/telegram:ro" # "/etc/container-matrix/telegram:/bridge-data/telegram:ro"
"/etc/container-matrix/signal:/bridge-data/signal:ro" # "/etc/container-matrix/signal:/bridge-data/signal:ro"
"/etc/container-matrix/whatsapp:/bridge-data/whatsapp:ro" # "/etc/container-matrix/whatsapp:/bridge-data/whatsapp:ro"
]; # ];
labels = { # labels = {
"com.centurylinklabs.watchtower.enable" = "true"; # "com.centurylinklabs.watchtower.enable" = "true";
}; # };
}; # };
}; # };
#
matrix-telegram = { # matrix-telegram = {
service = { # service = {
image = "dock.mau.dev/mautrix/telegram:latest"; # image = "dock.mau.dev/mautrix/telegram:latest";
container_name = "mautrix-telegram"; # container_name = "mautrix-telegram";
restart = "unless-stopped"; # restart = "unless-stopped";
depends_on = [ # depends_on = [
"ipv6nat" # "ipv6nat"
"synapse" # "synapse"
]; # ];
networks = [ "webserver" ]; # networks = [ "webserver" ];
volumes = [ # volumes = [
"/etc/container-matrix/telegram:/data" # "/etc/container-matrix/telegram:/data"
]; # ];
labels = { # labels = {
"com.centurylinklabs.watchtower.enable" = "true"; # "com.centurylinklabs.watchtower.enable" = "true";
}; # };
}; # };
}; # };
#
signald = { # signald = {
service = { # service = {
image = "signald/signald:latest"; # image = "signald/signald:latest";
container_name = "signald"; # container_name = "signald";
restart = "unless-stopped"; # restart = "unless-stopped";
depends_on = [ "ipv6nat" ]; # depends_on = [ "ipv6nat" ];
networks = [ "webserver" ]; # networks = [ "webserver" ];
volumes = [ # volumes = [
"/etc/container-matrix/signald:/signald" # "/etc/container-matrix/signald:/signald"
]; # ];
labels = { # labels = {
"com.centurylinklabs.watchtower.enable" = "true"; # "com.centurylinklabs.watchtower.enable" = "true";
}; # };
}; # };
}; # };
#
matrix-signal = { # matrix-signal = {
service = { # service = {
image = "dock.mau.dev/mautrix/signal:latest"; # image = "dock.mau.dev/mautrix/signal:latest";
container_name = "mautrix-signal"; # container_name = "mautrix-signal";
restart = "unless-stopped"; # restart = "unless-stopped";
depends_on = [ # depends_on = [
"ipv6nat" # "ipv6nat"
"synapse" # "synapse"
"signald" # "signald"
]; # ];
networks = [ "webserver" ]; # networks = [ "webserver" ];
volumes = [ # volumes = [
"/etc/container-matrix/signal:/data" # "/etc/container-matrix/signal:/data"
"/etc/container-matrix/signald:/signald" # "/etc/container-matrix/signald:/signald"
]; # ];
labels = { # labels = {
"com.centurylinklabs.watchtower.enable" = "true"; # "com.centurylinklabs.watchtower.enable" = "true";
}; # };
}; # };
}; # };
#
matrix-whatsapp = { # matrix-whatsapp = {
service = { # service = {
image = "dock.mau.dev/mautrix/whatsapp:latest"; # image = "dock.mau.dev/mautrix/whatsapp:latest";
container_name = "mautrix-whatsapp"; # container_name = "mautrix-whatsapp";
restart = "unless-stopped"; # restart = "unless-stopped";
depends_on = [ # depends_on = [
"ipv6nat" # "ipv6nat"
"synapse" # "synapse"
]; # ];
networks = [ "webserver" ]; # networks = [ "webserver" ];
volumes = [ # volumes = [
"/etc/container-matrix/whatsapp:/data" # "/etc/container-matrix/whatsapp:/data"
]; # ];
labels = { # labels = {
"com.centurylinklabs.watchtower.enable" = "true"; # "com.centurylinklabs.watchtower.enable" = "true";
}; # };
}; # };
}; # };
}; };
networks.webserver = { networks.webserver = {

View file

@ -58,11 +58,11 @@
}, },
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1659877975, "lastModified": 1667395993,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -79,11 +79,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1668900402, "lastModified": 1669328018,
"narHash": "sha256-IhVlueHoQNoN0SOHZIceKU3LyEL00g2ei0aUlaNypbQ=", "narHash": "sha256-aJRMobnNDEXKwoSZFS4hGjGU1WDNxkQ82BVKAEohOfY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c0f9cbcf93ca22e4f0ca66843be61a4bdf6f0a44", "rev": "62cb5bcf93896e4dd6b4507dac7ba2e2e3abc9d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -102,11 +102,11 @@
}, },
"locked": { "locked": {
"dir": "contrib", "dir": "contrib",
"lastModified": 1668865307, "lastModified": 1669432527,
"narHash": "sha256-Fwoalxq8UzocDeK5LIlAOT/JglG8SeGtH6yvvzHh/uU=", "narHash": "sha256-lfjjzg/NFFfP8cFCCKRr36EkQVlcNyMZBCNne6lY1Cs=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "6e8ed5abaa9c33d1d78ab7ff5b07dd5bac623a1d", "rev": "84465a8c1583f444d4365b2a70e03cd38ebe7f81",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -125,11 +125,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1668932129, "lastModified": 1669450483,
"narHash": "sha256-DcGSEgs+q+JRQwrxdasedbMkYZ9g5jxkekd+td+dXxs=", "narHash": "sha256-CP7I2vV8/fnpBjwDVhJluze/9mrmy87U93qAkVDOnQQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "neovim-nightly-overlay", "repo": "neovim-nightly-overlay",
"rev": "543d1ddb6231aef08e4ce063d72d0822b9b60598", "rev": "7904a5497404a613d2e8658067fb212ed2401fd9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -145,11 +145,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1668932791, "lastModified": 1669451122,
"narHash": "sha256-gYCbSJk4WwOIOiKiuhV1LsHz1KPdMZ/8het/l7EnDr8=", "narHash": "sha256-RW8DYU6nvqsawjnSwJLZZGsLn/3LaSn+G/GLd4dTZew=",
"owner": "nifoc", "owner": "nifoc",
"repo": "nix-overlay", "repo": "nix-overlay",
"rev": "de4c5221b5cc56a7508a75ee22a6e838aaf7b01e", "rev": "bf8ce1d598334cde1a31f22b635b9b3467726596",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -160,11 +160,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1668912770, "lastModified": 1669443273,
"narHash": "sha256-Nzt7ALUl5PrUAYIH8aRbj+njkJZVQ4VQBkWx+qQvqyM=", "narHash": "sha256-/Ow9P6dWfkQF/9NKD7+OnMnz5DJr2pVCAUMjU9SwFoo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "862277ac9d34273cd953f42061e23d488d6b7e8b", "rev": "6b86759692b80e2b563e7f6c608f753de4aad3a7",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -0,0 +1,14 @@
(let [jdtls (require :jdtls)
project-name (vim.fn.fnamemodify (vim.fn.getcwd) ":p:h:t")
cache-dir (.. (vim.loop.os_homedir) :/.cache/jdtls)
jars-dir (.. cache-dir :/jars)
workspace-dir (.. cache-dir :/workspace/ project-name)
config {:cmd [:jdt-language-server :-data workspace-dir]
:root_dir (vim.fs.dirname (. (vim.fs.find [:.gradlew
:.git
:.mvnw]
{:upward true})
1))}]
(set vim.env.JAVA_OPTS (.. "-javaagent:" jars-dir :/lombok.jar))
(jdtls.start_or_attach config))

View file

@ -2,32 +2,31 @@
cmp (require :cmp_nvim_lsp) cmp (require :cmp_nvim_lsp)
navic (require :nvim-navic) navic (require :nvim-navic)
diagnostic (require :nifoc.diagnostic) diagnostic (require :nifoc.diagnostic)
formatting (require :nifoc.formatting)] formatting (require :nifoc.formatting)
(fn custom-attach [client bufnr] augroup (vim.api.nvim_create_augroup :NifocLsp {:clear true})
aucmd vim.api.nvim_create_autocmd]
;; Attach
(aucmd :LspAttach {:callback (fn [args]
(let [client (vim.lsp.get_client_by_id args.data.client_id)
bufnr args.buf]
(when (client.supports_method :textDocument/documentSymbol) (when (client.supports_method :textDocument/documentSymbol)
(navic.attach client bufnr)) (navic.attach client bufnr))
(diagnostic.maybe-enable-lsp client bufnr) (diagnostic.maybe-enable-lsp client bufnr)
(formatting.maybe-enable-lsp client bufnr)) (formatting.maybe-enable-lsp client bufnr)))
:group augroup
(fn custom-attach-no-format [client bufnr] :desc "Automatic LSP setup"})
(set client.server_capabilities.documentFormattingProvider false)
(set client.server_capabilities.documentRangeFormattingProvider false)
(custom-attach client bufnr))
;; Servers ;; Servers
(let [capabilities (cmp.default_capabilities) (let [capabilities (cmp.default_capabilities)
flags {:allow_incremental_sync true :debounce_text_changes 700} flags {:allow_incremental_sync true :debounce_text_changes 700}
default-config {:on_attach custom-attach : capabilities : flags} default-config {: capabilities : flags}
default-config-no-format {:on_attach custom-attach-no-format
: capabilities
: flags}
default-servers [:bashls default-servers [:bashls
:cssls :cssls
:dockerls :dockerls
:erlangls :erlangls
:eslint :eslint
:fennel-ls
:html :html
:jdtls :jsonls
:nil_ls :nil_ls
:rnix :rnix
:sqls :sqls
@ -44,8 +43,6 @@
:--stdio :--stdio
:--tsserver-path :--tsserver-path
:tsserver]} :tsserver]}
(vim.tbl_extend :force default-config-no-format)))
(lsp.jsonls.setup (->> {:cmd [:vscode-json-language-server :--stdio]}
(vim.tbl_extend :force default-config))) (vim.tbl_extend :force default-config)))
(lsp.solargraph.setup (->> {:settings {:solargraph {:diagnostics true}}} (lsp.solargraph.setup (->> {:settings {:solargraph {:diagnostics true}}}
(vim.tbl_extend :force default-config))) (vim.tbl_extend :force default-config)))

View file

@ -1,7 +1,8 @@
(let [lint (require :lint) (let [lint (require :lint)
diagnostic (require :nifoc.diagnostic) diagnostic (require :nifoc.diagnostic)
augroup (vim.api.nvim_create_augroup :NifocLint {:clear true}) augroup (vim.api.nvim_create_augroup :NifocLint {:clear true})
aucmd vim.api.nvim_create_autocmd] aucmd vim.api.nvim_create_autocmd
project-root (vim.fs.dirname (. (vim.fs.find [:.git] {:upward true}) 1))]
;; Custom Linters ;; Custom Linters
(set lint.linters.deadnix (set lint.linters.deadnix
{:cmd :deadnix {:cmd :deadnix
@ -22,13 +23,18 @@
:message result.message}) :message result.message})
findings.results))))}) findings.results))))})
;; Linter Options ;; Linter Options
(let [fennel (require :lint.linters.fennel)] (let [checkstyle (require :lint.linters.checkstyle)
fennel (require :lint.linters.fennel)]
(when (not= project-root nil)
(set checkstyle.config_file
(.. project-root :/config/checkstyle/checkstyle.xml)))
(set fennel.globals [:vim])) (set fennel.globals [:vim]))
;; Configure Linters per FT ;; Configure Linters per FT
(set lint.linters_by_ft {:dockerfile [:hadolint] (set lint.linters_by_ft {:dockerfile [:hadolint]
:elixir [:credo] :elixir [:credo]
;:fennel [:fennel] ;:fennel [:fennel]
:fish [:fish] :fish [:fish]
:java [:checkstyle]
:nix [:deadnix :nix :statix] :nix [:deadnix :nix :statix]
:sh [:shellcheck] :sh [:shellcheck]
:yaml [:yamllint]}) :yaml [:yamllint]})

View file

@ -24,6 +24,7 @@ in
ripgrep ripgrep
# LSP # LSP
fennel-ls
nil nil
nodePackages.bash-language-server nodePackages.bash-language-server
nodePackages.dockerfile-language-server-nodejs nodePackages.dockerfile-language-server-nodejs
@ -37,6 +38,7 @@ in
taplo-lsp taplo-lsp
# Diagnostic Tools # Diagnostic Tools
checkstyle
deadnix deadnix
hadolint hadolint
lua51Packages.fennel lua51Packages.fennel
@ -176,6 +178,8 @@ in
type = "fennel"; type = "fennel";
} }
nvim-jdtls
{ {
plugin = lsp_lines-nvim; plugin = lsp_lines-nvim;
config = '' config = ''
@ -341,6 +345,7 @@ in
} '' } ''
mkdir -p $out/lua/configuration mkdir -p $out/lua/configuration
mkdir -p $out/lua/nifoc/utils mkdir -p $out/lua/nifoc/utils
mkdir -p $out/ftplugin
mkdir -p $out/after/ftplugin mkdir -p $out/after/ftplugin
config_store_path="${../../config/nvim}" config_store_path="${../../config/nvim}"
@ -366,6 +371,17 @@ in
$fennel "$fnlfile" > "$out/lua/nifoc/$file_out_path" $fennel "$fnlfile" > "$out/lua/nifoc/$file_out_path"
done done
# ftplugin
ftplugin_store_path="$config_store_path/ftplugin"
ftplugin_store_fnl="$(find "$ftplugin_store_path" -type f -name '*.fnl')"
for fnlfile in $ftplugin_store_fnl; do
file_out_path="$(echo "$fnlfile" | sed "s|$ftplugin_store_path/||" | sed "s/.fnl$/.lua/")"
echo "Compiling $fnlfile ..."
$fennel "$fnlfile" > "$out/ftplugin/$file_out_path"
done
# After # After
after_store_path="$config_store_path/after" after_store_path="$config_store_path/after"
after_store_fnl="$(find "$after_store_path" -type f -name '*.fnl')" after_store_fnl="$(find "$after_store_path" -type f -name '*.fnl')"

View file

@ -36,23 +36,23 @@ rec {
}; };
nvim-web-devicons = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-web-devicons = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-web-devicons"; pname = "nvim-web-devicons";
version = "2022-11-14"; version = "2022-11-26";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "kyazdani42"; owner = "kyazdani42";
repo = "nvim-web-devicons"; repo = "nvim-web-devicons";
rev = "3b1b794bc17b7ac3df3ae471f1c18f18d1a0f958"; rev = "189ad3790d57c548896a78522fd8b0d0fc11be31";
sha256 = "1yxrv5kc5prfllgfcj2h8c8b74rydwdc8hm2fwbk1d0d9jcs66w7"; sha256 = "1k45pgz1jldkrczxyhhv6abj1klbkl07g2lxw7hhlsbyflg7h9sv";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
nvim-osc52 = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-osc52 = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-osc52"; pname = "nvim-osc52";
version = "2022-11-10"; version = "2022-11-22";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "ojroques"; owner = "ojroques";
repo = "nvim-osc52"; repo = "nvim-osc52";
rev = "27b922a88aba9b2533c4a0e0bc5bca65e3405739"; rev = "5e7efbc047be9eca1307899137a89cd2b6b8125a";
sha256 = "13xf92xjrh8kky1n474vwhg433ckz7czc80cnj7c45hq763s4ahi"; sha256 = "0ibyffddw3j4r04xx4qpvhynxa695wphfs4p4vfxjzspwxw0rgdn";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -80,23 +80,23 @@ rec {
}; };
substitute-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { substitute-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "substitute.nvim"; pname = "substitute.nvim";
version = "2022-11-10"; version = "2022-11-21";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "gbprod"; owner = "gbprod";
repo = "substitute.nvim"; repo = "substitute.nvim";
rev = "996d13312d080a01c2bff903d30f4c5db55b3941"; rev = "1491b84348de39a54865f321b66bd2c03700ef04";
sha256 = "0j8vfaiklywkj5q9n2g4i5xxxr0r1nsjkr9z523xrcslsg7la672"; sha256 = "1dv7bk3hzf4gs4ljbfflgy60q5lh2zvh120f9rmhsm4m0npj7z76";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
leap-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { leap-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "leap.nvim"; pname = "leap.nvim";
version = "2022-11-19"; version = "2022-11-22";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "ggandor"; owner = "ggandor";
repo = "leap.nvim"; repo = "leap.nvim";
rev = "cd90202232806ec2dab9c76c7287bd2190a17459"; rev = "c5ddd07ff5f436cd8b655154d2a8e8d4c2f29466";
sha256 = "0fk686d4hs7ld4a85gfhqmd4nk9f951bjjhkknbkkq0rijdrpysa"; sha256 = "1j72hsjsip1qa94zx8yx1jz62ikqa2dlqz27qv7mz6801ndh2sz0";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -111,28 +111,16 @@ rec {
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
nvim-treesitter = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-treesitter = pkgs.vimPlugins.nvim-treesitter.overrideAttrs (_: {
pname = "nvim-treesitter"; version = "2022-11-26";
version = "2022-11-20";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "nvim-treesitter"; owner = "nvim-treesitter";
repo = "nvim-treesitter"; repo = "nvim-treesitter";
rev = "b6e4f544860651b5ee4f2c43e909674c57355b52"; rev = "5aacb06135a952190933f9bfff923957db8965db";
sha256 = "1qvkmv58f75c2zrlpywjbjki4w8m6k1jxmxmfdhzn04f9v7qmq0c"; sha256 = "1vxjpzg96n15d35lc0wvid3mwy94a48vpjn06b1n8sra384xa338";
fetchSubmodules = false; fetchSubmodules = false;
}; };
passthru.withPlugins =
grammarFn: nvim-treesitter.overrideAttrs (_: {
postPatch =
let
grammars = pkgs.tree-sitter.withPlugins grammarFn;
in
''
rm -r parser
ln -s ${grammars} parser
'';
}); });
};
nvim-ts-rainbow = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-ts-rainbow = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-ts-rainbow"; pname = "nvim-ts-rainbow";
version = "2022-11-04"; version = "2022-11-04";
@ -157,12 +145,12 @@ rec {
}; };
telescope-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { telescope-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "telescope.nvim"; pname = "telescope.nvim";
version = "2022-11-11"; version = "2022-11-23";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "nvim-telescope"; owner = "nvim-telescope";
repo = "telescope.nvim"; repo = "telescope.nvim";
rev = "7a4ffef931769c3fe7544214ed7ffde5852653f6"; rev = "cea9c75c19d172d2c6f089f21656019734a615cf";
sha256 = "0n2cz7pgnn5wbklw0wax0k0gvhbf5gc1rs7i9d1bmwrljipgi4ak"; sha256 = "18ivpbfnxx5hilapcb7n1qq0a5am5sq6zixhb3slsfqqg0a2v8rn";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -226,12 +214,23 @@ rec {
}; };
nvim-lspconfig = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-lspconfig = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-lspconfig"; pname = "nvim-lspconfig";
version = "2022-11-20"; version = "2022-11-26";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "neovim"; owner = "neovim";
repo = "nvim-lspconfig"; repo = "nvim-lspconfig";
rev = "04b672b68d80fd81d41079de101d2be31f761e15"; rev = "abe6c99c7489de2c317869cf5dea57a9595a0cca";
sha256 = "1i3xzgb1468bmgnq9lab4v92zafd27z5qhvkxa0yda2q0g9gh60v"; sha256 = "18b2vi0gl48257rwdnaq2xcrhhfmpahmjzcpm3c8k7z43igf8jla";
fetchSubmodules = false;
};
};
nvim-jdtls = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-jdtls";
version = "2022-11-01";
src = pkgs.fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-jdtls";
rev = "7bc572fc357d7dec8d3ca620b53e763776472582";
sha256 = "10rm01cxc1xnw7m886ssnmb5ihlsfjhp6sqm9dhmrkg4ywkbhj9m";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -281,12 +280,12 @@ rec {
}; };
nvim-lint = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-lint = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-lint"; pname = "nvim-lint";
version = "2022-11-19"; version = "2022-11-22";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "mfussenegger"; owner = "mfussenegger";
repo = "nvim-lint"; repo = "nvim-lint";
rev = "666ed80fcb78cf6355f3d5b7ebdbacef6465578c"; rev = "ea8cae4a97b2127702d4b891c40c48d8230670e5";
sha256 = "1zncna7k5k3ifr24wfjzbsby1g79cyr718lkq1vfyz798f9pkk03"; sha256 = "05qm8zgmh5q98hwmp0zc27wwmxnyady6v04kqd4b72cx00xnx0dw";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -303,12 +302,12 @@ rec {
}; };
LuaSnip = pkgs.vimUtils.buildVimPluginFrom2Nix { LuaSnip = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "LuaSnip"; pname = "LuaSnip";
version = "2022-11-20"; version = "2022-11-22";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "L3MON4D3"; owner = "L3MON4D3";
repo = "LuaSnip"; repo = "LuaSnip";
rev = "2373292156322c17b91b9454c6c183a5ef233fd1"; rev = "79f647218847b1cd204fede7dd89025e43fd00c3";
sha256 = "0yljys32y0wq25747n4rzasi7fyxwqqqb6bp071jkzwrdrh6wais"; sha256 = "1n99rq71fgasagglzq0sxlvxnprmbqi3jd47q5n59zs0h1q63hyk";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -325,12 +324,12 @@ rec {
}; };
nvim-cmp = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-cmp = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-cmp"; pname = "nvim-cmp";
version = "2022-11-18"; version = "2022-11-24";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "hrsh7th"; owner = "hrsh7th";
repo = "nvim-cmp"; repo = "nvim-cmp";
rev = "8a9e8a89eec87f86b6245d77f313a040a94081c1"; rev = "4c05626ccd70b1cab777c507b34f36ef27d41cbf";
sha256 = "1gkm3pl06xvzxl5phk2g2hg8zqdpznn3jd5hjjspjfycgwscxbsx"; sha256 = "185mxjj3r9jhgylr3ai08i5br6xh7jifyqyxgsw9a0plq8qywcvl";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -435,23 +434,23 @@ rec {
}; };
neoformat = pkgs.vimUtils.buildVimPluginFrom2Nix { neoformat = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "neoformat"; pname = "neoformat";
version = "2022-11-12"; version = "2022-11-24";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "sbdchd"; owner = "sbdchd";
repo = "neoformat"; repo = "neoformat";
rev = "1f79f6e6b2a1e2b3ace87d4760769feb4146ff35"; rev = "a09d6ed9eacd0b81c0f8641757e60f7bb0e27f6e";
sha256 = "02vik8gfqncxjhr065sr9bw7fd9lhbwkjjkzn2j9p7y2gw0yjcis"; sha256 = "1pqz1bz5nwdrm4x0p38xhabyb089spvp5khhl154k5mi6fsws219";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
nvim-autopairs = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-autopairs = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-autopairs"; pname = "nvim-autopairs";
version = "2022-10-27"; version = "2022-11-24";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "windwp"; owner = "windwp";
repo = "nvim-autopairs"; repo = "nvim-autopairs";
rev = "6b6e35fc9aca1030a74cc022220bc22ea6c5daf4"; rev = "5d75276fce887c0cf433bb1b9867717907211063";
sha256 = "1laskay0f6rf9283cgiv1db3ph4imzyfk10j0wn6f8zsm8n13m1v"; sha256 = "11ivy3iaw672yfgbq92q0xd9s6qijs5rd5464fgdwimqrsac0300";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -479,23 +478,23 @@ rec {
}; };
nvim-treesitter-textobjects = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-treesitter-textobjects = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-treesitter-textobjects"; pname = "nvim-treesitter-textobjects";
version = "2022-11-19"; version = "2022-11-26";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "nvim-treesitter"; owner = "nvim-treesitter";
repo = "nvim-treesitter-textobjects"; repo = "nvim-treesitter-textobjects";
rev = "1435ea532a3c9e6ea48ed3438fdf48bb37277578"; rev = "04c61332a3cb78e56f7455d17d7878b0b7e66270";
sha256 = "1m3hfidjim2cy4x3np4rqcg67cq1kqz64yaqkcj7qlwlxd29gi6p"; sha256 = "0db6s53540f1z11ffnmbfqbx504qpwzsrs8xxp9b61pgy66lsf3l";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
nvim-surround = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-surround = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-surround"; pname = "nvim-surround";
version = "2022-11-19"; version = "2022-11-24";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "kylechui"; owner = "kylechui";
repo = "nvim-surround"; repo = "nvim-surround";
rev = "93380716d94e451c340e653ce09d73e9cabe54c6"; rev = "6b45fbffdabb2d8cd80d310006c92e59cec8fd74";
sha256 = "0xzx9iwdyz95l9bxsbb74bc35bvp5va5855c56qvimc4bcflgp5a"; sha256 = "1qdhyclzsw1inwwzw3kr1jxq3cz0qr358whj93y16x7id3ylsx52";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
@ -578,23 +577,23 @@ rec {
}; };
nvim-notify = pkgs.vimUtils.buildVimPluginFrom2Nix { nvim-notify = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nvim-notify"; pname = "nvim-notify";
version = "2022-11-10"; version = "2022-11-24";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "rcarriga"; owner = "rcarriga";
repo = "nvim-notify"; repo = "nvim-notify";
rev = "43c54aec682854b39a7e0e89b4c3ba00426d74a8"; rev = "e7cffd0e8c3beaa0df7d06567620afa964bc2963";
sha256 = "0ga67fj7wf54mvrbsq423ccw3rvsgrd66dg0pq7cz7x9i7v5dz4d"; sha256 = "0j2q6wd5izv6y5cj50xildd117zx8ncd93074fp97gdyb2xmp45g";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };
noice-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { noice-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "noice.nvim"; pname = "noice.nvim";
version = "2022-11-20"; version = "2022-11-24";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "folke"; owner = "folke";
repo = "noice.nvim"; repo = "noice.nvim";
rev = "c0d4e174e407bd6824bf14c8ea3d2e24439defbf"; rev = "fa21685e23cbb72bb573eecf48dd3644bc1513ba";
sha256 = "0z8ja7b43sic4pkhcrn70yb9lcg4r3jwsj557p197s6ixnm16lcq"; sha256 = "1vbm54fykn6xzndrrrb1bcymbwbmanifnsr693v5647k5hmsjc64";
fetchSubmodules = false; fetchSubmodules = false;
}; };
}; };

View file

@ -33,6 +33,7 @@
# LSP # LSP
- src: neovim/nvim-lspconfig - src: neovim/nvim-lspconfig
- src: mfussenegger/nvim-jdtls
- src: "https://git.sr.ht/~whynothugo/lsp_lines.nvim" - src: "https://git.sr.ht/~whynothugo/lsp_lines.nvim"
- src: onsails/lspkind.nvim - src: onsails/lspkind.nvim
- src: SmiteshP/nvim-navic - src: SmiteshP/nvim-navic

View file

@ -76,9 +76,21 @@ for plugin in "${plugin_array[@]}"; do
;; ;;
esac esac
case "$name" in
nvim-treesitter)
echo "${name} = pkgs.vimPlugins.nvim-treesitter.overrideAttrs (_: {" >>"$nix_new_file"
close_block="});"
;;
*)
{ {
echo "${name} = pkgs.vimUtils.buildVimPluginFrom2Nix {" echo "${name} = pkgs.vimUtils.buildVimPluginFrom2Nix {"
echo "pname = \"${repo}\";" echo "pname = \"${repo}\";"
} >>"$nix_new_file"
close_block="};"
;;
esac
{
echo "version = \"${version}\";" echo "version = \"${version}\";"
echo "src = ${fetcher} ${src};" echo "src = ${fetcher} ${src};"
} >>"$nix_new_file" } >>"$nix_new_file"
@ -97,28 +109,7 @@ for plugin in "${plugin_array[@]}"; do
printf "buildPhase = ''\n%s\n'';\n" "$build_phase" >>"$nix_new_file" printf "buildPhase = ''\n%s\n'';\n" "$build_phase" >>"$nix_new_file"
fi fi
case "$name" in echo "$close_block" >>"$nix_new_file"
nvim-treesitter)
passthru="passthru.withPlugins =
grammarFn: nvim-treesitter.overrideAttrs (_: {
postPatch =
let
grammars = pkgs.tree-sitter.withPlugins grammarFn;
in
''
rm -r parser
ln -s \${grammars} parser
'';
});"
;;
*)
passthru=""
;;
esac
echo -n "$passthru" >>"$nix_new_file"
echo '};' >>"$nix_new_file"
done done
echo "}" >>"$nix_new_file" echo "}" >>"$nix_new_file"

Binary file not shown.

View file

@ -11,6 +11,7 @@ in
../../hardware/hosts/sail.nix ../../hardware/hosts/sail.nix
../nixos/ssh.nix ../nixos/ssh.nix
(import ../nixos/dendrite.nix (args // { inherit secret; }))
../nixos/git.nix ../nixos/git.nix
(import ../nixos/tailscale.nix (args // { inherit secret; })) (import ../nixos/tailscale.nix (args // { inherit secret; }))

47
system/nixos/dendrite.nix Normal file
View file

@ -0,0 +1,47 @@
{ secret, ... }:
let
connectionString = "postgres://${secret.dendrite.database.user}:${secret.dendrite.database.password}@10.99.99.3/dendrite?sslmode=disable";
in
{
services.dendrite = {
enable = true;
environmentFile = "/var/lib/dendrite/secrets/environment";
loadCredential = [
"private_key:/var/lib/dendrite/secrets/matrix_key.pem"
];
settings = {
global = {
server_name = "kempkens.io";
private_key = "$CREDENTIALS_DIRECTORY/private_key";
metrics.enabled = false;
report_stats.enabled = false;
};
app_service_api.database.connection_string = connectionString;
federation_api.database.connection_string = connectionString;
key_server.database.connection_string = connectionString;
media_api.database.connection_string = connectionString;
mscs.database.connection_string = connectionString;
room_server.database.connection_string = connectionString;
sync_api.database.connection_string = connectionString;
user_api.account_database.connection_string = connectionString;
user_api.device_database.connection_string = connectionString;
client_api = {
registration_shared_secret = "$REGISTRATION_SHARED_SECRET";
registration_disabled = true;
};
mscs.mscs = [
# threading
"msc2946"
# spaces
"msc2836"
];
};
};
}