Compare commits

...

17 Commits

Author SHA1 Message Date
7cedaa233b
Switch over to mise 2025-11-10 15:18:32 -06:00
331d105586
Revert font changes, Inconsolata will never die 2025-10-01 12:55:19 -05:00
cfe498f542
Try to tweak auto-installed Mason LSPs 2025-09-27 20:03:05 -05:00
41f01fed2c
Add fallback prompt for when Starship isn't installed 2025-09-27 19:39:10 -05:00
94dea57868
Support for cloning into devcontainer 2025-09-27 19:27:12 -05:00
f064b182c9
Update Neovim plugins 2025-09-26 11:37:32 -05:00
a98ad2e085
Tweak ghostty a bit more, enable transparency 2025-09-26 11:37:03 -05:00
6e9435bc75
Update font in Ghostty, add YAML LSP settings to Neovim 2025-09-26 11:30:10 -05:00
4bc2f8de91
Add JSON schema fetching 2025-09-11 13:38:51 -05:00
70533b3bb4
Update devcontainer setup functions 2025-09-11 12:09:45 -05:00
5faf58e79c
Tighten up LSP and JSDoc settings for JS files 2025-09-01 20:29:00 -05:00
4648cb1691
Fix avante, statusline 2025-08-19 17:03:07 -05:00
375cb89d5f
Big improvements to Vim keymaps; add swift configs 2025-08-19 16:11:23 -05:00
04d02d3417
Revert Catppuccin background color to be more pleasing 2025-08-19 14:32:53 -05:00
a38736ed22
Reenable errors inline 2025-08-18 13:35:55 -05:00
9375e57331
Restructure and simply Neovim config a bit 2025-08-17 09:46:48 -05:00
359c4538c5
Fix some logging and profile settings 2025-08-14 00:01:38 -05:00
47 changed files with 586 additions and 478 deletions

View File

@ -1,6 +1,6 @@
# Text style
adjust-cell-height = 30%
adjust-cell-width = -9%
adjust-cell-width = -10%
cursor-style = block
cursor-style-blink = false
font-family = Inconsolata Patched G
@ -9,22 +9,24 @@ font-synthetic-style = no-bold, no-bold-italic
# Window style
background-blur = true
background-opacity = 0.9
background-opacity = 0.88
theme = dark:catppuccin-mocha.conf, light:catppuccin-latte.conf
window-padding-color = extend
window-padding-x = 5,0
window-padding-y = 5,0
window-padding-x = 12,0
window-padding-y = 12,0
# Functionality
scrollback-limit = 100000
window-inherit-working-directory = true
copy-on-select = clipboard
shell-integration-features = no-cursor
# Not currently using tmux
# command = ~/.config/ghostty/ghostty-tmux
# macOS-specific settings
alpha-blending = linear
macos-icon = xray
macos-titlebar-style = transparent
keybind = shift+enter=text:\n
# Not currently using tmux
# command = ~/.config/ghostty/ghostty-tmux

View File

@ -5,7 +5,7 @@ palette = 3=#f9e2af
palette = 4=#89b4fa
palette = 5=#f5c2e7
palette = 6=#94e2d5
palette = 7=#bac2de
palette = 7=#a6adc8
palette = 8=#585b70
palette = 9=#f38ba8
palette = 10=#a6e3a1
@ -13,10 +13,10 @@ palette = 11=#f9e2af
palette = 12=#89b4fa
palette = 13=#f5c2e7
palette = 14=#94e2d5
palette = 15=#a6adc8
background = 101018
palette = 15=#bac2de
background = 1e1e2e
foreground = cdd6f4
cursor-color = f5e0dc
cursor-text = 101018
cursor-text = 1e1e2e
selection-background = 353749
selection-foreground = cdd6f4

View File

@ -1,3 +1,4 @@
---
k9s:
body:
fgColor: '#4c4f69'
@ -64,19 +65,11 @@ k9s:
bgColor: '#eff1f5'
chartBgColor: '#eff1f5'
dialBgColor: '#eff1f5'
defaultDialColors:
- '#40a02b'
- '#d20f39'
defaultChartColors:
- '#40a02b'
- '#d20f39'
defaultDialColors: ['#40a02b', '#d20f39']
defaultChartColors: ['#40a02b', '#d20f39']
resourceColors:
cpu:
- '#8839ef'
- '#1e66f5'
mem:
- '#df8e1d'
- '#fe640b'
cpu: ['#8839ef', '#1e66f5']
mem: ['#df8e1d', '#fe640b']
yaml:
keyColor: '#1e66f5'
valueColor: '#4c4f69'

View File

@ -2,22 +2,22 @@
k9s:
body:
fgColor: '#cdd6f4'
bgColor: '#101018'
bgColor: default
logoColor: '#cba6f7'
prompt:
fgColor: '#cdd6f4'
bgColor: '#181825'
bgColor: default
suggestColor: '#89b4fa'
help:
fgColor: '#cdd6f4'
bgColor: '#101018'
bgColor: default
sectionColor: '#a6e3a1'
keyColor: '#89b4fa'
numKeyColor: '#eba0ac'
frame:
title:
fgColor: '#94e2d5'
bgColor: '#101018'
bgColor: default
highlightColor: '#f5c2e7'
counterColor: '#f9e2af'
filterColor: '#a6e3a1'
@ -29,8 +29,8 @@ k9s:
keyColor: '#89b4fa'
numKeyColor: '#eba0ac'
crumbs:
fgColor: '#101018'
bgColor: '#eba0ac'
fgColor: '#1e1e2e'
bgColor: default
activeColor: '#f2cdcd'
status:
newColor: '#89b4fa'
@ -47,24 +47,24 @@ k9s:
views:
table:
fgColor: '#cdd6f4'
bgColor: '#101018'
bgColor: default
cursorFgColor: '#313244'
cursorBgColor: '#45475a'
markColor: '#f5e0dc'
header:
fgColor: '#f9e2af'
bgColor: '#101018'
bgColor: default
sorterColor: '#89dceb'
xray:
fgColor: '#cdd6f4'
bgColor: '#101018'
bgColor: default
cursorColor: '#45475a'
cursorTextColor: '#101018'
cursorTextColor: '#1e1e2e'
graphicColor: '#f5c2e7'
charts:
bgColor: '#101018'
chartBgColor: '#101018'
dialBgColor: '#101018'
bgColor: default
chartBgColor: default
dialBgColor: default
defaultDialColors: ['#a6e3a1', '#f38ba8']
defaultChartColors: ['#a6e3a1', '#f38ba8']
resourceColors:
@ -76,18 +76,18 @@ k9s:
colonColor: '#a6adc8'
logs:
fgColor: '#cdd6f4'
bgColor: '#101018'
bgColor: default
indicator:
fgColor: '#b4befe'
bgColor: '#101018'
bgColor: default
toggleOnColor: '#a6e3a1'
toggleOffColor: '#a6adc8'
dialog:
fgColor: '#f9e2af'
bgColor: '#9399b2'
buttonFgColor: '#101018'
buttonBgColor: '#7f849c'
buttonFocusFgColor: '#101018'
bgColor: default
buttonFgColor: '#1e1e2e'
buttonBgColor: default
buttonFocusFgColor: '#1e1e2e'
buttonFocusBgColor: '#f5c2e7'
labelFgColor: '#f5e0dc'
fieldFgColor: '#cdd6f4'

View File

@ -0,0 +1 @@

8
mise/config.toml Normal file
View File

@ -0,0 +1,8 @@
[tools]
node = "22"
ruby = "3"
python = "3"
[tasks]
gcloud-login = "gcloud auth application-default login"
orm-setup = "python -m pip install keyring keyrings.google-artifactregistry-auth --index-url https://pypi.org/simple/ && python -m pip install orm-cli --index-url https://us-central1-python.pkg.dev/common-build/pypi/simple/"

View File

@ -1,29 +1,32 @@
{
"avante.nvim": { "branch": "main", "commit": "4e0a8620b68a0de7a0ec67a0a7503863500f6d29" },
"avante.nvim": { "branch": "main", "commit": "56951378f10b25f8bb0f5bb516b8d778a1e498a7" },
"barbar.nvim": { "branch": "master", "commit": "53b5a2f34b68875898f0531032fbf090e3952ad7" },
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
"catppuccin": { "branch": "main", "commit": "3aaf3ab60221bca8edb1354e41bd514a22c89de2" },
"conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" },
"dropbar.nvim": { "branch": "master", "commit": "418897fe7828b2749ca78056ec8d8ad43136b695" },
"fidget.nvim": { "branch": "main", "commit": "2cb5edb2dd6700a958a446b20bb2be04d318da9d" },
"catppuccin": { "branch": "main", "commit": "30fa4d122d9b22ad8b2e0ab1b533c8c26c4dde86" },
"conform.nvim": { "branch": "master", "commit": "b4aab989db276993ea5dcb78872be494ce546521" },
"dropbar.nvim": { "branch": "master", "commit": "3460930700ca67b4590a69ac3f1d65d5f9658fb6" },
"fidget.nvim": { "branch": "main", "commit": "4d5858bd4c471c895060e1b9f3575f1551184dc5" },
"gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "7f0bf635082bb9b7d2b37766054526a6ccafdb85" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "7f9a39fcd2ac6e979001f857727d606888f5909c" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" },
"mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" },
"mini.nvim": { "branch": "main", "commit": "0e9d1f972a91acf5a0513319099ba41f7c09c30a" },
"neo-tree.nvim": { "branch": "main", "commit": "46fa0c22ca39e05fe15744102d21feb07fe9a94a" },
"mini.nvim": { "branch": "main", "commit": "d12b7c1b4dccc5245a3d2b7bc73da6dd910af2c0" },
"neo-tree.nvim": { "branch": "main", "commit": "ed057048a281b418d5318dd5153f9486daa517a3" },
"neogen": { "branch": "main", "commit": "d7f9461727751fb07f82011051338a9aba07581d" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
"nvim-lspconfig": { "branch": "master", "commit": "45ff1914044de7dbd4cd85053dc09f47312a2f4d" },
"nvim-notify": { "branch": "master", "commit": "397c7c1184745fca649e5104de659e6392ef5a4d" },
"nvim-surround": { "branch": "main", "commit": "c271c9082886a24866353764cf96c9d957e95b2b" },
"nvim-lspconfig": { "branch": "master", "commit": "bc09aa236d7d2af66f56a5a35d0577588eca7800" },
"nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" },
"nvim-surround": { "branch": "main", "commit": "a868c256c861044beb9794b4dd126480dcdfbdad" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
"nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" },
"nvim-web-devicons": { "branch": "master", "commit": "6e51ca170563330e063720449c21f43e27ca0bc1" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"project-cli-commands.nvim": { "branch": "main", "commit": "9a2a2fdfd38a3d71cc927e3a398ac0ddfa846b3d" },
"schemastore.nvim": { "branch": "main", "commit": "d522e3ed6ed2c7bed7ebe1e42615e79b3aabfe65" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },

31
nvim/lsp/jsonls.lua Normal file
View File

@ -0,0 +1,31 @@
return {
settings = {
json = {
schemas = require("schemastore").json.schemas({
select = {
"devcontainer.json",
"devcontainer-feature.json",
},
replace = {
["devcontainer.json"] = {
description = "devcontainer.json overridden",
-- fileMatch has to be a table
fileMatch = { "devcontainer.json" },
name = "devcontainer.json",
url = "https://raw.githubusercontent.com/devcontainers/spec/refs/heads/main/schemas/devContainer.base.schema.json",
},
},
extra = {
{
description = "devcontainer-feature.json",
-- fileMatch has to be a table
fileMatch = { "devcontainer-feature.json" },
name = "devcontainer-feature.json",
url = "https://raw.githubusercontent.com/devcontainers/spec/refs/heads/main/schemas/devContainerFeature.schema.json",
},
},
}),
validate = { enable = true },
},
},
}

12
nvim/lsp/lua_ls.lua Normal file
View File

@ -0,0 +1,12 @@
return {
settings = {
Lua = {
completion = {
callSnippet = "Replace",
},
diagnostics = {
globals = { "vim" },
},
},
},
}

9
nvim/lsp/sourcekit.lua Normal file
View File

@ -0,0 +1,9 @@
return {
capabilities = {
workspace = {
didChangeWatchedFiles = {
dynamicRegistration = true,
},
},
},
}

25
nvim/lsp/yamlls.lua Normal file
View File

@ -0,0 +1,25 @@
return {
settings = {
yaml = {
schemaStore = {
enable = false,
url = "",
},
schemas = require("schemastore").yaml.schemas({
select = {
"Ansible Inventory",
"Ansible Rulebook",
"Ansible Collection Galaxy",
"Ansible Playbook",
"Ansible Tasks File",
"Ansible Requirements",
"Ansible Vars File",
"kustomization.yaml",
"docker-compose.yml",
"GitHub Workflow",
},
}),
validate = { enable = true },
},
},
}

View File

@ -17,6 +17,7 @@ local filetype_maps = {
{ pattern = "*.tf", ft = "terraform" },
{ pattern = "*.pro", ft = "progruard" },
{ pattern = "*.mjml", ft = "html" },
{ pattern = ".swift-format", ft = "json" },
}
for _, mapping in ipairs(filetype_maps) do

View File

@ -1,11 +1,17 @@
-- [[ Basic Keymaps ]]
local keymap = vim.keymap.set
vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
vim.keymap.set("n", "<leader>f", vim.diagnostic.setloclist, { desc = "Open diagnostic quick[f]ix list" })
vim.keymap.set("n", "<leader>q", "<cmd>q<CR>")
vim.keymap.set("n", "<leader>Q", "<cmd>qa<CR>")
vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
vim.keymap.set("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" })
vim.keymap.set("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" })
vim.keymap.set("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" })
vim.keymap.set("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" })
-- Normal mode
keymap("n", "<Esc>", "<cmd>nohlsearch<CR>")
keymap("n", "<leader>w", "<cmd>w!<CR>", { desc = "[w]rite current file", silent = true })
keymap("n", "<leader>q", "<cmd>q<CR>", { desc = "[q]uit current buffer", silent = true })
keymap("n", "<leader>Q", "<cmd>qa<CR>", { desc = "[Q]uit completely", silent = true })
keymap("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" })
keymap("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" })
keymap("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" })
keymap("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" })
-- Visual mode
keymap("v", "<Leader>p", '"_dP', { desc = "[p]aste without overwriting default register" })
-- Terminal mode
keymap("t", "<Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })

View File

@ -1,28 +0,0 @@
return {
{
"lewis6991/gitsigns.nvim",
opts = {
signs = {
add = { text = "+" },
change = { text = "~" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
},
},
},
-- {
-- "kdheepak/lazygit.nvim",
-- lazy = false,
-- cmd = {
-- "LazyGit",
-- "LazyGitConfig",
-- "LazyGitCurrentFile",
-- "LazyGitFilter",
-- "LazyGitFilterCurrentFile",
-- },
-- keys = {
-- { "<leader>gs", "<cmd>LazyGit<cr>", desc = "LazyGit" },
-- },
-- },
}

View File

@ -1,47 +0,0 @@
return {
"folke/which-key.nvim",
event = "VimEnter",
opts = {
delay = 0,
icons = {
mappings = vim.g.have_nerd_font,
keys = vim.g.have_nerd_font and {} or {
Up = "<Up> ",
Down = "<Down> ",
Left = "<Left> ",
Right = "<Right> ",
C = "<C-…> ",
M = "<M-…> ",
D = "<D-…> ",
S = "<S-…> ",
CR = "<CR> ",
Esc = "<Esc> ",
ScrollWheelDown = "<ScrollWheelDown> ",
ScrollWheelUp = "<ScrollWheelUp> ",
NL = "<NL> ",
BS = "<BS> ",
Space = "<Space> ",
Tab = "<Tab> ",
F1 = "<F1>",
F2 = "<F2>",
F3 = "<F3>",
F4 = "<F4>",
F5 = "<F5>",
F6 = "<F6>",
F7 = "<F7>",
F8 = "<F8>",
F9 = "<F9>",
F10 = "<F10>",
F11 = "<F11>",
F12 = "<F12>",
},
},
-- Document existing key chains
spec = {
{ "<leader>s", group = "[S]earch" },
{ "<leader>e", group = "[E]xplorer/Tree" },
{ "<leader>t", group = "[T]oggle" },
},
},
}

View File

@ -1,64 +0,0 @@
return {
"nvim-telescope/telescope.nvim",
event = "VimEnter",
dependencies = {
"nvim-lua/plenary.nvim",
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
cond = function()
return vim.fn.executable("make") == 1
end,
},
"nvim-telescope/telescope-ui-select.nvim",
{
"nvim-tree/nvim-web-devicons",
enabled = vim.g.have_nerd_font,
},
"rcarriga/nvim-notify",
},
config = function()
require("telescope").setup({
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown(),
},
},
})
pcall(require("telescope").load_extension, "fzf")
pcall(require("telescope").load_extension, "ui-select")
pcall(require("telescope").load_extension, "notify")
-- Define these keys here since they require access to runtime values
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp" })
vim.keymap.set("n", "<leader>sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" })
vim.keymap.set("n", "<leader>sf", builtin.find_files, { desc = "[S]earch [F]iles" })
vim.keymap.set("n", "<leader>ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" })
vim.keymap.set("n", "<leader>sw", builtin.grep_string, { desc = "[S]earch current [W]ord" })
vim.keymap.set("n", "<leader>sg", builtin.live_grep, { desc = "[S]earch by [G]rep" })
vim.keymap.set("n", "<leader>sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" })
vim.keymap.set("n", "<leader>sr", builtin.resume, { desc = "[S]earch [R]esume" })
vim.keymap.set("n", "<leader>s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
vim.keymap.set("n", "<leader><leader>", builtin.buffers, { desc = "[ ] Find existing buffers" })
vim.keymap.set("n", "<leader>/", function()
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
winblend = 10,
previewer = false,
}))
end, { desc = "[/] Fuzzily search in current buffer" })
vim.keymap.set("n", "<leader>s/", function()
builtin.live_grep({
grep_open_files = true,
prompt_title = "Live Grep in Open Files",
})
end, { desc = "[S]earch [/] in Open Files" })
vim.keymap.set("n", "<leader>sn", function()
builtin.find_files({ cwd = vim.fn.stdpath("config") })
end, { desc = "[S]earch [N]eovim files" })
end,
}

View File

@ -1,197 +0,0 @@
return {
{
"folke/lazydev.nvim",
ft = "lua",
opts = {
library = {
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
},
{
"neovim/nvim-lspconfig",
dependencies = {
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
{ "mason-org/mason.nvim", opts = {} },
"mason-org/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim",
{ "j-hui/fidget.nvim", opts = {} },
"saghen/blink.cmp",
},
config = function()
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
callback = function(event)
local map = function(keys, func, desc, mode)
mode = mode or "n"
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- Rename the variable under your cursor.
map("grn", vim.lsp.buf.rename, "[R]e[n]ame")
-- Execute a code action, usually your cursor needs to be on top of an error
map("gra", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
-- Find references for the word under your cursor.
map("grr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- Jump to the implementation of the word under your cursor.
map("gri", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
-- Jump to the definition of the word under your cursor.
map("grd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
-- WARN: This is not Goto Definition, this is Goto Declaration.
map("grD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
-- Fuzzy find all the symbols in your current document.
map("gO", require("telescope.builtin").lsp_document_symbols, "Open Document Symbols")
-- Fuzzy find all the symbols in your current workspace.
map("gW", require("telescope.builtin").lsp_dynamic_workspace_symbols, "Open Workspace Symbols")
-- Jump to the type of the word under your cursor.
map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
-- This function resolves a difference between neovim nightly (version 0.11) and stable (version 0.10)
---@param client vim.lsp.Client
---@param method vim.lsp.protocol.Method
---@param bufnr? integer some lsp support methods only in specific files
---@return boolean
local function client_supports_method(client, method, bufnr)
if vim.fn.has("nvim-0.11") == 1 then
return client:supports_method(method, bufnr)
else
return client.supports_method(method, { bufnr = bufnr })
end
end
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
-- When you move your cursor, the highlights will be cleared (the second autocommand).
local client = vim.lsp.get_client_by_id(event.data.client_id)
if
client
and client_supports_method(
client,
vim.lsp.protocol.Methods.textDocument_documentHighlight,
event.buf
)
then
local highlight_augroup =
vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false })
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd("LspDetach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf })
end,
})
end
-- The following code creates a keymap to toggle inlay hints in your
-- code, if the language server you are using supports them
--
-- This may be unwanted, since they displace some of your code
if
client
and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf)
then
map("<leader>th", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
end, "[T]oggle Inlay [H]ints")
end
end,
})
-- Diagnostic Config
-- See :help vim.diagnostic.Opts
vim.diagnostic.config({
severity_sort = true,
float = { border = "rounded", source = "if_many" },
underline = { severity = vim.diagnostic.severity.ERROR },
signs = vim.g.have_nerd_font and {
text = {
[vim.diagnostic.severity.ERROR] = "󰅚 ",
[vim.diagnostic.severity.WARN] = "󰀪 ",
[vim.diagnostic.severity.INFO] = "󰋽 ",
[vim.diagnostic.severity.HINT] = "󰌶 ",
},
} or {},
virtual_text = {
source = "if_many",
spacing = 2,
format = function(diagnostic)
local diagnostic_message = {
[vim.diagnostic.severity.ERROR] = diagnostic.message,
[vim.diagnostic.severity.WARN] = diagnostic.message,
[vim.diagnostic.severity.INFO] = diagnostic.message,
[vim.diagnostic.severity.HINT] = diagnostic.message,
}
return diagnostic_message[diagnostic.severity]
end,
},
})
local capabilities = require("blink.cmp").get_lsp_capabilities()
local servers = {
lua_ls = {
settings = {
Lua = {
completion = {
callSnippet = "Replace",
},
},
},
},
}
-- Ensure the servers and tools above are installed
--
-- To check the current status of installed tools and/or manually install
-- other tools, you can run
-- :Mason
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
-- LSPs
"json-lsp",
"lua_ls",
"ruby_lsp",
"rubocop",
"rust_analyzer",
"terraformls",
-- Formatters
"fixjson",
"goimports",
"hclfmt",
"prettierd",
"shellharden",
"stylua",
"yamlfix",
--- Linters
"swiftlint",
})
require("mason-tool-installer").setup({ ensure_installed = ensure_installed })
require("mason-lspconfig").setup({
ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer)
automatic_enable = true,
automatic_installation = false,
handlers = {
function(server_name)
local server = servers[server_name] or {}
-- This handles overriding only values explicitly passed
-- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for ts_ls)
server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
require("lspconfig")[server_name].setup(server)
end,
},
})
end,
},
}

View File

@ -1,6 +0,0 @@
return {
"folke/todo-comments.nvim",
event = "VimEnter",
dependencies = { "nvim-lua/plenary.nvim" },
opts = { signs = false },
}

View File

@ -1,14 +1,14 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
error("Error cloning lazy.nvim:\n" .. out)
end
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
error("Error cloning lazy.nvim:\n" .. out)
end
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = "config.lazy",
change_detection = { notify = false },
spec = { import = "plugins" },
change_detection = { notify = false },
})

View File

@ -1,37 +1,49 @@
vim.g.have_nerd_font = true
vim.o.guifont = "Inconsolata Patched G:h12"
if vim.g.neovide then
vim.opt.cmdheight = 0
vim.o.linespace = 5
vim.g.neovide_cursor_animation_length = 0
vim.g.neovide_scroll_animation_length = 0
end
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.signcolumn = "yes"
vim.opt.mouse = "a"
-- Don't show the mode, since it's already in the status line
vim.opt.showmode = false
local opt = vim.opt
-- Columns and gutters
opt.colorcolumn = "80,120" -- Highlight columns 80, 120
opt.number = true -- Line numbers in the gutter
opt.relativenumber = true -- Relative line numbers in the gutter
opt.signcolumn = "yes:1" -- Sign column in the gutter always visible
-- Indentation
opt.autoindent = true -- Enable auto-indentation
opt.breakindent = true -- ?
opt.expandtab = true -- Default to spaces instead of tabs
opt.shiftround = true -- Round indent to multiple of shift-width
opt.shiftwidth = 4 -- Number of spaces when auto-indenting
opt.softtabstop = 4 -- Number of spaces for a tab when editing
opt.tabstop = 4 -- Number of spaces for a tab
-- Display and adornments
opt.cursorline = true -- Highlight current line
opt.guifont = "Inconsolata Patched G:h12"
opt.list = true -- Show whitespace characters
opt.listchars = { tab = "» ", trail = "", nbsp = "", lead = "" }
opt.scrolloff = 3 -- Show 3 lines above and below cursor
opt.showmode = false -- Don't show the mode since it's in our statusline
opt.termguicolors = true -- Use true terminal colors
opt.virtualedit = "block"
opt.winborder = "rounded" -- Rounded borders for windows
-- Behavior
opt.confirm = true
opt.ignorecase = true -- Ignore case in search and commands
opt.inccommand = "split" -- Preview substitutions live
opt.mouse = "a" -- Turn on mouse support
opt.smartcase = true -- ?
opt.splitbelow = true
opt.splitright = true
opt.timeoutlen = 1000 -- Command timeout length
opt.undofile = true
opt.updatetime = 250 -- ?
-- Clipboard
-- Sync clipboard between OS and Neovim.
vim.schedule(function()
vim.opt.clipboard = "unnamedplus"
end)
vim.opt.timeoutlen = 1000
vim.opt.breakindent = true
vim.opt.undofile = true
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.updatetime = 250
vim.opt.timeoutlen = 300
vim.opt.splitright = true
vim.opt.splitbelow = true
vim.opt.list = true
vim.opt.listchars = { tab = "» ", trail = "", nbsp = "", lead = "" }
-- Preview substitutions live, as you type!
vim.opt.inccommand = "split"
vim.opt.cursorline = true
vim.opt.scrolloff = 5
vim.opt.confirm = true
vim.opt.virtualedit = "block"
-- Features
vim.cmd.filetype("plugin indent on")
vim.g.have_nerd_font = true

View File

@ -5,16 +5,12 @@ return {
config = function()
require("catppuccin").setup({
flavour = "auto",
transparent_background = true,
background = {
light = "latte",
dark = "mocha",
},
term_colors = vim.g.neovide,
color_overrides = {
mocha = {
base = "#101018",
},
},
integrations = {
blink_cmp = true,
diffview = true,

View File

@ -0,0 +1,14 @@
return {
{
"lewis6991/gitsigns.nvim",
opts = {
signs = {
add = { text = "+" },
change = { text = "~" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
},
},
},
}

View File

@ -0,0 +1,23 @@
return {
"folke/which-key.nvim",
event = "VimEnter",
opts = {
delay = 0,
preset = "helix",
icons = {
mappings = vim.g.have_nerd_font,
keys = vim.g.have_nerd_font,
},
-- Document existing key chains
spec = {
{ "<leader>a", group = "[a]vante" },
{ "<leader>g", group = "[g]it" },
{ "<leader>l", group = "[l]sp" },
{ "<leader>lg", group = "[l]sp [g]oto" },
{ "<leader>ls", group = "[l]sp [s]ymbols" },
{ "<leader>s", group = "[s]earch" },
{ "<leader>t", group = "[t]oggle" },
},
},
}

View File

@ -0,0 +1,66 @@
local keymap = vim.keymap.set
return {
"nvim-telescope/telescope.nvim",
event = "VimEnter",
dependencies = {
"nvim-lua/plenary.nvim",
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
cond = function()
return vim.fn.executable("make") == 1
end,
},
"nvim-telescope/telescope-ui-select.nvim",
{
"nvim-tree/nvim-web-devicons",
enabled = vim.g.have_nerd_font,
},
"rcarriga/nvim-notify",
},
config = function()
require("telescope").setup({
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown(),
},
},
})
pcall(require("telescope").load_extension, "fzf")
pcall(require("telescope").load_extension, "ui-select")
pcall(require("telescope").load_extension, "notify")
-- Define these keys here since they require access to runtime values
local builtin = require("telescope.builtin")
local map = function(keys, func, desc)
vim.keymap.set("n", "<leader>" .. keys, func, { desc = "[s]earch " .. desc })
end
map("<leader>", builtin.find_files, "all files ([ ])")
map("sb", builtin.buffers, "[b]uffers")
map("sd", builtin.diagnostics, "[d]iagnostics")
map("sg", builtin.live_grep, "[g]rep")
map("sh", builtin.help_tags, "[h]elp")
map("sk", builtin.keymaps, "[k]eymaps")
map("sn", function()
builtin.find_files({ cwd = vim.fn.stdpath("config") })
end, "[n]eovim files")
map("sr", builtin.resume, "[r]esume")
map("st", builtin.builtin, "[t]elescope")
map("sw", builtin.grep_string, "current [w]ord")
map("s.", builtin.oldfiles, "recent files ([.] for repeat)")
map("/", function()
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
winblend = 10,
previewer = false,
}))
end, "current buffer fuzzy ([/])")
map("s/", function()
builtin.live_grep({
grep_open_files = true,
prompt_title = "Live Grep in Open Files",
})
end, "in open files ([/])")
end,
}

View File

@ -18,6 +18,7 @@ return {
hide_gitignore = false,
never_show = {
"node_modules",
".build",
".DS_Store",
"thumbs.db",
".git",

View File

@ -0,0 +1,42 @@
return {
"dimaportenko/project-cli-commands.nvim",
dependencies = {
"akinsho/toggleterm.nvim",
"nvim-telescope/telescope.nvim",
},
keys = {
{
"<leader>sc",
"<cmd>Telescope project_cli_commands open<cr>",
desc = "[s]earch [c]ommands",
},
},
config = function()
local OpenActions = require("project_cli_commands.open_actions")
local RunActions = require("project_cli_commands.actions")
require("project_cli_commands").setup({
-- Key mappings bound inside the telescope window
running_telescope_mapping = {
["<C-c>"] = RunActions.exit_terminal,
["<C-f>"] = RunActions.open_float,
["<C-v>"] = RunActions.open_vertical,
["<C-h>"] = RunActions.open_horizontal,
},
open_telescope_mapping = {
{ mode = "i", key = "<CR>", action = OpenActions.execute_script_vertical },
{ mode = "n", key = "<CR>", action = OpenActions.execute_script_vertical },
{ mode = "i", key = "<C-h>", action = OpenActions.execute_script },
{ mode = "n", key = "<C-h>", action = OpenActions.execute_script },
{ mode = "i", key = "<C-i>", action = OpenActions.execute_script_with_input },
{ mode = "n", key = "<C-i>", action = OpenActions.execute_script_with_input },
{ mode = "i", key = "<C-c>", action = OpenActions.copy_command_clipboard },
{ mode = "n", key = "<C-c>", action = OpenActions.copy_command_clipboard },
{ mode = "i", key = "<C-f>", action = OpenActions.execute_script_float },
{ mode = "n", key = "<C-f>", action = OpenActions.execute_script_float },
{ mode = "i", key = "<C-v>", action = OpenActions.execute_script_vertical },
{ mode = "n", key = "<C-v>", action = OpenActions.execute_script_vertical },
},
})
end,
}

150
nvim/lua/plugins/40-lsp.lua Normal file
View File

@ -0,0 +1,150 @@
local mason_lsps = {
-- LSPs
-- "jsonls",
"lua_ls",
-- "ruby_lsp",
-- "rubocop",
-- "rust_analyzer",
-- "terraformls",
-- "ts_ls",
-- "yamlls",
-- Formatters
-- "fixjson",
-- "goimports",
-- "hclfmt",
-- "prettierd",
-- "shellharden",
"stylua",
}
local non_mason_lsps = {
"sourcekit",
}
return {
-- {
-- "WhoIsSethDaniel/mason-tool-installer.nvim",
-- dependencies = {
-- "mason-org/mason-lspconfig.nvim",
-- },
-- opts = {
-- ensure_installed = mason_lsps,
-- },
-- },
{
"mason-org/mason-lspconfig.nvim",
opts = {
ensure_installed = mason_lsps,
automatic_enable = true,
automatic_installation = false,
},
dependencies = {
{ "mason-org/mason.nvim", opts = {} },
"neovim/nvim-lspconfig",
},
},
{
"neovim/nvim-lspconfig",
dependencies = {
"mason-org/mason.nvim",
"mason-org/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim",
{ "j-hui/fidget.nvim", opts = {} },
"saghen/blink.cmp",
"b0o/schemastore.nvim",
},
config = function()
for _, server in ipairs(non_mason_lsps) do
vim.lsp.enable(server)
end
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
callback = function(event)
local map = function(keys, func, desc, mode)
vim.keymap.set(
mode or "n",
"<leader>" .. keys,
func,
{ buffer = event.buf, desc = "[l]sp: " .. desc }
)
end
map("la", vim.lsp.buf.code_action, "[a]ctions", { "n", "x" })
map("lgr", require("telescope.builtin").lsp_references, "[g]oto [r]eferences")
map("lgi", require("telescope.builtin").lsp_implementations, "[g]oto [i]mplementation")
map("lgf", require("telescope.builtin").lsp_definitions, "[g]oto de[f]inition")
map("lgd", vim.lsp.buf.declaration, "[g]oto [d]eclaration")
map("lgt", require("telescope.builtin").lsp_type_definitions, "[g]oto [t]ype definition")
map("lr", vim.lsp.buf.rename, "[r]ename")
map("lsb", require("telescope.builtin").lsp_document_symbols, "[s]ymbols in [b]uffer")
map("lsw", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[s]ymbols in [w]orkspace")
map("lhs", "<cmd>LspInfo<CR>", "[h]ealth [s]tatus")
map("lhr", "<cmd>LspRestart<CR>", "[h]ealth [r]estart")
local client = vim.lsp.get_client_by_id(event.data.client_id)
local augroup = vim.api.nvim_create_augroup
local autocmd = vim.api.nvim_create_autocmd
if not client then
return
end
if client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then
local highlight_augroup = augroup("kickstart-lsp-highlight", { clear = false })
autocmd({ "CursorHold", "CursorHoldI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
autocmd({ "CursorMoved", "CursorMovedI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
autocmd("LspDetach", {
group = augroup("kickstart-lsp-detach", { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds({
group = "kickstart-lsp-highlight",
buffer = event2.buf,
})
end,
})
end
if client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
map("<leader>th", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
end, "[T]oggle Inlay [H]ints")
end
end,
})
vim.diagnostic.config({
severity_sort = true,
float = { border = "rounded", source = "if_many" },
underline = { severity = vim.diagnostic.severity.ERROR },
signs = vim.g.have_nerd_font and {
text = {
[vim.diagnostic.severity.ERROR] = "󰅚 ",
[vim.diagnostic.severity.WARN] = "󰀪 ",
[vim.diagnostic.severity.INFO] = "󰋽 ",
[vim.diagnostic.severity.HINT] = "󰌶 ",
},
} or {},
virtual_text = {
source = "if_many",
spacing = 2,
format = function(diagnostic)
local diagnostic_message = {
[vim.diagnostic.severity.ERROR] = diagnostic.message,
[vim.diagnostic.severity.WARN] = diagnostic.message,
[vim.diagnostic.severity.INFO] = diagnostic.message,
[vim.diagnostic.severity.HINT] = diagnostic.message,
}
return diagnostic_message[diagnostic.severity]
end,
},
})
end,
},
}

View File

@ -4,12 +4,12 @@ return {
cmd = { "ConformInfo" },
keys = {
{
"<leader>f",
"<leader>lf",
function()
require("conform").format({ async = true, lsp_format = "fallback" })
end,
mode = "",
desc = "[F]ormat buffer",
desc = "[l]sp: [f]ormat buffer",
},
},
opts = {
@ -36,15 +36,11 @@ return {
ruby = { "rubocop" },
rust = { "rustfmt" },
sh = { "shellharden" },
swift = { "swiftlint" },
swift = { "swiftformat" },
terraform = { "terraform_fmt" },
xml = { "xmllint" },
yaml = { "yamlfix" },
},
formatters = {
yamlfix = {
prepend_args = { "-c", ".yamlfix.toml" },
},
yaml = { "prettierd" },
},
formatters = {},
},
}

View File

@ -3,7 +3,7 @@ return {
dependencies = { "nvim-tree/nvim-web-devicons" },
event = "VimEnter",
opts = {
extensions = { "neo-tree", "lazy", "toggleterm" },
extensions = { "neo-tree", "lazy", "toggleterm", "avante", "mason" },
options = {
theme = "catppuccin",
section_separators = { left = "", right = "" },

View File

@ -0,0 +1,20 @@
return {
{
"folke/todo-comments.nvim",
event = "VimEnter",
dependencies = { "nvim-lua/plenary.nvim" },
opts = { signs = false },
},
{
"danymat/neogen",
config = true,
keys = {
{
"<leader>df",
"<cmd>Neogen func<CR>",
mode = "n",
desc = "[d]ocs: for [f]unc",
},
},
},
}

View File

@ -2,13 +2,9 @@ return {
"yetone/avante.nvim",
event = "VeryLazy",
version = false,
---@module 'avante'
---@type avante.Config
opts = {
build = vim.fn.has("win32") ~= 0
and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
or "make",
build = "make",
mode = "legacy",
provider = "claude",
},
dependencies = {

View File

@ -10,14 +10,14 @@ if [[ ! -d $XDG_CONFIG_HOME ]]; then
fi
# Symlink directories to $XDG_CONFIG_HOME.
directories=("gem" "ghostty" "git" "gnupg" "k9s" "lazygit" "neovide" "nvim" "starship" "tmux" "zed")
directories=("gem" "ghostty" "git" "gnupg" "k9s" "lazygit" "mise" "neovide" "nvim" "starship" "tmux" "zed")
for directory in "${directories[@]}"; do
if [[ -d "$XDG_CONFIG_HOME/$directory" ]]; then continue; fi
ln -sfv "$SCRIPTPATH/$directory" "$XDG_CONFIG_HOME/$directory"
done
zshfiles=("zshenv" "zprofile" "zshrc")
zshfiles=("zshenv" "zshrc")
for file in "${zshfiles[@]}"; do
if [[ -a "$HOME/.$file" && $* != *--force* ]]; then continue; fi
if [[ -a "$HOME/.$file" && $* == *--no-force* ]]; then continue; fi
ln -sfv "$SCRIPTPATH/zsh/$file" "$HOME/.$file"
done

View File

@ -37,6 +37,8 @@ alias av="ansible-vault"
# tool aliases
if [[ -x "$(command -v nvim)" ]]; then
alias vim="nvim"
alias v="nvim"
alias vv="NVIM_APPNAME=nvim-new nvim"
fi
if [[ -x "$(command -v highlight)" ]]; then
alias ccat='highlight -O ansi --force'

View File

@ -56,17 +56,19 @@ function random_string() {
}
# devcontainer aliases
function devconbuild() {
function devcup() {
devcontainer up --workspace-folder . --remove-existing-container \
--dotfiles-repository "https://git.kree.gr/kreeger/dotfiles.git" \
--dotfiles-install-command "setup.sh"
}
function devcb() {
devcontainer build --workspace-folder .
}
function devconup() {
devcontainer up --workspace-folder .
}
function devconexec() {
function devce() {
devcontainer exec --workspace-folder . $1
}
function devconshell() {
devconexec /usr/bin/zsh
function devcs() {
devce /usr/bin/zsh
}
# Dotfile update command(s)

View File

@ -1,6 +1,11 @@
# vim: filetype=zsh
SCRIPTPATH=$HOME/.config/dotfiles/zsh
if [[ -d $HOME/.config/dotfiles/zsh ]]; then
SCRIPTPATH=$HOME/.config/dotfiles/zsh
elif [[ -d $HOME/dotfiles/zsh ]]; then
SCRIPTPATH=$HOME/dotfiles/zsh
fi
ZSH_CACHE_DIR="$HOME/.cache/zsh"
# Let GPG know which tty we're using and put in charge of SSH auth
@ -16,6 +21,17 @@ fi
if [[ -a "/opt/homebrew/bin/brew" ]]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
fi
# asdf
if [[ -d "$HOME/.asdf" ]]; then
# export PATH="$HOME/.asdf/shims:$PATH"
export ASDF_DATA_DIR=$HOME/.asdf
export ASDF_CONFIG_FILE=$HOME/.asdfrc
fi
# mise
if [[ -x "$(command -v mise)" ]]; then
export MISE_PYTHON_DEFAULT_PACKAGES_FILE=$XDG_CONFIG_HOME/mise/.default-python-packages
eval "$(mise activate zsh)"
fi
# plugins
mkdir -p "$ZSH_CACHE_DIR"

7
zsh/zprompt Normal file
View File

@ -0,0 +1,7 @@
# vim: filetype=zsh
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '%b '
setopt PROMPT_SUBST
PROMPT='%F{green}%*%f %F{blue}%~%f %F{red}${vcs_info_msg_0_}%f$ '

View File

@ -53,9 +53,17 @@ if [[ -d "$HOME/bin" ]]; then
fi
# asdf
if [[ -d "$HOME/.asdf/shims" ]]; then
export PATH="$HOME/.asdf/shims:$PATH"
if [[ -d "$HOME/.asdf" ]]; then
# export PATH="$HOME/.asdf/shims:$PATH"
export ASDF_DATA_DIR=$HOME/.asdf
export ASDF_CONFIG_FILE=$HOME/.asdfrc
fi
# mise
if [[ -x "$(command -v mise)" ]]; then
export MISE_PYTHON_DEFAULT_PACKAGES_FILE=$XDG_CONFIG_HOME/mise/.default-python-packages
eval "$(mise activate zsh)"
fi
if [[ -d "/opt/homebrew/share/google-cloud-sdk/bin" ]]; then
export PATH=/opt/homebrew/share/google-cloud-sdk/bin:$PATH
fi

View File

@ -17,7 +17,13 @@ setopt HIST_IGNORE_SPACE
setopt AUTO_CD
setopt PROMPT_SUBST
SCRIPTPATH=$HOME/.config/dotfiles/zsh
if [[ -d $HOME/.config/dotfiles/zsh ]]; then
SCRIPTPATH=$HOME/.config/dotfiles/zsh
elif [[ -d $HOME/dotfiles/zsh ]]; then
SCRIPTPATH=$HOME/dotfiles/zsh
fi
source $SCRIPTPATH/zprofile
# Use emacs-style binds instead of vim
bindkey -e
@ -43,6 +49,8 @@ fi
if [[ -x "$(command -v starship)" ]]; then
export STARSHIP_CONFIG="$HOME/.config/starship/starship.toml"
eval "$(starship init zsh)"
else
source $SCRIPTPATH/zprompt
fi
# asdf