From 19457c1f3604840b9e0fbde8ebf6a9a21a896ed8 Mon Sep 17 00:00:00 2001 From: hheik <4469778+hheik@users.noreply.github.com> Date: Wed, 25 Mar 2026 17:01:02 +0200 Subject: [PATCH] Added some plugins and lsp configs --- README.md | 15 ++++++- after/lsp/vtsls.lua | 5 +++ init.lua | 5 ++- lazy-lock.json | 27 +++++++----- lsp/lua_ls.lua | 69 ++++++++++++++++++++++++++++-- lsp/vtsls.lua | 23 ++++++++++ lua/general.lua | 3 ++ lua/lsp.lua | 7 ++- lua/plugin/bookmarks.lua | 5 +++ lua/plugin/colorscheme.lua | 13 +++++- lua/plugin/telescope-bookmarks.lua | 5 +++ lua/plugin/telescope.lua | 3 ++ lua/plugin/treesitter-context.lua | 6 +++ 13 files changed, 165 insertions(+), 21 deletions(-) create mode 100644 after/lsp/vtsls.lua create mode 100644 lsp/vtsls.lua create mode 100644 lua/plugin/bookmarks.lua create mode 100644 lua/plugin/telescope-bookmarks.lua create mode 100644 lua/plugin/treesitter-context.lua diff --git a/README.md b/README.md index 0fc0eb3..4e449e6 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,21 @@ sudo apt install gcc ripgrep unzip java-common default-jre luarocks cmake libbin ## Language servers: ``` +:MasonInstall clangd :MasonInstall lua-language-server@3.15.0 -:MasonInstall typescript-language-server -:MasonInstall vue-language-server +:MasonInstall luacheck :MasonInstall rust-analyzer +:MasonInstall shellcheck +:MasonInstall vtsls +:MasonInstall vue-language-server +:MasonInstall yaml-language-server +:MasonInstall css-lsp +:MasonInstall docker-langauge-server +``` + +To get vue working: +``` +npm install -g @vtsls/language-server ``` ## NerdFont diff --git a/after/lsp/vtsls.lua b/after/lsp/vtsls.lua new file mode 100644 index 0000000..1244310 --- /dev/null +++ b/after/lsp/vtsls.lua @@ -0,0 +1,5 @@ +-- Configs are merged with vim.tbl_deep_extend() using 'force' strategy. +-- This usually works fine, but lua "arrays" like filetypes are replaced. +return { + filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue' }, +} diff --git a/init.lua b/init.lua index 872946f..7e9dd94 100644 --- a/init.lua +++ b/init.lua @@ -3,8 +3,11 @@ require 'spec' spec 'plugin/colorscheme' spec 'plugin/treesitter' -spec 'plugin/telescope' +spec 'plugin/treesitter-context' +spec 'plugin/bookmarks' +spec 'plugin/telescope-bookmarks' spec 'plugin/telescope-ui-select' +spec 'plugin/telescope' spec 'plugin/mason' spec 'plugin/nvimtree' spec 'plugin/nvimtree-icons' diff --git a/lazy-lock.json b/lazy-lock.json index 3eb781b..10f0a1c 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -5,24 +5,29 @@ "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, "copilot.vim": { "branch": "release", "commit": "a12fd5672110c8aa7e3c8419e28c96943ca179be" }, - "gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" }, + "edge": { "branch": "master", "commit": "7ec78c21bd8f0b2b0b47043bb1e730c561647c72" }, + "gitsigns.nvim": { "branch": "main", "commit": "5c569562d9f9c98f12d684de5f37150e0ca1b12d" }, "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, - "lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" }, + "lspkind.nvim": { "branch": "master", "commit": "c7274c48137396526b59d86232eabcdc7fed8a32" }, "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "fe661093f4b05136437b531e7f959af2a2ae66c8" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "a979821a975897b88493843301950c456a725982" }, "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, - "nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" }, - "nvim-cmp": { "branch": "main", "commit": "85bbfad83f804f11688d1ab9486b459e699292d6" }, - "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" }, - "nvim-tree.lua": { "branch": "master", "commit": "b8b44b6a2494d086a9177251a119f9daec6cace8" }, - "nvim-treesitter": { "branch": "main", "commit": "5a7e5638e7d220575b1c22c8a2e099b52231886e" }, - "nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" }, + "nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" }, + "nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" }, + "nvim-lspconfig": { "branch": "master", "commit": "841c6d4139aedb8a3f2baf30cef5327371385b93" }, + "nvim-tree.lua": { "branch": "master", "commit": "3d385d3346e4883d60dc37cf642bd47bed78a46e" }, + "nvim-treesitter": { "branch": "main", "commit": "6620ae1c44dfa8623b22d0cbf873a9e8d073b849" }, + "nvim-treesitter-context": { "branch": "master", "commit": "adf4b6b0420b7be6c717ef0ac7993183d6c201b1" }, + "nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" }, + "oxocarbon.nvim": { "branch": "main", "commit": "a7ba74849a00546a311f8c146320b433900393e7" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "master", "commit": "3333a52ff548ba0a68af6d8da1e54f9cd96e9179" }, + "telescope-vim-bookmarks.nvim": { "branch": "main", "commit": "09a61043496bd9c4240955f7532ff2ae8fe3a905" }, + "telescope.nvim": { "branch": "master", "commit": "5255aa27c422de944791318024167ad5d40aad20" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" }, - "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, + "tokyonight.nvim": { "branch": "main", "commit": "73822773d5badaeba999206179a9105f9867ac59" }, + "vim-bookmarks": { "branch": "master", "commit": "9cc5fa7ecc23b052bd524d07c85356c64b92aeef" }, "vim-smartword": { "branch": "master", "commit": "608d4883bb1eff4131f44857a21119220e55886d" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } } diff --git a/lsp/lua_ls.lua b/lsp/lua_ls.lua index 92f3ce7..20dd9e3 100644 --- a/lsp/lua_ls.lua +++ b/lsp/lua_ls.lua @@ -1,12 +1,73 @@ return { - cmd = { 'lua-language-server' }, - filetypes = { 'lua' }, - root_markers = { '.luarc.json', '.luarc.jsonc' }, settings = { Lua = { runtime = { version = 'LuaJIT' }, diagnostics = { - globals = { 'vim' }, + globals = { + -- Vim configs + 'vim', + -- Solar2D + '_G', + 'al', + 'assert', + 'audio', + 'cloneArray', + 'collectgarbage', + 'coronabaselib', + 'coroutine', + 'debug', + 'display', + 'dofile', + 'easing', + 'error', + 'gcinfo', + 'getfenv', + 'getmetatable', + 'graphics', + 'io', + 'ipairs', + 'lfs', + 'load', + 'loadfile', + 'loadstring', + 'lpeg', + 'math', + 'media', + 'metatable', + 'module', + 'native', + 'network', + 'newproxy', + 'next', + 'os', + 'package', + 'pairs', + 'pcall', + 'physics', + 'print', + 'rawequal', + 'rawget', + 'rawset', + 'require', + 'Runtime', + 'select', + 'sendLaunchAnalytics', + 'setfenv', + 'setmetatable', + 'string', + 'system', + 'table', + 'timer', + 'tonumber', + 'tostring', + 'transition', + 'type', + 'unpack', + 'xpcall', + 'application', + 'settings', + 'utils', + }, }, workspace = { library = vim.tbl_deep_extend('force', vim.api.nvim_get_runtime_file('', true), { '${3rd}/love2d/library' }), diff --git a/lsp/vtsls.lua b/lsp/vtsls.lua new file mode 100644 index 0000000..68e5aaa --- /dev/null +++ b/lsp/vtsls.lua @@ -0,0 +1,23 @@ +-- For Mason v2, use either of these: +-- local vue_language_server_path = vim.fn.expand '$MASON/packages' .. '/vue-language-server' .. '/node_modules/@vue/language-server' +-- local vue_language_server_path = vim.fn.stdpath('data') .. "/mason/packages/vue-language-server/node_modules/@vue/language-server" + +local vue_language_server_path = vim.fn.stdpath('data') .. +"/mason/packages/vue-language-server/node_modules/@vue/language-server" +local vue_plugin = { + name = '@vue/typescript-plugin', + location = vue_language_server_path, + languages = { 'vue' }, + configNamespace = 'typescript', +} +return { + settings = { + vtsls = { + tsserver = { + globalPlugins = { + vue_plugin, + }, + }, + }, + }, +} diff --git a/lua/general.lua b/lua/general.lua index f4208b8..3c2a02e 100644 --- a/lua/general.lua +++ b/lua/general.lua @@ -2,6 +2,9 @@ local tab_width = 4 vim.g.mapleader = ' ' +vim.opt.ignorecase = true +vim.opt.smartcase = true + vim.opt.number = true vim.opt.relativenumber = true vim.opt.cursorline = true diff --git a/lua/lsp.lua b/lua/lsp.lua index c9630df..5298d0c 100644 --- a/lua/lsp.lua +++ b/lua/lsp.lua @@ -3,9 +3,12 @@ local enable = vim.lsp.enable -- When calling `enable 'foo'`, there must be a given file in either: -- * `~/.config/nvim/lsp/foo.lua` -- * https://github.com/neovim/nvim-lspconfig/tree/master/lsp --- you can then further configure them with `vim.lsp.config('foo'. {...})` +-- * `~/.config/nvim/after/lsp/foo.lua` enable 'lua_ls' enable 'rust_analyzer' -enable 'ts_ls' +enable 'vtsls' enable 'vue_ls' +enable 'clangd' +enable 'docker_language_server' +enable 'cssls' diff --git a/lua/plugin/bookmarks.lua b/lua/plugin/bookmarks.lua new file mode 100644 index 0000000..94ab00e --- /dev/null +++ b/lua/plugin/bookmarks.lua @@ -0,0 +1,5 @@ +local M = { + 'MattesGroeger/vim-bookmarks', +} + +return M diff --git a/lua/plugin/colorscheme.lua b/lua/plugin/colorscheme.lua index 9813ab7..1d4e5b4 100644 --- a/lua/plugin/colorscheme.lua +++ b/lua/plugin/colorscheme.lua @@ -1,11 +1,22 @@ local M = { 'folke/tokyonight.nvim', + dependencies = { + 'nyoom-engineering/oxocarbon.nvim', + 'sainnhe/edge', + }, lazy = false, -- load colorscheme immediately priority = 1000, } M.config = function() - vim.cmd.colorscheme 'tokyonight-night' + vim.opt.background = + 'light' + -- 'dark' + + vim.cmd.colorscheme + -- 'tokyonight' + -- 'oxocarbon' + 'edge' end return M diff --git a/lua/plugin/telescope-bookmarks.lua b/lua/plugin/telescope-bookmarks.lua new file mode 100644 index 0000000..017894d --- /dev/null +++ b/lua/plugin/telescope-bookmarks.lua @@ -0,0 +1,5 @@ +local M = { + 'tom-anders/telescope-vim-bookmarks.nvim' +} + +return M diff --git a/lua/plugin/telescope.lua b/lua/plugin/telescope.lua index 337f2af..9ed45fd 100644 --- a/lua/plugin/telescope.lua +++ b/lua/plugin/telescope.lua @@ -56,10 +56,12 @@ function M.config() }, } telescope.load_extension 'ui-select' + telescope.load_extension 'vim_bookmarks' end M.keymap = function() local builtin = require 'telescope.builtin' + local bookmarks = require 'telescope'.extensions.vim_bookmarks vim.keymap.set('n', 'f', builtin.find_files, { desc = 'Find files' }) vim.keymap.set('n', 'r', builtin.resume, { desc = 'Resume last search' }) vim.keymap.set('n', '', function() builtin.grep_string { word_match = '-w' } end, @@ -75,6 +77,7 @@ M.keymap = function() max_results = 10000, temp__scrolling_limit = 10000, } end, { desc = 'Git status' }) + vim.keymap.set('n', 'ma', bookmarks.all, { desc = 'List bookmarks' }) end return M diff --git a/lua/plugin/treesitter-context.lua b/lua/plugin/treesitter-context.lua new file mode 100644 index 0000000..b5fe497 --- /dev/null +++ b/lua/plugin/treesitter-context.lua @@ -0,0 +1,6 @@ +local M = { + 'nvim-treesitter/nvim-treesitter-context', + opts = {}, +} + +return M