From bab5ad25872c7db61de31b3471bd91ed69436385 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 6 Aug 2025 20:49:49 +0200 Subject: [PATCH] adding --- lua/config/keymaps.lua | 1 - lua/config/options.lua | 17 ++++++++++++++--- lua/plugins/lsp.lua | 18 +++++++++++++++++- lua/plugins/theme.lua | 11 +++++++++++ 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua index 0e757016..26633e13 100644 --- a/lua/config/keymaps.lua +++ b/lua/config/keymaps.lua @@ -50,5 +50,4 @@ vim.keymap.set('v', '', ":m '<-2gv=gv", { desc = 'Move selection up' }) vim.keymap.set('n', '', 'gcc', { desc = 'Comment line', remap = true }) vim.keymap.set('v', '', 'gc', { desc = 'Comment selection', remap = true }) --- Copy to clipboard with Ctrl+C vim.keymap.set('v', '', '"+y', { desc = 'Copy to clipboard' }) \ No newline at end of file diff --git a/lua/config/options.lua b/lua/config/options.lua index d7f02cd0..36e72568 100644 --- a/lua/config/options.lua +++ b/lua/config/options.lua @@ -17,7 +17,7 @@ vim.opt.updatetime = 250 vim.opt.timeoutlen = 300 -- Enable inline diagnostics -vim.diagnostic.config({ +vim.diagnostic.config { virtual_text = { prefix = '●', source = 'always', @@ -26,11 +26,22 @@ vim.diagnostic.config({ underline = true, update_in_insert = false, severity_sort = true, -}) +} vim.opt.splitright = true vim.opt.splitbelow = true vim.opt.list = false vim.opt.inccommand = 'split' vim.opt.cursorline = true -vim.opt.scrolloff = 10 \ No newline at end of file +vim.opt.scrolloff = 10 + +-- Set indentation for specific filetypes +vim.api.nvim_create_autocmd('FileType', { + pattern = { 'typescript', 'javascript', 'typescriptreact', 'javascriptreact', 'html', 'css' }, + callback = function() + vim.opt_local.tabstop = 2 + vim.opt_local.shiftwidth = 2 + vim.opt_local.expandtab = true + end, +}) + diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 7c962807..78ffeec0 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -21,6 +21,13 @@ return { 'hrsh7th/cmp-nvim-lsp', }, config = function() + -- Set default position encoding to prevent warnings + local original_make_position_params = vim.lsp.util.make_position_params + vim.lsp.util.make_position_params = function(win, offset_encoding) + offset_encoding = offset_encoding or 'utf-16' + return original_make_position_params(win, offset_encoding) + end + vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }), callback = function(event) @@ -29,7 +36,7 @@ return { vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc }) end - map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition') + map('gd', vim.lsp.buf.definition, '[G]oto [D]efinition') map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') map('D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition') @@ -71,8 +78,16 @@ return { end, }) + -- Set global position encoding preference + vim.lsp.protocol.PositionEncodingKind = vim.lsp.protocol.PositionEncodingKind or {} + vim.lsp.protocol.PositionEncodingKind.UTF16 = 'utf-16' + local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities()) + + -- Set position encoding to utf-16 (widely supported) to avoid warnings + capabilities.general = capabilities.general or {} + capabilities.general.positionEncodings = { 'utf-16' } local servers = { omnisharp = { @@ -110,6 +125,7 @@ return { -- Setup Gleam LSP separately (not managed by Mason) require('lspconfig').gleam.setup({}) + end, }, } \ No newline at end of file diff --git a/lua/plugins/theme.lua b/lua/plugins/theme.lua index 0877dd15..cd94522d 100644 --- a/lua/plugins/theme.lua +++ b/lua/plugins/theme.lua @@ -178,6 +178,17 @@ return { hi('@tag', c.class, '', '') hi('@tag.attribute', c.property, '', '') hi('@tag.delimiter', c.operator, '', '') + + -- JSX/HTML specific highlights + hi('@tag.javascript', c.class, '', '') + hi('@tag.tsx', c.class, '', '') + hi('@tag.jsx', c.class, '', '') + hi('@tag.builtin.javascript', c.keyword, '', '') + hi('@tag.builtin.tsx', c.keyword, '', '') + hi('@tag.builtin.jsx', c.keyword, '', '') + hi('@constructor.javascript', c.class, '', '') + hi('@constructor.tsx', c.class, '', '') + hi('@constructor.jsx', c.class, '', '') -- LSP hi('@lsp.type.class', c.class, '', '')