diff --git a/lazy-lock.json b/lazy-lock.json
index 419c0de..d5b7902 100644
--- a/lazy-lock.json
+++ b/lazy-lock.json
@@ -35,6 +35,7 @@
   "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
   "toggleterm.nvim": { "branch": "main", "commit": "e76134e682c1a866e3dfcdaeb691eb7b01068668" },
   "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
+  "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
   "vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" },
   "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
 }
diff --git a/lua/lsp/diagnostics.lua b/lua/lsp/diagnostics.lua
index 9c4d001..dfbb901 100644
--- a/lua/lsp/diagnostics.lua
+++ b/lua/lsp/diagnostics.lua
@@ -23,7 +23,7 @@ end
 
 local diagnostic_config = {
   underline = true,
-  update_in_insert = true,
+  update_in_insert = false,
   severity_sort = true,
   signs = {
     text = {
diff --git a/lua/lsp/mappings.lua b/lua/lsp/mappings.lua
index c62392e..f1e034d 100644
--- a/lua/lsp/mappings.lua
+++ b/lua/lsp/mappings.lua
@@ -19,7 +19,7 @@ function M.init(client, bufnr)
   buf_map('n', ']g', '<cmd>lua vim.diagnostic.goto_next()<cr>', { desc = 'Next diagnostic' })
   buf_map(
     'n',
-    'ge',
+    '<leader>e',
     '<cmd>lua vim.diagnostic.open_float(nil, { scope = "line", })<cr>',
     { desc = 'Show current line diagnostic' }
   )
@@ -39,7 +39,7 @@ function M.init(client, bufnr)
   end
 
   -- code actions
-  buf_map('n', 'gn', '<cmd>lua vim.lsp.buf.rename()<cr>', { desc = 'Rename' })
+  buf_map('n', '<leader>r', '<cmd>lua vim.lsp.buf.rename()<cr>', { desc = 'Rename' })
   buf_map('n', '<leader>la', '<cmd>lua vim.lsp.buf.code_actions()<cr>', { desc = 'Code Actions' })
   buf_map('v', '<leader>la', '<cmd>lua vim.lsp.buf.range_code_actions()<cr>', { desc = 'Range Code Actions' })
 
diff --git a/lua/lsp/servers.lua b/lua/lsp/servers.lua
index 2c62808..1b30b4a 100644
--- a/lua/lsp/servers.lua
+++ b/lua/lsp/servers.lua
@@ -1,6 +1,8 @@
 return {
   'rust_analyzer',
+  'erlangls',
   'lua_ls',
+  'cssls',
   'eslint',
   'ts_ls',
   'svelte',
diff --git a/lua/plugins/colorizer.lua b/lua/plugins/colorizer.lua
index 36209fc..79c66cd 100644
--- a/lua/plugins/colorizer.lua
+++ b/lua/plugins/colorizer.lua
@@ -1,6 +1,6 @@
 return {
   'norcalli/nvim-colorizer.lua',
-  cmd = { 'ColorizerToggle' },
+  event = "BufReadPre",
   config = function()
     require('colorizer').setup()
   end,
diff --git a/lua/plugins/gitsigns.lua b/lua/plugins/gitsigns.lua
index 9b8837f..70b61c8 100644
--- a/lua/plugins/gitsigns.lua
+++ b/lua/plugins/gitsigns.lua
@@ -78,7 +78,7 @@ return {
         map('n', '<leader>vD', function()
           gitsigns.diffthis('~')
         end, { desc = 'Diff project' })
-        map('n', '<leader>td', gitsigns.toggle_deleted, { desc = 'Toggle delete' })
+        map('n', '<leader>td', gitsigns.preview_hunk_inline, { desc = 'Toggle delete' })
 
         --[[ -- Text object ]]
         map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'Select hunk' })
diff --git a/lua/plugins/nvim-ts-autotag.lua b/lua/plugins/nvim-ts-autotag.lua
new file mode 100644
index 0000000..bf695bf
--- /dev/null
+++ b/lua/plugins/nvim-ts-autotag.lua
@@ -0,0 +1,6 @@
+return {
+  'windwp/nvim-ts-autotag',
+  config = function()
+    require('nvim-ts-autotag').setup()
+  end
+}
diff --git a/lua/plugins/toggleterm/init.lua b/lua/plugins/toggleterm/init.lua
deleted file mode 100644
index eb1cad5..0000000
--- a/lua/plugins/toggleterm/init.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local config = require('config')
-local map = require('utils').set_keymap
-return {
-  'akinsho/toggleterm.nvim',
-  config = function()
-    require('toggleterm').setup({
-      direction = 'float',
-      float_opts = {
-        border = config.border,
-      },
-      highlights = {
-        FloatBorder = {
-          link = 'FloatBorder',
-        },
-      },
-    })
-    local terminal_utils = require('plugins.toggleterm.utils')
-
-    -- toggle terminals
-    map('n', '<leader>xx', ':ToggleTerm<CR>', { desc = 'Toggle Terminal' })
-
-    -- new terminal
-    map('n', '<leader>xn', terminal_utils.new_terminal, { desc = 'New terminal' })
-
-    -- select terminal to open
-    map('n', '<leader>fx', ':TermSelect<CR>', { desc = 'Find open terminal' })
-
-    -- rename terminal
-    map('n', '<leader>xr', ':ToggleTermSetName<CR>', { desc = 'Rename terminal', buffer = 0 })
-
-    -- terminal only mappings
-    vim.cmd("autocmd! TermOpen term://* lua require('plugins.toggleterm.utils').set_terminal_keymaps()")
-  end,
-  lazy = false,
-}
diff --git a/lua/plugins/toggleterm/utils.lua b/lua/plugins/toggleterm/utils.lua
deleted file mode 100644
index 196ee54..0000000
--- a/lua/plugins/toggleterm/utils.lua
+++ /dev/null
@@ -1,18 +0,0 @@
-local M = {}
-local map = require('utils').set_keymap
-local Terminal = require('toggleterm.terminal').Terminal
-
-function M.new_terminal()
-  local terminal = Terminal:new()
-  terminal:toggle()
-end
-
-function M.set_terminal_keymaps()
-   map('t', '<C-n>', [[<C-\><C-n>]], { desc = 'Visual mode' })
-  -- map('t', '<leader>xx', [[<C-\><C-n>]] .. ':ToggleTerm<CR>', { desc = 'Toggle Terminal' })
-  -- map('t', '<leader>xn', M.new_terminal, { desc = 'New terminal' })
-  -- map('t', '<leader>fx', [[<C-\><C-n>]] .. ':TermSelect<CR>', { desc = 'Find open terminal' })
-  -- map('t', '<leader>xr', [[<C-\><C-n>]] .. ':ToggleTermSetName<CR>', { desc = 'Rename terminal', buffer = 0 })
-end
-
-return M
diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua
index 21237e5..f2fe648 100644
--- a/lua/plugins/treesitter.lua
+++ b/lua/plugins/treesitter.lua
@@ -25,9 +25,6 @@ local config = {
   indent = {
     enable = true,
   },
-  autotag = {
-    enable = true,
-  },
   refactor = {
     highlight_definitions = { enable = true },
     highlight_current_scope = { enable = false },
diff --git a/lua/plugins/trouble.lua b/lua/plugins/trouble.lua
new file mode 100644
index 0000000..3741f30
--- /dev/null
+++ b/lua/plugins/trouble.lua
@@ -0,0 +1,37 @@
+return {
+  "folke/trouble.nvim",
+  opts = {}, -- for default options, refer to the configuration section for custom setup.
+  cmd = "Trouble",
+  keys = {
+    {
+      "<leader>xx",
+      "<cmd>Trouble diagnostics toggle<cr>",
+      desc = "Diagnostics (Trouble)",
+    },
+    {
+      "<leader>xX",
+      "<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
+      desc = "Buffer Diagnostics (Trouble)",
+    },
+    {
+      "<leader>cs",
+      "<cmd>Trouble symbols toggle focus=false<cr>",
+      desc = "Symbols (Trouble)",
+    },
+    {
+      "<leader>cl",
+      "<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
+      desc = "LSP Definitions / references / ... (Trouble)",
+    },
+    {
+      "<leader>xL",
+      "<cmd>Trouble loclist toggle<cr>",
+      desc = "Location List (Trouble)",
+    },
+    {
+      "<leader>xQ",
+      "<cmd>Trouble qflist toggle<cr>",
+      desc = "Quickfix List (Trouble)",
+    },
+  },
+}