diff --git a/private_dot_config/private_nvim/private_lua/.chezmoiignore b/private_dot_config/private_nvim/private_lua/.chezmoiignore index 1d493a9..f1f499b 100644 --- a/private_dot_config/private_nvim/private_lua/.chezmoiignore +++ b/private_dot_config/private_nvim/private_lua/.chezmoiignore @@ -3,6 +3,7 @@ hydras.lua plugins/aesthetics.lua plugins/hydras.lua plugins/lion.lua +plugins/lsp.lua plugins/markdown-preview.lua plugins/split-focus.lua plugins/treesitter.lua diff --git a/private_dot_config/private_nvim/private_lua/private_plugins/private_aesthetics.lua b/private_dot_config/private_nvim/private_lua/private_plugins/private_aesthetics.lua index 6980566..013e8d8 100644 --- a/private_dot_config/private_nvim/private_lua/private_plugins/private_aesthetics.lua +++ b/private_dot_config/private_nvim/private_lua/private_plugins/private_aesthetics.lua @@ -1,30 +1,4 @@ return { - -- pretty statusline - { - 'nvim-lualine/lualine.nvim', - config = function() - vim.o.showmode = false - require 'lualine'.setup { - options = { - icons_enabled = false, - component_separators = { left = '⡇⡷', right = '⢾⢸' }, - section_separators = { left = '▓▓▒', right = '▒▓▓' }, - globalstatus = true, - theme = 'catppuccin', - }, - sections = { - lualine_a = { 'mode' }, - lualine_b = { 'filename' }, - lualine_c = { 'branch', 'diff' }, - lualine_x = { 'encoding', 'filetype' }, - lualine_y = { 'progress' }, - lualine_z = { 'location' }, - }, - inactive_sections = {}, - } - end - }, - -- cutesy indent lines { 'lukas-reineke/indent-blankline.nvim', diff --git a/private_dot_config/private_nvim/private_lua/private_plugins/private_colorscheme.lua b/private_dot_config/private_nvim/private_lua/private_plugins/private_colorscheme.lua new file mode 100644 index 0000000..7dc6ba6 --- /dev/null +++ b/private_dot_config/private_nvim/private_lua/private_plugins/private_colorscheme.lua @@ -0,0 +1,18 @@ +return { + { + "catppuccin/nvim", + name = "colorscheme", + priority = 1000, + config = function() + require('catppuccin').setup({ + flavor = "macchiato", + custom_highlights = function(colors) + return { + Comment = { fg = colors.sapphire } + } + end + }) + vim.cmd [[colorscheme catppuccin]] + end + } +} diff --git a/private_dot_config/private_nvim/private_lua/private_plugins/private_lsp.lua b/private_dot_config/private_nvim/private_lua/private_plugins/private_lsp.lua new file mode 100644 index 0000000..20bb2db --- /dev/null +++ b/private_dot_config/private_nvim/private_lua/private_plugins/private_lsp.lua @@ -0,0 +1,78 @@ +return { + { + "dundalek/lazy-lsp.nvim", + dependencies = { + { "towolf/vim-helm" }, + { "neovim/nvim-lspconfig" }, + }, + config = function() + require("lazy-lsp").setup { + excluded_servers = { + "biome", "yamlls", "denols", "syntax_tree", "tailwindcss", "flow", "oxlint" + }, + preferred_servers = { + css = { "cssls", "styleline_lsp" }, + html = { "html", "stylelint_lsp" }, + javascript = { "eslint", "ts_ls" }, + ["javascript.jsx"] = { "eslint", "ts_ls" }, + javascriptreact = { "eslint", "ts_ls" }, + typescript = { "eslint", "ts_ls" }, + ["typescript.tsx"] = { "eslint", "ts_ls" }, + typescriptreact = { "eslint", "ts_ls" } + }, + configs = { + lua_ls = { + settings = { + Lua = { + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = { "vim" }, + }, + }, + }, + }, + }, + prefer_local = true, + use_vim_lsp_config = true, + } + + local augroup = vim.api.nvim_create_augroup('LspFormatting', {}) + local attach_async_formatting = function(client, bufnr) + if client.supports_method("textDocument/formatting") or client.supports_method("formatting") then + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + if vim.b.autoformat ~= false then -- 'nil' means 'yes' here + vim.lsp.buf.format({ + bufnr = bufnr, + filter = function(c) + return c.name ~= 'tsserver' + end + }) + end + end, + }) + end + end + + vim.api.nvim_create_autocmd('LspAttach', { + callback = function(args) + local client = assert(vim.lsp.get_client_by_id(args.data.client_id)) + attach_async_formatting(client, args.buf) + end, + }) + end, + }, + + { + "salkin-mada/openscad.nvim", + config = function() + vim.g.openscad_load_snippets = true + vim.g.openscad_default_mappings = true + require("openscad") + end, + dependencies = { "L3MON4D3/LuaSnip", "junegunn/fzf.vim" }, + }, +} diff --git a/private_dot_config/private_nvim/private_lua/private_plugins/private_style.lua b/private_dot_config/private_nvim/private_lua/private_plugins/private_style.lua deleted file mode 100644 index cb9b60b..0000000 --- a/private_dot_config/private_nvim/private_lua/private_plugins/private_style.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - { "catppuccin/nvim", - name = "catppuccin", - priority = 1000, - opts = { - flavor = "frappe" - } - } -} diff --git a/private_dot_config/private_nvim/private_lua/private_plugins/private_treesitter.lua b/private_dot_config/private_nvim/private_lua/private_plugins/private_treesitter.lua index 24bfa27..c120520 100644 --- a/private_dot_config/private_nvim/private_lua/private_plugins/private_treesitter.lua +++ b/private_dot_config/private_nvim/private_lua/private_plugins/private_treesitter.lua @@ -1,11 +1,12 @@ return { { 'nvim-treesitter/nvim-treesitter', + branch = 'main', lazy = false, build = ':TSUpdate', config = function() require('nvim-treesitter').install({ - "astro", "bash", "c", "cmake", "css", "dockerfile", "fish", "go", "html", "java", + "astro", "bash", "c", "cmake", "css", "fish", "go", "html", "java", "javascript", "json", "json5", "latex", "lua", "make", "perl", "python", "regex", "ruby", "rust", "typescript", "vim", "yaml" }):wait(300000) diff --git a/private_dot_config/private_tmux/private_tmux.conf.tmpl b/private_dot_config/private_tmux/private_tmux.conf.tmpl index 14b915e..214db57 100644 --- a/private_dot_config/private_tmux/private_tmux.conf.tmpl +++ b/private_dot_config/private_tmux/private_tmux.conf.tmpl @@ -22,19 +22,21 @@ set -g mouse on set -g status on set -g status-style bg=black,fg=white -set -g status-position top -set -g status-interval 15 set -g status-left-length 50 set -g status-right-length 50 -set -g status-justify left - -set -g status-left "#[fg=blue,bold]#S#[fg=brightblack] ⧽ " {{- if has "phone" .class }} +set -g status-position top +set -g status-justify left +set -g status-interval 15 +set -g status-left "#[fg=blue,bold]#S#[fg=brightblack] ⧽ " set -g status-right "#[fg=brightblack]⧼ %Y-%m-%d" {{- else }} +set -g status-position bottom +set -g status-justify centre set -g status-interval 1 -set -g status-right "#[fg=brightblack] ⧼ %H:%M:%S ⧼ %Y-%m-%d" +set -g status-left "#[fg=colour33,bg=colour235] #h ⧽ " +set -g status-right "#[bg=colour235,fg=colour136] ⧼ %a ⧼ %H:%M:%S ⧼ %Y-%m-%d " {{- end }} set -g window-status-format "#[fg=cyan]#I:#W#F"