diff --git a/Makefile b/Makefile index 5d332e2..9b6f24b 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,6 @@ dotfiles: setup-stow stow "$(STOW_ARGS)" yabai ln -sf ~/dotfiles/fish ~/.config/fish\ -.PHONY: setup-uv python setup-uv: bash ./python/setup-uv.sh @@ -55,6 +54,17 @@ setup-vim: git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim "vim" +PluginInstall +qall +.PHONY: setup-nix nix-pkgs + +setup-nix: + curl -L https://nixos.org/nix/install | sh + . ./nix/load-"$(OS)".sh && nix-channel --add https://nixos.org/channels/nixpkgs-unstable unstable + . ./nix/load-"$(OS)".sh && nix-channel --update + +NIX_ARGS=--extra-experimental-features nix-command --extra-experimental-features flakes +nix-pkgs: setup-nix + . ./nix/load-"$(OS)".sh && cd nix && nix flake update "$(NIX_ARGS)" && (nix profile upgrade "$(NIX_ARGS)" nix || nix profile install "$(NIX_ARGS)" .) + .PHONY: setup-brew brew-pkgs setup-brew: diff --git a/dotfiles/.gitignore b/dotfiles/.gitignore index 93393e6..ca1cbfd 100644 --- a/dotfiles/.gitignore +++ b/dotfiles/.gitignore @@ -37,4 +37,5 @@ pre temp temp.* temp +.databricks **/.mypy_cache diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 1ac4dd8..fe1d561 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -1,64 +1,63 @@ { - "CopilotChat.nvim": { "branch": "main", "commit": "07dcc188bc488b2dafa9324bd42088640bee3d19" }, - "LuaSnip": { "branch": "master", "commit": "dae4f5aaa3574bd0c2b9dd20fb9542a02c10471c" }, + "CopilotChat.nvim": { "branch": "main", "commit": "a89f5f1162b04a0962e5f4c3cdf248a81e7e53cb" }, + "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, "Vim-Jinja2-Syntax": { "branch": "master", "commit": "2c17843b074b06a835f88587e1023ceff7e2c7d1" }, - "barbar.nvim": { "branch": "master", "commit": "539d73def39c9172b4d4d769f14090e08f37b29d" }, + "barbar.nvim": { "branch": "master", "commit": "807bede7ef1d8e2ac5f108e9ac8123b1e2d321e3" }, "blink-cmp-copilot": { "branch": "main", "commit": "439cff78780c033aa23cf061d7315314b347e3c1" }, - "blink-cmp-dictionary": { "branch": "master", "commit": "944b3b215b01303672d4213758db7c5c5a1e3c92" }, - "blink-emoji.nvim": { "branch": "master", "commit": "066013e4c98a9318408ee3f1ca2dbcb6fa3e4c06" }, - "blink-ripgrep.nvim": { "branch": "main", "commit": "274eb06080a786a1c8c3d35093be269310e9f49f" }, - "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, + "blink-cmp-dictionary": { "branch": "master", "commit": "5f1a703416e5090b9633c43873dba8ba03b0fb23" }, + "blink-emoji.nvim": { "branch": "master", "commit": "a77aebc092ebece1eed108f301452ae774d6b67a" }, + "blink-ripgrep.nvim": { "branch": "main", "commit": "56084d1f45c8621d23d4bac724c2dc50b1eb75db" }, + "blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" }, "blink.compat": { "branch": "main", "commit": "2ed6d9a28b07fa6f3bface818470605f8896408c" }, - "bullets.vim": { "branch": "master", "commit": "89294b8930e660936374fb763ac48a1ac51dd29c" }, - "conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" }, + "bullets.vim": { "branch": "master", "commit": "8f3259e807c40b91d247f612823295ab99777a65" }, + "conform.nvim": { "branch": "master", "commit": "eebc724d12c5579d733d1f801386e0ceb909d001" }, "copilot-cmp": { "branch": "master", "commit": "15fc12af3d0109fa76b60b5cffa1373697e261d1" }, - "copilot.lua": { "branch": "master", "commit": "2d7511494245129aa6c2176f9c71cc2bc1360ed9" }, - "dbtpal": { "branch": "main", "commit": "981eab51609362712c64e3cf3fb773fe11f859b9" }, + "copilot.lua": { "branch": "master", "commit": "0a7502946845fb14b860a6384c709a791bbab96a" }, + "dbtpal": { "branch": "main", "commit": "706134b879eb2f48b2abf56f29e95a30a52cf398" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, - "emmet-vim": { "branch": "master", "commit": "e98397144982d1e75b20d94d55a82de3ec8f648d" }, - "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, - "git-conflict.nvim": { "branch": "main", "commit": "4bbfdd92d547d2862a75b4e80afaf30e73f7bbb4" }, - "gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" }, + "emmet-vim": { "branch": "master", "commit": "6c511a8d7d2863066f32e25543e2bb99d505172c" }, + "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, + "gitsigns.nvim": { "branch": "main", "commit": "17ab794b6fce6fce768430ebc925347e349e1d60" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, - "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "leap.nvim": { "branch": "main", "commit": "f19d43590c4b6d31188ee1ea2954d2b7558a9e11" }, - "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, + "lualine.nvim": { "branch": "master", "commit": "0ea56f91b7f51a37b749c050a5e5dfdd56b302b3" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, - "mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" }, - "mini.nvim": { "branch": "main", "commit": "9b935c218ddba02e5dc75c94f90143bce1f7c646" }, - "nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" }, - "nvim-bqf": { "branch": "main", "commit": "daa1a130632dc2b05a9a73538bac058dfa4e0b86" }, + "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" }, + "mini.nvim": { "branch": "main", "commit": "e7538b549361c9ac8416a07b0223ce03c508bfe7" }, + "nvim-autopairs": { "branch": "master", "commit": "2a406cdd8c373ae7fe378a9e062a5424472bd8d8" }, + "nvim-bqf": { "branch": "main", "commit": "e20417d5e589e03eaaaadc4687904528500608be" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" }, - "nvim-lspconfig": { "branch": "master", "commit": "419b082102fa813739588dd82e19a8b6b2442855" }, - "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-treesitter-context": { "branch": "master", "commit": "64dd4cf3f6fd0ab17622c5ce15c91fc539c3f24a" }, + "nvim-lint": { "branch": "master", "commit": "5b1bdf306bd3e565908145279e8bbfc594dac3b3" }, + "nvim-lspconfig": { "branch": "master", "commit": "4ea9083b6d3dff4ddc6da17c51334c3255b7eba5" }, + "nvim-treesitter": { "branch": "master", "commit": "0e21ee8df6235511c02bab4a5b391d18e165a58d" }, + "nvim-treesitter-context": { "branch": "master", "commit": "439789a9a8df9639ecd749bb3286b77117024a6f" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" }, - "nvim-ts-autotag": { "branch": "main", "commit": "db15f2e0df2f5db916e511e3fffb682ef2f6354f" }, - "nvim-web-devicons": { "branch": "master", "commit": "f66cdfef5e84112045b9ebc3119fee9bddb3c687" }, + "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, + "nvim-web-devicons": { "branch": "master", "commit": "c90dee4e930ab9f49fa6d77f289bff335b49e972" }, "obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" }, - "oil.nvim": { "branch": "master", "commit": "f55b25e493a7df76371cfadd0ded5004cb9cd48a" }, + "oil.nvim": { "branch": "master", "commit": "302bbaceeafc690e6419e0c8296e804d60cb9446" }, "peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "semshi": { "branch": "master", "commit": "7f18bedc70cbb7aa68dcc6df5e730d88e4527622" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" }, - "telescope-git-file-history.nvim": { "branch": "master", "commit": "e7d495319f2a04df96402057a6992ea970f8914d" }, - "telescope-makefile": { "branch": "master", "commit": "f35425d7d53d92a04215c3714a5819811d2842c3" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, + "telescope-git-file-history.nvim": { "branch": "master", "commit": "c27d99ba88ec5f0b6d2b9f9bc67dd3d14c610b25" }, + "telescope-makefile": { "branch": "master", "commit": "6e5b5767751dbf73ad4f126840dcf1abfc38e891" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "master", "commit": "ad7d9580338354ccc136e5b8f0aa4f880434dcdc" }, - "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, - "undotree": { "branch": "master", "commit": "178d19e00a643f825ea11d581b1684745d0c4eda" }, + "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, + "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, + "undotree": { "branch": "master", "commit": "b951b87b46c34356d44aa71886aecf9dd7f5788a" }, "vim": { "branch": "master", "commit": "d4b0823100c702af127cba8dd5595a8f599041ec" }, - "vim-argwrap": { "branch": "master", "commit": "03615d1eed248408567bc8fa6a5a8c94ef3cd170" }, + "vim-argwrap": { "branch": "master", "commit": "f3e26a5ad249d09467804b92e760d08b1cc457a1" }, "vim-bufkill": { "branch": "master", "commit": "3113181d0c1bfb8719f3ddcd2e2f35a8d763d1e5" }, "vim-closetag": { "branch": "master", "commit": "d0a562f8bdb107a50595aefe53b1a690460c3822" }, - "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, + "vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" }, "vim-grepper": { "branch": "master", "commit": "acaaf32edaa11d82fb972d2af36b949ec3042928" }, - "vim-markdown-toc": { "branch": "master", "commit": "66026b323379c9a712c6169cd43153216acef090" }, + "vim-markdown-toc": { "branch": "master", "commit": "aa9cc3b07791db5cbe5f29d661763bc0eb4fb7c1" }, "vim-one": { "branch": "master", "commit": "187f5c85b682c1933f8780d4d419c55d26a82e24" }, "vim-python-pep8-indent": { "branch": "master", "commit": "60ba5e11a61618c0344e2db190210145083c91f8" }, "vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" }, - "vim-table-mode": { "branch": "master", "commit": "bb025308a45c67c7c8f0763ba37bc2ee3f534df0" }, + "vim-table-mode": { "branch": "master", "commit": "e4365bde024f73e205eefa2fb78e3029ddb92ea9" }, "winresizer": { "branch": "master", "commit": "9bd559a03ccec98a458e60c705547119eb5350f3" }, - "zen-mode.nvim": { "branch": "main", "commit": "8564ce6d29ec7554eb9df578efa882d33b3c23a7" } + "zen-mode.nvim": { "branch": "main", "commit": "863f150ca321b3dd8aa1a2b69b5f411a220e144f" } } diff --git a/nvim/lua/config/keymap.lua b/nvim/lua/config/keymap.lua index a33921e..a03fd6a 100644 --- a/nvim/lua/config/keymap.lua +++ b/nvim/lua/config/keymap.lua @@ -112,6 +112,9 @@ vim.keymap.set("n", "o", "split | Oil") -- CopilotChat vim.keymap.set("n", "c", ":CopilotChat") +vim.keymap.set("n", "sc", function() + require("CopilotChat").toggle({ window = { layout = "horizontal" } }) +end, { desc = "Toggle Copilot Chat (horizontal)" }) -- ZenMode vim.keymap.set("n", "z", ":ZenMode") diff --git a/nvim/lua/plugins/cmp.lua b/nvim/lua/plugins/cmp.lua index 8d600fc..7b555c7 100644 --- a/nvim/lua/plugins/cmp.lua +++ b/nvim/lua/plugins/cmp.lua @@ -23,7 +23,6 @@ return { opts = { snippets = { preset = "luasnip" }, fuzzy = { implementation = "prefer_rust_with_warning" }, - cmdline = { enabled = true, completion = { @@ -35,11 +34,11 @@ return { "accept", }, [""] = { + "accept_and_enter", "fallback", }, }, }, - completion = { documentation = { -- Controls whether the documentation window will automatically show when selecting a completion item @@ -73,7 +72,6 @@ return { }, }, }, - list = { selection = { auto_insert = true, @@ -149,7 +147,6 @@ return { }, }, }, - signature = { enabled = true, trigger = { diff --git a/nvim/lua/plugins/copilot.lua b/nvim/lua/plugins/copilot.lua index b1e5c86..89e89ab 100644 --- a/nvim/lua/plugins/copilot.lua +++ b/nvim/lua/plugins/copilot.lua @@ -38,11 +38,18 @@ return { { "nvim-lua/plenary.nvim" }, }, opts = { + system_prompt = [[You are an expert software engineer. +- Provide clear, concise explanations +- Include comments only if necessary +- Include functions only if necessary +- Include docstrings +- All Python code should pass strict type checking]], debug = true, context = "buffers", history_path = vim.fn.stdpath("data") .. "/copilotchat_history", auto_follow_cursor = false, - model = "gpt-4o", + auto_insert_mode = true, + model = "gpt-4", }, }, } diff --git a/nvim/lua/plugins/formatting.lua b/nvim/lua/plugins/formatting.lua index 5f9fe2d..bcdddc4 100644 --- a/nvim/lua/plugins/formatting.lua +++ b/nvim/lua/plugins/formatting.lua @@ -11,15 +11,22 @@ return { }, formatters_by_ft = { - bash = { "beautysh", "shellharden" }, + bash = { + "beautysh", + "shellharden", + }, sh = { "beautysh", "shellharden" }, html = { "djlintJinja", "prettier" }, jinja = { "djlintJinja" }, json = { "jq" }, lua = { "stylua" }, go = { "gofmt" }, - python = { "isort", "ruff_format" }, - markdown = { "injected" }, + python = { + "isort", + "ruff_format", + "trim_whitespace", + }, + -- markdown = { "injected" }, javascript = { "prettier" }, css = { "stylelint" }, yaml = { "yamlfix" }, @@ -27,8 +34,6 @@ return { ["*"] = { "codespell", "trim_newlines", - "injected", - "trim_whitespace", }, }, }) @@ -113,7 +118,7 @@ return { javascript = "js", julia = "jl", latex = "tex", - markdown = "md", + -- markdown = "md", python = "py", ruby = "rb", rust = "rs", diff --git a/nvim/lua/plugins/text-editing.lua b/nvim/lua/plugins/text-editing.lua index 37a3b8f..6ecb5ad 100644 --- a/nvim/lua/plugins/text-editing.lua +++ b/nvim/lua/plugins/text-editing.lua @@ -8,7 +8,7 @@ return { vim.keymap.set("n", "S", "(leap-from-window)") end, }, - { "akinsho/git-conflict.nvim", version = "*", config = true }, + -- { "akinsho/git-conflict.nvim", version = "*", config = true }, { "toppair/peek.nvim", event = { "VeryLazy" }, diff --git a/scripts/aliases.sh b/scripts/aliases.sh index 699bcdc..4b3e73e 100755 --- a/scripts/aliases.sh +++ b/scripts/aliases.sh @@ -156,5 +156,6 @@ alias macbook='ssh adam@macbook.local' alias f='fish' +alias secret='nvim /home/adam/src/.env.secret' alias ai='claude' alias ai-talk='claude converse' diff --git a/starship/starship.toml b/starship/starship.toml index 66e77dc..1971391 100644 --- a/starship/starship.toml +++ b/starship/starship.toml @@ -5,9 +5,9 @@ format = """$shell$hostname$directory$line_break$character""" right_format = """$cmd_duration$git_branch$python$nix_shell""" [shell] -fish_indicator = "[  ](bold purple)" -zsh_indicator = " 󰬇" -bash_indicator = " $" +fish_indicator = " fish" +zsh_indicator = " zsh" +bash_indicator = " bash" disabled = false [localip]