move to one folder

This commit is contained in:
2024-05-26 05:54:35 -05:00
parent b1d1c138a7
commit f2772f88bc
23 changed files with 117 additions and 52 deletions

View File

@@ -0,0 +1,44 @@
{
"telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false,
"git.enableSmartCommit": true,
"git.confirmSync": false,
"git.autofetch": true,
"redhat.telemetry.enabled": false,
"workbench.startupEditor": "none",
"explorer.confirmDragAndDrop": false,
"window.restoreWindows": "none",
"github.gitAuthentication": false,
"terminal.integrated.defaultProfile.linux": "zsh",
"editor.fontFamily": "GoMono Nerd Font Propo",
"terminal.integrated.fontFamily": "GoMono Nerd Font Propo",
"terminal.integrated.scrollback": -1,
"workbench.editor.untitled.hint": "hidden",
"editor.fontSize": 15,
"go.toolsManagement.autoUpdate": true,
"workbench.editor.enablePreview": false,
"workbench.colorTheme": "Catppuccin Mocha",
"powershell.promptToUpdatePowerShell": false,
"editor.formatOnSave": true,
"editor.lineNumbers": "relative",
"terminal.integrated.fontSize": 15,
"editor.minimap.enabled": false,
"vscode-neovim.highlightGroups.highlights": {
"IncSearch": {
"backgroundColor": "theme.editor.findMatchBackground",
"borderColor": "theme.editor.findMatchBorder"
},
"Search": {
"backgroundColor": "theme.editor.findMatchHighlightBackground",
"borderColor": "theme.editor.findMatchHighlightBorder"
},
"Visual": {
"backgroundColor": "theme.editor.selectionBackground"
}
},
"powershell.codeFormatting.autoCorrectAliases": true,
"powershell.codeFormatting.avoidSemicolonsAsLineTerminators": true,
"powershell.codeFormatting.useCorrectCasing": true,
"git.openRepositoryInParentFolders": "never",
"vscode-neovim.neovimInitVimPaths.linux": "~/.config/nvim/lua/custom/init.lua"
}

View File

@@ -0,0 +1,6 @@
---@type ChadrcConfig
local M = {}
M.ui = {theme = 'catppuccin'}
M.plugins = "custom.plugins"
M.mappings = require "custom.mappings"
return M

View File

@@ -0,0 +1,19 @@
local M = {
filetype = {
javascript = {
require("formatter.filetypes.javascript").prettier
},
typescript = {
require("formatter.filetypes.typescript").prettier
},
["*"] = {
require("formatter.filetypes.any").remove_trailing_whitespace
}
}
}
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
command = "FormatWriteLock"
})
return M

View File

@@ -0,0 +1,58 @@
local on_attach = require("plugins.configs.lspconfig").on_attach
local capabilities = require("plugins.configs.lspconfig").capabilities
local lspconfig = require("lspconfig")
local util = require "lspconfig/util"
local function organize_imports()
local params = {
command = "_typescript.organizeImports",
arguments = {vim.api.nvim_buf_get_name(0)},
}
vim.lsp.buf.execute_command(params)
end
lspconfig.gopls.setup {
on_attach = on_attach,
capabilities = capabilities,
cmd = {"gopls"},
filetypes = { "go", "gomod", "gowork", "gotmpl" },
root_dir = util.root_pattern("go.work", "go.mod", ".git"),
settings = {
gopls = {
completeUnimported = true,
usePlaceholders = true,
analyses = {
unusedparams = true,
},
},
},
}
lspconfig.pyright.setup({
on_attach = on_attach,
capabilities = capabilities,
filetypes = {"python"},
})
lspconfig.powershell_es.setup({
bundle_path = vim.fn.stdpath("data") .. "/mason/packages/powershell-editor-services/",
settings = { powershell = { codeFormatting = { Preset = 'OTBS' } } }
})
lspconfig.bashls.setup({})
lspconfig.tsserver.setup {
on_attach = on_attach,
capabilities = capabilities,
init_options = {
preferences = {
disableSuggestions = true,
}
},
commands = {
OrganizeImports = {
organize_imports,
description = "Organize Imports",
}
}
}

View File

@@ -0,0 +1,31 @@
local null_ls = require("null-ls")
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
local opts = {
sources = {
null_ls.builtins.formatting.gofumpt,
null_ls.builtins.formatting.goimports_reviser,
null_ls.builtins.formatting.golines,
null_ls.builtins.formatting.black,
null_ls.builtins.diagnostics.mypy,
null_ls.builtins.diagnostics.ruff,
null_ls.builtins.diagnostics.eslint,
null_ls.builtins.formatting.prettier,
},
on_attach = function(client, bufnr)
if client.supports_method("textDocument/formatting") then
vim.api.nvim_clear_autocmds({
group = augroup,
buffer = bufnr,
})
vim.api.nvim_create_autocmd("BufWritePre", {
group = augroup,
buffer = bufnr,
callback = function()
vim.lsp.buf.format({ bufnr = bufnr })
end,
})
end
end,
}
return opts

View File

@@ -0,0 +1,11 @@
local on_attach = require("plugins.configs.lspconfig").on_attach
local capabilities = require("plugins.configs.lspconfig").capabilities
local options = {
server = {
on_attach = on_attach,
capabilities = capabilities,
}
}
return options

View File

@@ -0,0 +1,11 @@
local parser_config = require 'nvim-treesitter.parsers'.get_parser_configs()
--parser_config.powershell_es = {
-- install_info = {
-- url = "/home/user/.local/share/tree-sitter-PowerShell",
-- files = { "src/parser.c" },
-- generate_requires_npm = false,
-- requires_generate_from_grammar = false,
-- },
-- filetype = "ps1",
--}
return parser_config

View File

@@ -0,0 +1,10 @@
vim.opt.guicursor = ""
vim.opt.nu = true
vim.opt.relativenumber = true
vim.api.nvim_set_keymap('n', '<C-d>', '<C-d>zz', {noremap = true})
vim.api.nvim_set_keymap('n', '<C-u>', '<C-u>zz', {noremap = true})
vim.api.nvim_set_keymap('n', 'n', 'nzzzv', {noremap = true})
vim.api.nvim_set_keymap('n', 'N', 'Nzzzv', {noremap = true})
vim.api.nvim_set_option("clipboard","unnamedplus")

View File

@@ -0,0 +1,96 @@
local M = {}
M.general = {
n = {
["<C-h>"] = {"<cmd> TmuxNavigateLeft<CR>", "window left"},
["<C-l>"] = {"<cmd> TmuxNavigateRight<CR>", "window right"},
["<C-j>"] = {"<cmd> TmuxNavigateDown<CR>", "window down"},
["<C-k>"] = {"<cmd> TmuxNavigateUp<CR>", "window up"},
}
}
M.dap = {
plugin = true,
n = {
["<leader>db"] = {
"<cmd> DapToggleBreakpoint <CR>",
"Add breakpoint at line"
},
["<F5>"] = {
"<cmd> DapContinue <CR>",
"Start Debugging"
},
["<F6>"] = {
"<cmd> DapTerminate <CR>",
"Stop Debugging"
},
["<F10>"] = {
"<cmd> DapStepOver <CR>",
"Step Over"
},
["<F11>"] = {
"<cmd> DapStepInto <CR>",
"Step Into"
},
["<F12>"] = {
"<cmd> DapStepOut <CR>",
"Stop Out"
},
["<leader>dus"] = {
function ()
local widgets = require('dap.ui.widgets');
local sidebar = widgets.sidebar(widgets.scopes);
sidebar.open();
end,
"Open debugging sidebar"
}
}
}
M.dap_go = {
plugin = true,
n = {
["<leader>dgt"] = {
function()
require('dap-go').debug_test()
end,
"Debug go test"
},
["<leader>dgl"] = {
function()
require('dap-go').debug_last()
end,
"Debug last go test"
}
}
}
M.gopher = {
plugin = true,
n = {
["<leader>gsj"] = {
"<cmd> GoTagAdd json <CR>",
"Add json struct tags"
},
["<leader>gse"] = {
"<cmd> GoTagAdd env <CR>",
"Add env struct tags"
},
["<leader>gsy"] = {
"<cmd> GoTagAdd yaml <CR>",
"Add yaml struct tags"
}
}
}
M.crates = {
n = {
["<leader>rcu"] = {
function ()
require('crates').upgrade_all_crates()
end,
"update crates"
}
}
}
return M

View File

@@ -0,0 +1,175 @@
local plugins = {
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"gopls",
"rust-analyzer",
"pyright",
"mypy",
"ruff",
"black",
"debugpy",
"powershell-editor-services",
"bash-language-server",
"eslint-lsp",
"js-debug-adapter",
"prettier",
"typescript-language-server"
},
},
},
{
"christoomey/vim-tmux-navigator",
lazy = false,
},
{
"mfussenegger/nvim-dap",
init = function()
require("core.utils").load_mappings("dap")
require('dap.ext.vscode').load_launchjs('.vscode/launch.json', {})
end
},
{
"rcarriga/nvim-dap-ui",
dependencies = "mfussenegger/nvim-dap",
config = function()
local dap = require("dap")
local dapui = require("dapui")
dapui.setup()
dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open()
end
dap.listeners.before.event_terminated["dapui_config"] = function()
dapui.close()
end
dap.listeners.before.event_exited["dapui_config"] = function()
dapui.close()
end
end
},
{
"neovim/nvim-lspconfig",
config = function()
require "plugins.configs.lspconfig"
require "custom.configs.lspconfig"
end,
},
{
"jose-elias-alvarez/null-ls.nvim",
ft = "go, python",
opts = function()
return require "custom.configs.null-ls"
end,
},
-- Golang
{
"dreamsofcode-io/nvim-dap-go",
ft = "go",
dependencies = {
"mfussenegger/nvim-dap",
"rcarriga/nvim-dap-ui",
},
config = function(_, opts)
require("dap-go").setup(opts)
require("core.utils").load_mappings("dap_go")
end
},
{
"olexsmir/gopher.nvim",
ft = "go",
config = function(_, opts)
require("gopher").setup(opts)
require("core.utils").load_mappings("gopher")
end,
build = function()
vim.cmd [[silent! GoInstallDeps]]
end,
},
--Rust
{
"rust-lang/rust.vim",
ft = "rust",
init = function ()
vim.g.rustfmt_autosave = 1
end
},
{
"simrat39/rust-tools.nvim",
ft = "rust",
dependencies = "neovim/nvim-lspconfig",
opts = function ()
return require "custom.configs.rust-tools"
end,
config = function (_, opts)
require('rust-tools').setup(opts)
end
},
{
"mfussenegger/nvim-dap",
},
{
'saecki/crates.nvim',
ft = {"rust","toml"},
config = function (_, opts)
local crates = require('crates')
crates.setup(opts)
crates.show()
end
},
{
"hrsh7th/nvim-cmp",
opts = function ()
local M = require "plugins.configs.cmp"
table.insert(M.sources, {name= "crates"})
end
},
--python
{
"mfussenegger/nvim-dap-python",
ft = "python",
dependencies = {
"mfussenegger/nvim-dap",
"rcarriga/nvim-dap-ui",
},
config = function(_, opts)
local path = "~/.local/share/nvim/mason/packages/debugpy/venv/bin/python"
require("dap-python").setup(path)
end,
},
--ChatGPT
--{
-- "dreamsofcode-io/ChatGPT.nvim",
-- event = "VeryLazy",
-- dependencies = {
-- "MunifTanjim/nui.nvim",
-- "nvim-lua/plenary.nvim",
-- "nvim-telescope/telescope.nvim"
-- },
-- config = function()
-- require("chatgpt").setup({
-- async_api_key_cmd = "bw get password ChatGPT-APIKey",
-- })
-- end,
--},
{
"nvim-treesitter/nvim-treesitter",
opts = function()
local opts = require "plugins.configs.treesitter"
require "custom.configs.treesitter"
require'nvim-treesitter.install'.prefer_git = true
opts.ensure_installed = {
"lua",
"javascript",
"typescript",
"tsx",
"go",
"terraform",
"c_sharp",
"bash",
}
return opts
end,
}
}
return plugins

View File

@@ -0,0 +1,26 @@
oh-my-posh init pwsh --config ~/.config/powershell/config.json | Invoke-Expression
Set-PSReadLineOption -PredictionSource History
@(
"cat,get-content"
"cd,set-location"
"clear,clear-host"
"cp,copy-item"
"history,get-history"
"kill,stop-process"
"ls,Get-ChildItem"
"mv,move-item"
"ps,get-process"
"pwd,get-location"
"which,get-command"
"open,Invoke-Item"
"basename,Split-Path"
"realpath,resolve-path"
) | ForEach-Object {
$Alias = ($PSItem -split ",")[0]
$value = ($PSItem -split ",")[1]
Set-Alias -Name $Alias -Value $value -Option AllScope
}
$env:POWERSHELL_TELEMETRY_OPTOUT = 1
$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1

View File

@@ -0,0 +1,47 @@
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"segments": [
{
"foreground": "#00C5C7",
"properties": {
"time_format": "15:04:05"
},
"style": "plain",
"template": " {{ .CurrentDate | date .Format }} ",
"type": "time"
}
],
"type": "rprompt"
},
{
"alignment": "left",
"segments": [
{
"foreground": "#77E4F7",
"properties": {
"style": "full"
},
"style": "plain",
"template": "{{ .Path }} ",
"type": "path"
},
{
"foreground": "#FFE700",
"style": "plain",
"template": "{{ .HEAD }} ",
"type": "git"
},
{
"foreground": "#43D426",
"style": "plain",
"template": "\u276f ",
"type": "text"
}
],
"type": "prompt"
}
],
"version": 2
}

38
.config/terminator/config Normal file
View File

@@ -0,0 +1,38 @@
[global_config]
borderless = True
putty_paste_style_source_clipboard = True
[keybindings]
switch_to_tab_1 = <Alt>exclam
switch_to_tab_2 = <Alt>at
switch_to_tab_3 = <Alt>numbersign
switch_to_tab_4 = <Alt>dollar
switch_to_tab_5 = <Alt>percent
switch_to_tab_6 = <Alt>asciicircum
switch_to_tab_7 = <Alt>ampersand
switch_to_tab_8 = <Alt>asterisk
switch_to_tab_9 = <Alt>parenleft
switch_to_tab_10 = <Alt>parenright
full_screen = <Primary><Alt>f
[profiles]
[[default]]
allow_bold = False
icon_bell = False
background_color = "#1e1e2e"
background_darkness = 0.95
background_type = transparent
cursor_color = "#cdd6f4"
font = GoMono Nerd Font Propo 12
foreground_color = "#cdd6f4"
show_titlebar = False
palette = "#45475a:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#bac2de:#585b70:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#a6adc8"
use_system_font = False
background_image = None
[layouts]
[[default]]
[[[window0]]]
type = Window
parent = ""
[[[child1]]]
type = Terminal
parent = window0
[plugins]

Submodule .config/tmux/plugins/catppuccin-tmux added at b4e0715356

Submodule .config/tmux/plugins/tmux-sensible added at 25cb91f42d

Submodule .config/tmux/plugins/tmux-yank added at acfd36e4fc

Submodule .config/tmux/plugins/tpm added at 99469c4a9b

Submodule .config/tmux/plugins/vim-tmux-navigator added at 38b1d0402c

54
.config/tmux/tmux.conf Normal file
View File

@@ -0,0 +1,54 @@
set-option -sa terminal-overrides ",xterm*:Tc"
set -g mouse on
set -g set-clipboard on
set -g @yank_selection_mouse 'clipboard'
set -g @yank_selection 'clipboard'
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
# Vim style pane selection
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# Shift Alt vim keys to switch windows
bind -n M-H previous-window
bind -n M-L next-window
set -g @catppuccin_flavour 'mocha'
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'christoomey/vim-tmux-navigator'
set -g @plugin 'dreamsofcode-io/catppuccin-tmux'
set -g @plugin 'tmux-plugins/tmux-yank'
# set vi-mode
set-window-option -g mode-keys vi
# keybindings
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel "xsel -i --clipboard"
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
run '~/.tmux/plugins/tpm/tpm'