chore: use devenv for project management
This commit is contained in:
parent
564afe7a9d
commit
10015afd50
8 changed files with 225 additions and 23 deletions
3
.envrc
Normal file
3
.envrc
Normal file
|
@ -0,0 +1,3 @@
|
|||
source_url "https://raw.githubusercontent.com/cachix/devenv/95f329d49a8a5289d31e0982652f7058a189bfca/direnvrc" "sha256-d+8cBpDfDBj41inrADaJt+bDWhOktwslgoP5YiGJ1v0="
|
||||
|
||||
use devenv
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1 +1,4 @@
|
|||
/_/
|
||||
|
||||
.devenv*
|
||||
.direnv
|
||||
|
|
4
.vscode/extensions.json
vendored
4
.vscode/extensions.json
vendored
|
@ -1,9 +1,13 @@
|
|||
{
|
||||
"recommendations": [
|
||||
// general
|
||||
"mkhl.direnv",
|
||||
"skellock.just",
|
||||
"usernamehw.errorlens",
|
||||
|
||||
// nix
|
||||
"jnoortheen.nix-ide",
|
||||
|
||||
// js
|
||||
"esbenp.prettier-vscode",
|
||||
|
||||
|
|
9
.vscode/settings.json
vendored
9
.vscode/settings.json
vendored
|
@ -3,6 +3,8 @@
|
|||
|
||||
"cSpell.words": [
|
||||
"developomp",
|
||||
"devenv",
|
||||
"direnv",
|
||||
"fstat",
|
||||
"nums",
|
||||
"rustup",
|
||||
|
@ -23,6 +25,13 @@
|
|||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
|
||||
"[nix]": {
|
||||
"editor.defaultFormatter": "jnoortheen.nix-ide"
|
||||
},
|
||||
"nix.formatterPath": "nixfmt",
|
||||
"nix.enableLanguageServer": true,
|
||||
"nix.serverPath": "nixd",
|
||||
|
||||
"[c]": {
|
||||
"editor.defaultFormatter": "ms-vscode.cpptools"
|
||||
},
|
||||
|
|
31
README.md
31
README.md
|
@ -1,35 +1,20 @@
|
|||
# Playground
|
||||
|
||||
This is [developomp](https://github.com/developomp)'s vscode-based coding playground.
|
||||
This is my coding playground for...
|
||||
|
||||
The playground is used to...
|
||||
|
||||
- quickly test and benchmark snippets of code
|
||||
- solve algorithm problems
|
||||
- quickly testing and benchmarking snippets of code
|
||||
- solving algorithm problems
|
||||
- playing with new tech without having to create and configure a new project
|
||||
|
||||
## Setting up
|
||||
|
||||
Setup the following:
|
||||
|
||||
- shell (only if you're a Windows user. Get [Git bash](https://git-scm.com/downloads) / [GitHub Desktop](https://desktop.github.com) / [Cygwin](https://cygwin.com/install.html) / ... )
|
||||
- [just](https://github.com/casey/just)
|
||||
- [hyperfine](https://github.com/sharkdp/hyperfine)
|
||||
- [python](https://python.org)
|
||||
- [node](https://nodejs.org)
|
||||
- [rust](https://rust-lang.org) (recommend using [rustup](https://github.com/rust-lang/rustup))
|
||||
- [go](https://go.dev)
|
||||
- [clang](https://clang.llvm.org)
|
||||
- [GCC](https://gcc.gnu.org)
|
||||
- [yasm](https://yasm.tortall.net)
|
||||
- [texlive](https://tug.org/texlive)
|
||||
|
||||
You can check other dev tools I use and more over [here](https://github.com/developomp/pompup).
|
||||
- Install the following:
|
||||
- [devenv](https://devenv.sh/getting-started)
|
||||
- [direnv](https://devenv.sh/automatic-shell-activation)
|
||||
|
||||
## Usage
|
||||
|
||||
Simply call just recipes using the `just` command runner CLI.
|
||||
|
||||
Examples:
|
||||
Run [just](https://github.com/casey/just) recipes:
|
||||
|
||||
```bash
|
||||
just run-go # automatically build go code before running it and pass arguments from input.txt
|
||||
|
|
116
devenv.lock
Normal file
116
devenv.lock
Normal file
|
@ -0,0 +1,116 @@
|
|||
{
|
||||
"nodes": {
|
||||
"devenv": {
|
||||
"locked": {
|
||||
"dir": "src/modules",
|
||||
"lastModified": 1728740426,
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "ef61728d91ad5eb91f86cdbcc16070602e7afa16",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"dir": "src/modules",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"pre-commit-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1728538411,
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1728627514,
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c505ebf777526041d792a49d5f6dd4095ea391a7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728778939,
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "ff68f91754be6f3427e4986d7949e6273659be1d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"devenv": "devenv",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"pre-commit-hooks": "pre-commit-hooks"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
75
devenv.nix
Normal file
75
devenv.nix
Normal file
|
@ -0,0 +1,75 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
packages = with pkgs; [
|
||||
just
|
||||
hyperfine
|
||||
|
||||
ruff
|
||||
yasm
|
||||
nixfmt-rfc-style
|
||||
];
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/c.nix
|
||||
# https://devenv.sh/supported-languages/c
|
||||
languages.c.enable = true;
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/cplusplus.nix
|
||||
# https://devenv.sh/supported-languages/cplusplus
|
||||
languages.cplusplus.enable = true;
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/go.nix
|
||||
# https://devenv.sh/supported-languages/go
|
||||
languages.go.enable = true;
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/javascript.nix
|
||||
# https://devenv.sh/supported-languages/javascript
|
||||
languages.javascript = {
|
||||
enable = true;
|
||||
directory = "./js";
|
||||
|
||||
pnpm.enable = true;
|
||||
bun.enable = true;
|
||||
};
|
||||
|
||||
# https://devenv.sh/supported-languages/typescript
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/nix.nix
|
||||
# https://devenv.sh/supported-languages/nix
|
||||
languages.nix = {
|
||||
enable = true;
|
||||
lsp.package = pkgs.nixd;
|
||||
};
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/php.nix
|
||||
# https://devenv.sh/supported-languages/php
|
||||
languages.php.enable = true;
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/python.nix
|
||||
# https://devenv.sh/supported-languages/python
|
||||
languages.python = {
|
||||
enable = true;
|
||||
directory = "./py";
|
||||
|
||||
venv.enable = true;
|
||||
};
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/rust.nix
|
||||
# https://devenv.sh/supported-languages/rust
|
||||
languages.rust.enable = true;
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/texlive.nix
|
||||
# https://devenv.sh/supported-languages/texlive
|
||||
languages.texlive = {
|
||||
enable = true;
|
||||
|
||||
# texlive is broken rn
|
||||
# https://github.com/cachix/devenv/issues/1521
|
||||
# https://github.com/Glavin001/atom-beautify/issues/1792#issuecomment-327071117
|
||||
# base = pkgs.texliveFull;
|
||||
};
|
||||
|
||||
# https://github.com/cachix/devenv/blob/main/src/modules/languages/zig.nix
|
||||
# https://devenv.sh/supported-languages/zig
|
||||
languages.zig.enable = true;
|
||||
}
|
7
devenv.yaml
Normal file
7
devenv.yaml
Normal file
|
@ -0,0 +1,7 @@
|
|||
# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json
|
||||
|
||||
inputs:
|
||||
nixpkgs:
|
||||
url: github:nixos/nixpkgs/nixpkgs-unstable
|
||||
|
||||
allowUnfree: true
|
Loading…
Add table
Add a link
Reference in a new issue