diff --git a/.clang-format b/.clang-format index f47e7d6..22d4205 100644 --- a/.clang-format +++ b/.clang-format @@ -7,4 +7,8 @@ Language: Cpp # Force pointers to the type for C++. DerivePointerAlignment: false PointerAlignment: Left + +# Break after every argument or not at all +BinPackArguments: false +BinPackParameters: false --- diff --git a/flake.lock b/flake.lock index 00c49b4..f54086e 100644 --- a/flake.lock +++ b/flake.lock @@ -42,11 +42,11 @@ ] }, "locked": { - "lastModified": 1631170176, - "narHash": "sha256-RLN/kur2Kpxt0cJp0Fms8ixuGpT8IHX0OpeQ8u8f0X4=", + "lastModified": 1633726775, + "narHash": "sha256-imcgx7bHP0qzRNu31jknZAzze71pWnEbMbnBcZYxXMg=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "3ed0e618cebc1ff291c27b749cf7568959cac028", + "rev": "77b45d526e4dcc1f26ce449f5dc561f2e6eb5db6", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 8a18a85..f39bfbf 100644 --- a/flake.nix +++ b/flake.nix @@ -49,15 +49,12 @@ checks = { pre-commit = pre-commit-hooks.lib.${system}.run { - src = self; + src = ./.; hooks = { clang-format = { enable = true; - name = "clang-format"; - entry = "${pkgs.clang-tools}/bin/clang-format -style=file -i"; - types = [ "text" "c++" ]; - language = "system"; + types_or = [ "c++" ]; }; nixpkgs-fmt = { @@ -72,10 +69,9 @@ defaultPackage = packages.dragger; devShell = pkgs.mkShell { - nativeBuildInputs = with pkgs; [ ] - ++ defaultPackage.nativeBuildInputs - ++ defaultPackage.buildInputs - ; + inputsFrom = with packages; [ + dragger + ]; inherit (checks.pre-commit) shellHook; }; diff --git a/src/dragger.cc b/src/dragger.cc index 87c59e4..7c08b83 100644 --- a/src/dragger.cc +++ b/src/dragger.cc @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -9,10 +10,23 @@ int main(int argc, char* argv[]) { QApplication app(argc, argv); + QApplication::setApplicationName("dragger"); + QApplication::setApplicationVersion("0.1.0"); + + QCommandLineParser parser; + parser.setApplicationDescription("A CLI drag-and-drop tool"); + parser.addHelpOption(); + parser.addVersionOption(); + parser.addPositionalArgument( + "files", + QCoreApplication::translate("files", "files to drag-and-drop"), + "[FILES...]"); + + parser.process(app); QList urls; - for (int i = 1; i < argc; ++i) { - QFileInfo file(QFile(argv[i])); + for (auto const& path : parser.positionalArguments()) { + QFileInfo file{QFile{path}}; if (file.exists()) { urls << QUrl("file:" + file.absoluteFilePath()); } else {