chore(tooling): add nix flake and reconfigure some stuff for neovim

This commit is contained in:
cswimr 2025-02-08 13:42:35 -06:00
parent c6f6f0d5c1
commit b2bc02108d
Signed by: cswimr
GPG key ID: 0EC431A8DA8F8087
5 changed files with 97 additions and 13 deletions

12
.editorconfig Normal file
View file

@ -0,0 +1,12 @@
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false

10
.envrc Normal file
View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
fi
watch_file flake.nix
watch_file flake.lock
if ! use flake . --no-pure-eval; then
echo "direnv could not be built. The direnv environment was not loaded. Make the necessary changes to flake.nix and hit enter to try again." >&2
fi

22
.vscode/launch.json vendored
View file

@ -1,15 +1,11 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "C#: Looking Glass",
"type": "dotnet",
"request": "launch",
"projectPath": "${workspaceFolder}/LookingGlass.csproj"
}
]
"version": "0.2.0",
"configurations": [
{
"name": "C#: Looking Glass",
"type": "coreclr",
"request": "launch",
"program": "./bin/Debug/net9.0/LookingGlass.dll"
}
]
}

25
flake.lock generated Normal file
View file

@ -0,0 +1,25 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1738680400,
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
"rev": "799ba5bffed04ced7067a91798353d360788b30d",
"revCount": 747653,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.747653%2Brev-799ba5bffed04ced7067a91798353d360788b30d/0194d302-29da-7009-8f43-5b8a58825954/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

41
flake.nix Normal file
View file

@ -0,0 +1,41 @@
{
description = "A Nix-flake-based C# development environment";
inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz";
outputs =
{ self, nixpkgs }:
let
supportedSystems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
forEachSupportedSystem =
f:
nixpkgs.lib.genAttrs supportedSystems (
system:
f {
pkgs = import nixpkgs { inherit system; };
}
);
in
{
devShells = forEachSupportedSystem (
{ pkgs }:
{
default = pkgs.mkShell {
packages = with pkgs; [
dotnet-sdk_9
omnisharp-roslyn
mono
];
shellHook = ''
export ASPNETCORE_ENVIRONMENT=Development
'';
};
}
);
};
}