diff --git a/flake.lock b/flake.lock index b031598..2df61ec 100644 --- a/flake.lock +++ b/flake.lock @@ -176,11 +176,11 @@ ] }, "locked": { - "lastModified": 1727531434, - "narHash": "sha256-b+GBgCWd2N6pkiTkRZaMFOPztPO4IVTaclYPrQl2uLk=", + "lastModified": 1726590912, + "narHash": "sha256-5bxY85siOIqOcQ8TOMAWLkMUZvLUADS2i5TsZhzUIZY=", "owner": "nix-community", "repo": "disko", - "rev": "b709e1cc33fcde71c7db43850a55ebe6449d0959", + "rev": "d32d1504c77d7f6ba7e033357dcf638baceab9b7", "type": "github" }, "original": { @@ -393,11 +393,11 @@ ] }, "locked": { - "lastModified": 1726989464, - "narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=", + "lastModified": 1726592409, + "narHash": "sha256-2Y6CDvD/BD43WLS77PHu6dUHbdUfFhuzkY8oJAecD/U=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176", + "rev": "2ab00f89dd3ecf8012f5090e6d7ca1a7ea30f594", "type": "github" }, "original": { @@ -414,11 +414,11 @@ ] }, "locked": { - "lastModified": 1727658919, - "narHash": "sha256-YAePt2GldkkRJ08LvZNHcuS6shIVStj+K+1DZN3gbnM=", + "lastModified": 1726449931, + "narHash": "sha256-1AX7MyYzP7sNgZiGF8jwehCCI75y2kBGwACeryJs+yE=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "f9fdf8285690a351e8998f1e703ebdf9cdf51dee", + "rev": "c1b0fa0bec5478185eae2fd3f39b9e906fc83995", "type": "github" }, "original": { @@ -456,11 +456,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1727540905, - "narHash": "sha256-40J9tW7Y794J7Uw4GwcAKlMxlX2xISBl6IBigo83ih8=", + "lastModified": 1726447378, + "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fbca5e745367ae7632731639de5c21f29c8744ed", + "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1", "type": "github" }, "original": { @@ -471,11 +471,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1727634051, - "narHash": "sha256-S5kVU7U82LfpEukbn/ihcyNt2+EvG7Z5unsKW9H/yFA=", + "lastModified": 1726937504, + "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "06cf0e1da4208d3766d898b7fdab6513366d45b9", + "rev": "9357f4f23713673f310988025d9dc261c20e70c6", "type": "github" }, "original": { diff --git a/pkgs/blade-formatter/default.nix b/pkgs/blade-formatter/default.nix new file mode 100644 index 0000000..f824066 --- /dev/null +++ b/pkgs/blade-formatter/default.nix @@ -0,0 +1,64 @@ +{ + lib, + mkYarnPackage, + fetchFromGitHub, + fetchYarnDeps, + testers, + writeText, + runCommand, + blade-formatter, +}: + +mkYarnPackage rec { + pname = "blade-formatter"; + version = "1.38.2"; + + src = fetchFromGitHub { + owner = "shufo"; + repo = pname; + rev = "v${version}"; + hash = "sha256-JvILLw7Yp4g/dSsYtZ2ylmlXfS9t+2KADlBrYOJWTpg="; + }; + + packageJSON = ./package.json; + offlineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + hash = "sha256-UFDxw3fYMzSUhZw+TCEh/dN7OioKI75LzKSnEwGPKDA="; + }; + + postBuild = "yarn build"; + + passthru.tests = { + version = testers.testVersion { + package = blade-formatter; + command = "blade-formatter --version"; + }; + + simple = testers.testEqualContents { + assertion = "blade-formatter formats a basic blade file"; + expected = writeText "expected" '' + @if (true) + Hello world! + @endif + ''; + actual = + runCommand "actual" + { + nativeBuildInputs = [ blade-formatter ]; + base = writeText "base" '' + @if( true ) Hello world! @endif + ''; + } + '' + blade-formatter $base > $out + ''; + }; + }; + + meta = with lib; { + description = "Laravel Blade template formatter"; + homepage = "https://github.com/shufo/blade-formatter"; + license = licenses.mit; + maintainers = with maintainers; [ lelgenio ]; + }; +} diff --git a/pkgs/blade-formatter/package.json b/pkgs/blade-formatter/package.json new file mode 100755 index 0000000..b43fa5c --- /dev/null +++ b/pkgs/blade-formatter/package.json @@ -0,0 +1,120 @@ +{ + "name": "blade-formatter", + "engines": { + "node": ">= 14.0.0" + }, + "keywords": [ + "php", + "formatter", + "laravel" + ], + "version": "1.38.2", + "description": "An opinionated blade template formatter for Laravel", + "main": "./dist/bundle.cjs", + "types": "./dist/types/main.d.ts", + "type": "module", + "exports": { + ".": { + "import": "./dist/bundle.js", + "require": "./dist/bundle.cjs", + "default": "./dist/bundle.js" + }, + "./*": "./*" + }, + "scripts": { + "build": "cross-env NODE_ENV=production node esbuild.js && cross-env NODE_ENV=production ESM_BUILD=true node esbuild.js", + "prepublish": "tsc src/main.ts --declaration --emitDeclarationOnly --outDir ./dist/types || true", + "watch": "node esbuild.js", + "test": "yarn run build && node --experimental-vm-modules node_modules/.bin/jest", + "lint": "eslint src -c .eslintrc.json --ext ts", + "fix": "prettier {src,__tests__}/**/*.ts --write", + "check_formatted": "prettier **/*.ts -c", + "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", + "prepare": "husky install", + "bin": "cross-env ./bin/blade-formatter.cjs" + }, + "bin": { + "blade-formatter": "bin/blade-formatter.cjs" + }, + "author": "Shuhei Hayashibara", + "license": "MIT", + "dependencies": { + "@prettier/plugin-php": "^0.19.7", + "@shufo/tailwindcss-class-sorter": "3.0.1", + "aigle": "^1.14.1", + "ajv": "^8.9.0", + "chalk": "^4.1.0", + "concat-stream": "^2.0.0", + "detect-indent": "^6.0.0", + "find-config": "^1.0.0", + "glob": "^8.0.1", + "html-attribute-sorter": "^0.4.3", + "ignore": "^5.1.8", + "js-beautify": "^1.14.8", + "lodash": "^4.17.19", + "php-parser": "3.1.5", + "prettier": "^2.2.0", + "tailwindcss": "^3.1.8", + "vscode-oniguruma": "1.7.0", + "vscode-textmate": "^7.0.1", + "xregexp": "^5.0.1", + "yargs": "^17.3.1" + }, + "devDependencies": { + "@babel/core": "^7.6.4", + "@babel/plugin-transform-modules-commonjs": "^7.16.5", + "@babel/preset-env": "^7.13.12", + "@babel/preset-typescript": "^7.16.5", + "@types/concat-stream": "^2.0.0", + "@types/find-config": "^1.0.1", + "@types/fs-extra": "^11.0.0", + "@types/glob": "^8.0.0", + "@types/jest": "^29.0.0", + "@types/js-beautify": "^1.13.3", + "@types/lodash": "^4.14.178", + "@types/mocha": "^10.0.0", + "@types/node": "^18.0.0", + "@types/xregexp": "^4.4.0", + "@typescript-eslint/eslint-plugin": "^5.8.1", + "@typescript-eslint/parser": "^5.8.1", + "app-root-path": "^3.0.0", + "babel-jest": "^29.0.0", + "codecov": "^3.8.3", + "cross-env": "^7.0.3", + "esbuild": "^0.19.0", + "esbuild-node-externals": "^1.4.1", + "eslint": "^8.5.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^9.0.0", + "eslint-import-resolver-typescript": "^3.0.0", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^26.0.0", + "eslint-plugin-prettier": "^5.0.0", + "fs-extra": "^11.0.0", + "husky": "^8.0.0", + "jest": "^29.0.0", + "lint-staged": ">=10", + "source-map-loader": "^4.0.0", + "ts-jest": "^29.0.0", + "ts-loader": "^9.2.6", + "ts-migrate": "^0.1.27", + "ts-node": "^10.4.0", + "typescript": "^5.0.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/shufo/blade-formatter.git" + }, + "files": [ + "dist", + "src", + "bin", + "wasm", + "syntaxes", + "CHANGELOG.md" + ], + "lint-staged": { + "*.ts": "yarn run fix" + } +} diff --git a/pkgs/default.nix b/pkgs/default.nix index b3f1b79..eccb020 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -3,9 +3,11 @@ { pkgs, inputs }: rec { + blade-formatter = pkgs.callPackage ./blade-formatter { }; cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { }; lipsum = pkgs.callPackage ./lipsum.nix { }; emmet-cli = pkgs.callPackage ./emmet-cli.nix { }; material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { }; gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { }; + kak-tree-sitter = pkgs.callPackage ./kak-tree-sitter.nix { }; } diff --git a/pkgs/kak-tree-sitter.nix b/pkgs/kak-tree-sitter.nix new file mode 100644 index 0000000..3e3d9d1 --- /dev/null +++ b/pkgs/kak-tree-sitter.nix @@ -0,0 +1,34 @@ +{ + lib, + stdenv, + rustPlatform, + fetchFromSourcehut, + makeWrapper, +}: + +rustPlatform.buildRustPackage rec { + pname = "kak-tree-sitter"; + version = "1.1.2"; + + src = fetchFromSourcehut { + owner = "~hadronized"; + repo = "kak-tree-sitter"; + rev = "kak-tree-sitter-v${version}"; + hash = "sha256-wBWfSyR8LGtug/mCD0bJ4lbdN3trIA/03AnCxZoEOSA="; + }; + + cargoSha256 = "sha256-OQPUWqJAts8DbFNSsC/CmMCbuZ9TVxRTR05O7oiodKI="; + + nativeBuildInputs = [ makeWrapper ]; + + postFixup = '' + wrapProgram "$out/bin/ktsctl" \ + --suffix PATH : ${stdenv.cc} + ''; + + meta = with lib; { + description = "Server that interfaces tree-sitter with kakoune"; + homepage = "https://git.sr.ht/~hadronized/kak-tree-sitter"; + license = with licenses; [ mit ]; + }; +} diff --git a/system/configuration.nix b/system/configuration.nix index b905240..c8095f6 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -48,15 +48,6 @@ services.geoclue2.enable = true; - # Workaround for nm-wait-online hanging?? - # Ref: https://github.com/NixOS/nixpkgs/issues/180175 - systemd.services.NetworkManager-wait-online = { - serviceConfig.ExecStart = [ - "" - "${pkgs.networkmanager}/bin/nm-online -q" - ]; - }; - systemd.extraConfig = '' DefaultTimeoutStopSec=10s ''; diff --git a/user/home.nix b/user/home.nix index aef10ad..b9fcc4c 100644 --- a/user/home.nix +++ b/user/home.nix @@ -127,7 +127,7 @@ clang-tools # c/c++ lsp server rust-analyzer # rust analyzer - unstable.blade-formatter + blade-formatter nixfmt-rfc-style ]; diff --git a/user/kakoune/default.nix b/user/kakoune/default.nix index 337e007..051f21d 100644 --- a/user/kakoune/default.nix +++ b/user/kakoune/default.nix @@ -127,7 +127,7 @@ in ranger bmenu kak-lsp - unstable.kak-tree-sitter + kak-tree-sitter kak-pager kak-man-pager diff --git a/user/kakoune/kak-tree-sitter.nix b/user/kakoune/kak-tree-sitter.nix index 59ab3e0..8818f1f 100644 --- a/user/kakoune/kak-tree-sitter.nix +++ b/user/kakoune/kak-tree-sitter.nix @@ -1,7 +1,7 @@ { pkgs, lib, ... }: let hx-src = pkgs.helix.src; - kts-src = pkgs.unstable.kak-tree-sitter-unwrapped.src; + kts-src = pkgs.kak-tree-sitter.src; inherit (pkgs) fetchFromGitHub; in with pkgs.tree-sitter-grammars;