diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 71ee57b..ed40c3d 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -4,7 +4,7 @@ italic_font auto bold_italic_font auto font_size 14 -tab_bar_style hidden +tab_bar_style powerline map ctrl+shift+l next_tab map ctrl+shift+h previous_tab diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index fabfc2b..7a7ef6f 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -1,23 +1,25 @@ { - "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, - "alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" }, + "LuaSnip": { "branch": "master", "commit": "faf3c94a44508cec1b961406d36cc65113ff3b98" }, + "alpha-nvim": { "branch": "main", "commit": "a35468cd72645dbd52c0624ceead5f301c566dff" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, - "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, + "cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "gitsigns.nvim": { "branch": "main", "commit": "140ac646db125904e456e42ab8b538d28f9607d7" }, - "gruvbox.nvim": { "branch": "main", "commit": "a933d8666dad9363dc6908ae72cfc832299c2f59" }, + "gitsigns.nvim": { "branch": "main", "commit": "8bdaccdb897945a3c99c1ad8df94db0ddf5c8790" }, + "gruvbox.nvim": { "branch": "main", "commit": "00e38a379bab3389e187b3953566d67d494dfddd" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" }, + "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" }, "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-tree.lua": { "branch": "master", "commit": "be5b788f2dc1522c73fb7afad9092331c8aebe80" }, - "nvim-treesitter": { "branch": "master", "commit": "684eeac91ed8e297685a97ef70031d19ac1de25a" }, - "nvim-web-devicons": { "branch": "master", "commit": "50b5b06bff13a9b4eab946de7c7033649a6618a1" }, + "nvim-lspconfig": { "branch": "master", "commit": "03bc581e05e81d33808b42b2d7e76d70adb3b595" }, + "nvim-tree.lua": { "branch": "master", "commit": "ebcaccda1c575fa19a8087445276e6671e2b9b37" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "telescope-args.nvim": { "branch": "main", "commit": "995072920fae8e1bf31daed015114bd54617079a" }, - "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" } + "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, + "transparent.nvim": { "branch": "main", "commit": "d41ae9b56ac2706cb3db4b16afe5cd6903013937" } } diff --git a/nvim/lsp/clangd.lua b/nvim/lsp/clangd.lua index 0b4be1d..6a9b431 100644 --- a/nvim/lsp/clangd.lua +++ b/nvim/lsp/clangd.lua @@ -132,16 +132,14 @@ return { lsp_keymaps(bufnr) lsp_highlight_document(client) - 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() + vim.lsp.buf.format({ async = false }) end, }) - end vim.api.nvim_buf_create_user_command(0, 'LspClangdSwitchSourceHeader', function() switch_source_header(0) diff --git a/nvim/lsp/mdx_analyzer.lua b/nvim/lsp/mdx_analyzer.lua new file mode 100644 index 0000000..b093e9b --- /dev/null +++ b/nvim/lsp/mdx_analyzer.lua @@ -0,0 +1,90 @@ +local function lsp_highlight_document(client) + if client.server_capabilities.document_highlight then + vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true }) + + vim.api.nvim_create_autocmd("CursorHold", { + group = "lsp_document_highlight", + buffer = 0, + callback = function() + vim.lsp.buf.document_highlight() + end, + }) + + vim.api.nvim_create_autocmd("CursorMoved", { + group = "lsp_document_highlight", + buffer = 0, + callback = function() + vim.lsp.buf.clear_references() + end, + }) + end +end + +local function lsp_keymaps(bufnr) + local opts = { noremap = true, silent = true } + + vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "lua vim.lsp.buf.definition()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", "lua vim.lsp.buf.implementation()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "", "lua vim.lsp.buf.signature_help()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "lua vim.lsp.buf.references()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", 'lua vim.diagnostic.goto_prev({border="rounded"})', opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", 'lua vim.diagnostic.goto_next({border="rounded"})', opts) + + vim.api.nvim_buf_set_keymap(bufnr, "n", "lr", "lua vim.lsp.buf.rename()", opts) + + vim.api.nvim_buf_set_keymap(bufnr, "n", "q", "lua vim.diagnostic.setloclist()", opts) + + vim.api.nvim_buf_set_keymap( + bufnr, + "n", + "td", + "lua require 'telescope.builtin'.diagnostics()", + opts + ) + vim.api.nvim_buf_set_keymap( + bufnr, + "n", + "tr", + "lua require 'telescope.builtin'.lsp_references()", + opts + ) +end + +local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") +if not status_ok then + print("Failed to require cmp_nvim_lsp") + return +end + +local client_capabilities = vim.lsp.protocol.make_client_capabilities() +local capabilities = cmp_nvim_lsp.default_capabilities(client_capabilities) +capabilities.offsetEncoding = { "utf-8", "utf-16" } + +local util = require 'lspconfig.util' +return { + default_config = { + cmd = { 'mdx-language-server', '--stdio' }, + filetypes = { 'mdx', 'markdown', 'svx' }, + root_dir = util.root_pattern 'package.json', + single_file_support = true, + settings = {}, + init_options = { + typescript = {}, + }, + on_new_config = function(new_config, new_root_dir) + if vim.tbl_get(new_config.init_options, 'typescript') and not new_config.init_options.typescript.tsdk then + new_config.init_options.typescript.tsdk = util.get_typescript_server_path(new_root_dir) + end + end, + }, + commands = {}, + docs = { + description = [[ +https://github.com/mdx-js/mdx-analyzer + +`mdx-analyzer`, a language server for MDX +]], + }, +} diff --git a/nvim/lua/_gruvbox.lua b/nvim/lua/_gruvbox.lua index 37df958..300a466 100644 --- a/nvim/lua/_gruvbox.lua +++ b/nvim/lua/_gruvbox.lua @@ -2,7 +2,7 @@ require("gruvbox").setup({ overrides = { SignColumn = { bg = "#282828" } }, - transparent_mode = true, + transparent_mode = false, }) vim.o.background = "dark" vim.cmd([[colorscheme gruvbox]]) diff --git a/nvim/lua/_keymaps.lua b/nvim/lua/_keymaps.lua index a4bf15f..c05d3cb 100644 --- a/nvim/lua/_keymaps.lua +++ b/nvim/lua/_keymaps.lua @@ -91,7 +91,7 @@ keymap( keymap("n", "tg", "Telescope live_grep", opts) -keymap("n", "w", "w", opts) +keymap("n", "w", "lua vim.lsp.buf.format({async = false})w", opts) keymap("n", "c", "bdelete", opts) keymap( diff --git a/nvim/lua/_lsp.lua b/nvim/lua/_lsp.lua index 2068298..bfd134b 100644 --- a/nvim/lua/_lsp.lua +++ b/nvim/lua/_lsp.lua @@ -73,11 +73,6 @@ local function supported_by_prettier(filetype) return false end -vim.lsp.enable({ - 'clangd', - 'lua_ls' -}) - local config = { virtual_text = true, signs = { @@ -101,6 +96,12 @@ local config = { }, } +vim.filetype.add({ + extension = { + svx = "markdown", + } +}) + vim.diagnostic.config(config) vim.lsp.buf.hover({ border = "rounded" }) @@ -114,4 +115,6 @@ vim.lsp.enable({ "ts_ls", "cssls", "eslint", + "mdx_analyzer", }) + diff --git a/nvim/lua/_plugins.lua b/nvim/lua/_plugins.lua index 6d5064d..98992ea 100644 --- a/nvim/lua/_plugins.lua +++ b/nvim/lua/_plugins.lua @@ -17,6 +17,7 @@ require("lazy").setup({ { "ellisonleao/gruvbox.nvim" }, { "lewis6991/gitsigns.nvim" }, { "goolord/alpha-nvim" }, + { "xiyaowong/transparent.nvim" }, -- Auto-complete { "hrsh7th/nvim-cmp" }, @@ -28,6 +29,9 @@ require("lazy").setup({ { "saadparwaiz1/cmp_luasnip" }, { "windwp/nvim-autopairs" }, { "L3MON4D3/LuaSnip" }, + + -- Lsp + { "neovim/nvim-lspconfig" }, }, install = { colorscheme = { "gruvbox" } }, checker = { enabled = true }, diff --git a/zshrc.sh b/zshrc.sh index 0eaf14e..c175053 100644 --- a/zshrc.sh +++ b/zshrc.sh @@ -31,8 +31,8 @@ alias val='valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes alias q='exit' alias pirate='aria2c --seed-time=0 --split=8' alias ryali='ssh root@5.75.207.117' -alias l='\eza --icons --sort type -TL1' -alias la='\eza --icons --sort type -T1' # all +alias l='\eza --icons --sort type -TL0' +alias la='\eza --icons --sort type -T0' # all alias ~="c ~" alias ..='c ../' alias ...='c ../../' @@ -54,3 +54,24 @@ case ":$PATH:" in *) export PATH="$PNPM_HOME:$PATH" ;; esac # pnpm end + +################################################################ +## UTILITIES +activate() +{ + if [[ "$1" == "light" ]]; then + source ${HOME}/dev/python_envs/light/bin/activate + PROMPT="%F{green}%n@%m%f %~ $ " # The prompt + clear + + echo "Environments applied for project: light" + else + zsrc + clear + echo "Unknown environment" + + exit 1 + fi + + echo "Please remember to not keep multiple environments active at the same time" +}