Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7cedaa233b | |||
| 331d105586 | |||
| cfe498f542 | |||
| 41f01fed2c | |||
| 94dea57868 | |||
| f064b182c9 | |||
| a98ad2e085 | |||
| 6e9435bc75 | |||
| 4bc2f8de91 | |||
| 70533b3bb4 | |||
| 5faf58e79c | |||
| 4648cb1691 | |||
| 375cb89d5f | |||
| 04d02d3417 | |||
| a38736ed22 | |||
| 9375e57331 | |||
| 359c4538c5 |
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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'
|
||||
|
||||
@ -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'
|
||||
|
||||
1
mise/.default-python-packages
Normal file
1
mise/.default-python-packages
Normal file
@ -0,0 +1 @@
|
||||
░
|
||||
8
mise/config.toml
Normal file
8
mise/config.toml
Normal 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/"
|
||||
@ -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
31
nvim/lsp/jsonls.lua
Normal 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
12
nvim/lsp/lua_ls.lua
Normal file
@ -0,0 +1,12 @@
|
||||
return {
|
||||
settings = {
|
||||
Lua = {
|
||||
completion = {
|
||||
callSnippet = "Replace",
|
||||
},
|
||||
diagnostics = {
|
||||
globals = { "vim" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
9
nvim/lsp/sourcekit.lua
Normal file
9
nvim/lsp/sourcekit.lua
Normal file
@ -0,0 +1,9 @@
|
||||
return {
|
||||
capabilities = {
|
||||
workspace = {
|
||||
didChangeWatchedFiles = {
|
||||
dynamicRegistration = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
25
nvim/lsp/yamlls.lua
Normal file
25
nvim/lsp/yamlls.lua
Normal 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 },
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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" })
|
||||
|
||||
@ -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" },
|
||||
-- },
|
||||
-- },
|
||||
}
|
||||
@ -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" },
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -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,
|
||||
}
|
||||
@ -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,
|
||||
},
|
||||
}
|
||||
@ -1,6 +0,0 @@
|
||||
return {
|
||||
"folke/todo-comments.nvim",
|
||||
event = "VimEnter",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = { signs = false },
|
||||
}
|
||||
@ -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 },
|
||||
})
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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,
|
||||
14
nvim/lua/plugins/10-git.lua
Normal file
14
nvim/lua/plugins/10-git.lua
Normal file
@ -0,0 +1,14 @@
|
||||
return {
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
opts = {
|
||||
signs = {
|
||||
add = { text = "+" },
|
||||
change = { text = "~" },
|
||||
delete = { text = "_" },
|
||||
topdelete = { text = "‾" },
|
||||
changedelete = { text = "~" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
23
nvim/lua/plugins/20-which-key.lua
Normal file
23
nvim/lua/plugins/20-which-key.lua
Normal 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" },
|
||||
},
|
||||
},
|
||||
}
|
||||
66
nvim/lua/plugins/30-fuzzyfinder.lua
Normal file
66
nvim/lua/plugins/30-fuzzyfinder.lua
Normal 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,
|
||||
}
|
||||
@ -18,6 +18,7 @@ return {
|
||||
hide_gitignore = false,
|
||||
never_show = {
|
||||
"node_modules",
|
||||
".build",
|
||||
".DS_Store",
|
||||
"thumbs.db",
|
||||
".git",
|
||||
42
nvim/lua/plugins/34-commands.lua
Normal file
42
nvim/lua/plugins/34-commands.lua
Normal 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
150
nvim/lua/plugins/40-lsp.lua
Normal 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,
|
||||
},
|
||||
}
|
||||
@ -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 = {},
|
||||
},
|
||||
}
|
||||
@ -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 = "" },
|
||||
20
nvim/lua/plugins/60-comments.lua
Normal file
20
nvim/lua/plugins/60-comments.lua
Normal 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",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -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 = {
|
||||
6
setup.sh
6
setup.sh
@ -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
|
||||
|
||||
@ -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'
|
||||
|
||||
@ -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)
|
||||
|
||||
18
zsh/zprofile
18
zsh/zprofile
@ -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
7
zsh/zprompt
Normal 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$ '
|
||||
12
zsh/zshenv
12
zsh/zshenv
@ -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
|
||||
|
||||
10
zsh/zshrc
10
zsh/zshrc
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user