{pkgs, ...}: { imports = [ ../../home/common.nix ../../home/helide ../../modules/home/ghostty.nix ../../modules/darwin/PaperWM.spoon ]; # Hinge-specific Helix configuration with lsp-ai programs.helix.languages = { language-server.lsp_ai = { command = "lsp-ai"; args = [ "--use-seperate-log-file" "--stdio" ]; config = { memory = { file_store = {}; }; models = { model1 = { type = "anthropic"; chat_endpoint = "https://api.anthropic.com/v1/messages"; model = "claude-3-5-haiku-20241022"; auth_token_env_var_name = "ANTHROPIC_API_KEY"; }; }; completion = { model = "model1"; parameters = { max_context = 2048; max_tokens = 50; system = "You are a code completion assistant. Complete the code at . Only output the completion itself, nothing else. Be concise."; messages = [ { role = "user"; content = "def greet(name):\n print(f\"Hello, {}\")"; } { role = "assistant"; content = "name"; } { role = "user"; content = "function sum(a, b) {\n return a + ;\n}"; } { role = "assistant"; content = "b"; } { role = "user"; content = "fn multiply(a: i32, b: i32) -> i32 {\n a * \n}"; } { role = "assistant"; content = "b"; } { role = "user"; content = "# \ndef add(a, b):\n return a + b"; } { role = "assistant"; content = "Adds two numbers"; } { role = "user"; content = "# This function checks if a number is even\n"; } { role = "assistant"; content = "def is_even(n):\n return n % 2 == 0"; } { role = "user"; content = "{CODE}"; } ]; }; }; }; }; language = [ { name = "cpp"; language-servers = ["clangd" "lsp_ai"]; } { name = "objc"; language-servers = ["clangd" "lsp_ai"]; } { name = "python"; language-servers = ["ruff" "basedpyright" "lsp_ai"]; } { name = "typescript"; language-servers = ["typescript-language-server" "lsp_ai"]; } { name = "bash"; language-servers = ["bash-language-server" "lsp_ai"]; } { name = "toml"; language-servers = ["taplo" "lsp_ai"]; } ]; }; targets.darwin.linkApps.enable = false; targets.darwin.copyApps.enable = true; programs.git = { lfs.enable = true; signing = { key = "~/.ssh/id_ed25519.pub"; format = "ssh"; signByDefault = true; }; settings = { author = { email = "tyler.mayoff@hingehealth.com"; name = "Tyler Mayoff"; }; user = { email = "tyler.mayoff@hingehealth.com"; name = "Tyle Mayoff"; }; }; }; home = { username = "tyler.mayoff"; # homeDirectory = /Users/tyler.mayoff; packages = with pkgs; [ bazelisk cmake conan pre-commit black ruff swiftlint unstable.helix-gpt unstable.lsp-ai python312Packages.python-lsp-server unstable.openscad-lsp typescript-language-server cmake-language-server jdt-language-server unstable.biome uv unstable.jiratui ffmpeg sccache just nodejs_24 cocoapods ]; sessionVariables = { ANDROID_HOME = "/Users/tyler.mayoff/Library/Android/sdk"; PATH = "/opt/homebrew/opt/llvm@20/bin:$PATH::/Users/tyler.mayoff/Library/Android/sdk/platform-tools"; }; file.".gnupg/gpg-agent.conf".text = '' pinentry-program ${pkgs.pinentry_mac}/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac ''; }; programs.home-manager.enable = true; home.stateVersion = "24.11"; }